domainDecompTest.hh

Go to the documentation of this file.
1 
8 #ifndef DDtest_hh
9 #define DDtest_hh
10 
11 #include "basics/testcase.hh"
12 #include "basics/typedefs.hh"
14 
15 using concepts::Real;
16 
17 namespace hp2D {
18  class Space;
19 }
20 
21 namespace test {
22 
23  // *********************************************************** DomainDecomp **
24 
29  class DomainDecomp : public TestCase {
30  public:
38  DomainDecomp(uint g = 0, bool m = false, bool i = false, bool d = false);
39  virtual ~DomainDecomp() {}
40  virtual void run();
41 
43 
44 
47  void testCG();
51  void testSuperLU();
52 
55  concepts::SolverFabric<Real>& fabricB, bool explSchur);
57  private:
59  bool i_, d_;
67  std::unique_ptr<concepts::DomainDecomp<hp2D::hpAdaptiveSpaceH1> > spc_;
71  std::unique_ptr<concepts::Vector<Real> > rhs_;
72  };
73 
74 } // namespace test
75 
76 #endif // DDtest_hh
Base class for tests.
Definition: testcase.hh:92
std::unique_ptr< concepts::Vector< Real > > rhs_
Vector of right hand side.
hp2D::hpFull prebuild_
Space Prebuilder.
Helper class for building 2D hp-FEM spaces (space pre builder).
bool i_
Flag for using iterative or direct solver.
2D hp-FEM for H1-conforming elements.
Unit tests.
Definition: testcase.hh:66
concepts::Sequence< concepts::Set< uint > > domains_
Set of domain attributes.
concepts::Sequence< concepts::SparseMatrix< Real > * > M_
Mass matrix for each domain.
Tests the solving with domain decomposition.
concepts::Import2dMesh msh_
Mesh.
void testCG()
Tests the solving with CG.
Sequence with operations, output operator, and method of the particular element types.
Definition: sequence.hh:39
bool d_
Flag for using iterative or direct solver.
virtual void run()
Runs the tests. Must be overwritten by the specialization.
DomainDecomp(uint g=0, bool m=false, bool i=false, bool d=false)
Constructor.
std::unique_ptr< concepts::DomainDecomp< hp2D::hpAdaptiveSpaceH1 > > spc_
Space.
void solve(concepts::SolverFabric< Real > &fabricI, concepts::SolverFabric< Real > &fabricB, bool explSchur)
Solve one system and compares with solution of direct inversionxb.
double Real
Type normally used for a floating point number.
Definition: typedefs.hh:36
void testSuperLU()
Tests the solving with SuperLU.
Page URL: http://wiki.math.ethz.ch/bin/view/Concepts/WebHome
21 August 2020
© 2020 Eidgenössische Technische Hochschule Zürich