mumpsoverlapFabric.hh

Go to the documentation of this file.
1 
9 #ifndef mumpsoverlapfabric_hh
10 #define mumpsoverlapfabric_hh
11 
12 #include "mumpsoverlap.hh"
13 #include "solverFabric.hh"
14 #include "sparseMatrix.hh"
15 #include "CRS.hh"
16 
17 namespace concepts {
18 
19  // *********************************************************** MumpsFabric **
20 
24  template<class F = Real>
25  class MumpsOverlapFabric : public SolverFabric<F> {
26  public:
27  MumpsOverlapFabric(const int part) : part_(part) {};
29  virtual Operator<F>* operator()() {return new Operator<F>(1,1);};
31  if (dynamic_cast<concepts::CRSConvertable<F>*>(&matrix))
32  return new MumpsOverlap<F>(matrix, this->part_);
33  else {
34  concepts::SparseMatrix<F> tmpMatrix(matrix);
35  return new MumpsOverlap<F>(tmpMatrix, this->part_);
36  }
37  }
38  protected:
39  int part_;
40  virtual std::ostream& info(std::ostream& os) const {
41  return os << concepts::typeOf(*this)<<"()";
42  }
43  };
44 
45 } // concepts
46 
47 #endif // mumpsoverlapfabric_hh
virtual std::ostream & info(std::ostream &os) const
virtual MumpsOverlap< F > * operator()(Operator< F > &matrix)
MUMPS : MUltifrontal Massively Parallel sparse direct Solver.
Definition: mumpsoverlap.hh:73
Abstract fabric class for linear solvers.
Definition: jdbsym.hh:16
Abstract class for an operator.
Definition: ARPACK.hh:16
Base class for operators which can be converted to Sparse Row Storage (CRS) or Sparse Column Storage ...
Definition: CRS.hh:30
Fabric class for Mumps with overlaping.
virtual Operator< F > * operator()()
Unused, avoids the "No return statement in function returning non-void [-Wreturn-type]" warning.
std::string typeOf(const T &t)
Return the typeid name of a class object.
Definition: output.hh:43
Basic namespace for Concepts-2.
Definition: pml_formula.h:16
Page URL: http://wiki.math.ethz.ch/bin/view/Concepts/WebHome
21 August 2020
© 2020 Eidgenössische Technische Hochschule Zürich