|
IFEM
90A354
|
Class for ISTL solver parameters. More...
#include <ISTLSolParams.h>

Public Member Functions | |
| ISTLSolParams (const LinSolParams &spar, const ProcessAdm &padm) | |
| Constructor. More... | |
| std::tuple< std::unique_ptr< ISTL::InverseOperator >, std::unique_ptr< ISTL::Preconditioner >, std::unique_ptr< ISTL::Operator > > | setupPC (ISTL::Mat &A) |
| Setup solver and preconditioner. More... | |
| const LinSolParams & | get () const |
| Obtain linear solver parameters. | |
Protected Member Functions | |
| ISTL::Preconditioner * | setupPCInternal (ISTL::Mat &A, ISTL::Operator &op, size_t block, std::unique_ptr< ISTL::InverseOperator > *solver) |
| Internal helper function for setting up a preconditioner. More... | |
Protected Attributes | |
| const LinSolParams & | solParams |
| Reference to linear solver parameters. | |
| const ProcessAdm & | adm |
| Reference to process administrator. | |
Class for ISTL solver parameters.
It contains information about solver method, preconditioner and convergence criteria.
|
inline |
Constructor.
| spar | Linear solver parameters to use |
| padm | Process administrator to use |
| std::tuple< std::unique_ptr< ISTL::InverseOperator >, std::unique_ptr< ISTL::Preconditioner >, std::unique_ptr< ISTL::Operator > > ISTLSolParams::setupPC | ( | ISTL::Mat & | A | ) |
Setup solver and preconditioner.
| A | Matrix to use |
References adm, ProcessAdm::dd, ISTL::BlockPreconditioner::getBlock(), ISTL::BlockPreconditioner::getBlockOp(), ISTL::BlockPreconditioner::getBlockPre(), DomainDecomposition::getGlobalEq(), DomainDecomposition::getMLGEQ(), DomainDecomposition::getNoBlocks(), LinSolParams::getNoBlocks(), SettingMap::getStringValue(), ProcessAdm::isParallel(), setupPCInternal(), setupWithPreType(), and solParams.
Referenced by ISTLMatrix::solve().
|
protected |
Internal helper function for setting up a preconditioner.
| A | Matrix to construct preconditioner for |
| op | Matrix adaptor to use (used with AMG) |
| block | Block to read settings from |
| solver | Solver object to instance. nullptr to do nothing. |
References adm, ProcessAdm::dd, LinSolParams::getBlock(), SettingMap::getIntValue(), ProcessAdm::getNoProcs(), SettingMap::getStringValue(), DomainDecomposition::getSubdomains(), setupAMG2(), setupSolver(), and solParams.
Referenced by setupPC().