Tests the solving with domain decomposition. More...

#include <domainDecompTest.hh>

Inheritance diagram for test::DomainDecomp:
test::TestCase

Public Member Functions

void _succeed ()
 Explicitly succeds a test. More...
 
 DomainDecomp (uint g=0, bool m=false, bool i=false, bool d=false)
 Constructor. More...
 
long getNumFailed () const
 Returns number of failed tests. More...
 
long getNumPassed () const
 Returns number of passed tests. More...
 
const ostream * getStream () const
 Returns output stream. More...
 
long report () const
 Prints a report on the number of passed and failed tests to the output stream. More...
 
virtual void reset ()
 Resets the counters for the failed and passed tests. More...
 
virtual void run ()
 Runs the tests. Must be overwritten by the specialization. More...
 
void setStream (ostream *osptr)
 Sets the output stream. More...
 
virtual ~DomainDecomp ()
 

Protected Member Functions

void do_fail (const string &lbl, const char *fname, long lineno)
 Internal function to report a failed test (besides increasing the failed counter) More...
 
bool do_numtest (double num, double orig, const string &lbl, const string &lbl2, const char *fname, long lineno, const double tol=1e-10)
 Internal function to do a numerical test. More...
 
bool do_numtest (std::complex< double > num, std::complex< double > orig, const string &lbl, const string &lbl2, const char *fname, long lineno, const double tol=1e-10)
 
bool do_test (bool cond, const string &lbl, const char *fname, long lineno)
 Internal function to do a test. More...
 

Private Attributes

long m_nFail
 
long m_nPass
 
ostream * m_osptr
 

Test routines

bool i_
 Flag for using iterative or direct solver. More...
 
bool d_
 Flag for using iterative or direct solver. More...
 
concepts::Import2dMesh msh_
 Mesh. More...
 
hp2D::hpFull prebuild_
 Space Prebuilder. More...
 
concepts::Sequence< concepts::Set< uint > > domains_
 Set of domain attributes. More...
 
std::unique_ptr< concepts::DomainDecomp< hp2D::hpAdaptiveSpaceH1 > > spc_
 Space. More...
 
concepts::Sequence< concepts::SparseMatrix< Real > * > M_
 Mass matrix for each domain. More...
 
std::unique_ptr< concepts::Vector< Real > > rhs_
 Vector of right hand side. More...
 
void testCG ()
 Tests the solving with CG. More...
 
void testSuperLU ()
 Tests the solving with SuperLU. More...
 
void solve (concepts::SolverFabric< Real > &fabricI, concepts::SolverFabric< Real > &fabricB, bool explSchur)
 Solve one system and compares with solution of direct inversionxb. More...
 

Detailed Description

Tests the solving with domain decomposition.

Author
Kersten Schmidt, 2005

Definition at line 29 of file domainDecompTest.hh.

Constructor & Destructor Documentation

◆ DomainDecomp()

test::DomainDecomp::DomainDecomp ( uint  g = 0,
bool  m = false,
bool  i = false,
bool  d = false 
)

Constructor.

Parameters
gnumber geometrical refinements
mtrue: matrices are stored in a Matlab file
itrue: use iterative solver
dtrue: use direct solver

◆ ~DomainDecomp()

virtual test::DomainDecomp::~DomainDecomp ( )
inlinevirtual

Definition at line 39 of file domainDecompTest.hh.

Member Function Documentation

◆ _succeed()

void test::TestCase::_succeed ( )
inlineinherited

Explicitly succeds a test.

Definition at line 112 of file testcase.hh.

◆ do_fail()

void test::TestCase::do_fail ( const string &  lbl,
const char *  fname,
long  lineno 
)
protectedinherited

Internal function to report a failed test (besides increasing the failed counter)

◆ do_numtest() [1/2]

bool test::TestCase::do_numtest ( double  num,
double  orig,
const string &  lbl,
const string &  lbl2,
const char *  fname,
long  lineno,
const double  tol = 1e-10 
)
protectedinherited

Internal function to do a numerical test.

◆ do_numtest() [2/2]

bool test::TestCase::do_numtest ( std::complex< double >  num,
std::complex< double >  orig,
const string &  lbl,
const string &  lbl2,
const char *  fname,
long  lineno,
const double  tol = 1e-10 
)
protectedinherited

◆ do_test()

bool test::TestCase::do_test ( bool  cond,
const string &  lbl,
const char *  fname,
long  lineno 
)
protectedinherited

Internal function to do a test.

◆ getNumFailed()

long test::TestCase::getNumFailed ( ) const
inlineinherited

Returns number of failed tests.

Definition at line 105 of file testcase.hh.

◆ getNumPassed()

long test::TestCase::getNumPassed ( ) const
inlineinherited

Returns number of passed tests.

Definition at line 103 of file testcase.hh.

◆ getStream()

const ostream* test::TestCase::getStream ( ) const
inlineinherited

Returns output stream.

Definition at line 107 of file testcase.hh.

◆ report()

long test::TestCase::report ( ) const
inherited

Prints a report on the number of passed and failed tests to the output stream.

Returns
Number of failed tests.

◆ reset()

virtual void test::TestCase::reset ( )
inlinevirtualinherited

Resets the counters for the failed and passed tests.

Definition at line 119 of file testcase.hh.

◆ run()

virtual void test::DomainDecomp::run ( )
virtual

Runs the tests. Must be overwritten by the specialization.

Implements test::TestCase.

◆ setStream()

void test::TestCase::setStream ( ostream *  osptr)
inlineinherited

Sets the output stream.

Definition at line 109 of file testcase.hh.

◆ solve()

void test::DomainDecomp::solve ( concepts::SolverFabric< Real > &  fabricI,
concepts::SolverFabric< Real > &  fabricB,
bool  explSchur 
)

Solve one system and compares with solution of direct inversionxb.

◆ testCG()

void test::DomainDecomp::testCG ( )

Tests the solving with CG.

The Schur complement is taken as operator.

◆ testSuperLU()

void test::DomainDecomp::testSuperLU ( )

Tests the solving with SuperLU.

The Schur complement is calculated explicitly.

Member Data Documentation

◆ d_

bool test::DomainDecomp::d_
private

Flag for using iterative or direct solver.

Definition at line 59 of file domainDecompTest.hh.

◆ domains_

concepts::Sequence<concepts::Set<uint> > test::DomainDecomp::domains_
private

Set of domain attributes.

Definition at line 65 of file domainDecompTest.hh.

◆ i_

bool test::DomainDecomp::i_
private

Flag for using iterative or direct solver.

Definition at line 59 of file domainDecompTest.hh.

◆ M_

concepts::Sequence<concepts::SparseMatrix<Real>*> test::DomainDecomp::M_
private

Mass matrix for each domain.

Definition at line 69 of file domainDecompTest.hh.

◆ m_nFail

long test::TestCase::m_nFail
privateinherited

Definition at line 139 of file testcase.hh.

◆ m_nPass

long test::TestCase::m_nPass
privateinherited

Definition at line 138 of file testcase.hh.

◆ m_osptr

ostream* test::TestCase::m_osptr
privateinherited

Definition at line 137 of file testcase.hh.

◆ msh_

concepts::Import2dMesh test::DomainDecomp::msh_
private

Mesh.

Definition at line 61 of file domainDecompTest.hh.

◆ prebuild_

hp2D::hpFull test::DomainDecomp::prebuild_
private

Space Prebuilder.

Definition at line 63 of file domainDecompTest.hh.

◆ rhs_

std::unique_ptr<concepts::Vector<Real> > test::DomainDecomp::rhs_
private

Vector of right hand side.

Definition at line 71 of file domainDecompTest.hh.

◆ spc_

std::unique_ptr<concepts::DomainDecomp<hp2D::hpAdaptiveSpaceH1> > test::DomainDecomp::spc_
private

Space.

Definition at line 67 of file domainDecompTest.hh.


The documentation for this class was generated from the following file:
Page URL: http://wiki.math.ethz.ch/bin/view/Concepts/WebHome
21 August 2020
© 2020 Eidgenössische Technische Hochschule Zürich