Finite Element Domain Decomposition Library
FEDDLib
Loading...
Searching...
No Matches
MinPrecProblem_def.hpp
1#ifndef MinPrecProblem_DEF_hpp
2#define MinPrecProblem_DEF_hpp
3
4#include "feddlib/problems/Solver/Preconditioner.hpp"
5
13
14
15namespace FEDD {
16template<class SC,class LO,class GO,class NO>
17MinPrecProblem<SC,LO,GO,NO>::MinPrecProblem(ParameterListPtr_Type pl, CommConstPtr_Type comm):
18Problem<SC,LO,GO,NO>(pl, comm)
19{
20
21}
22
23template<class SC,class LO,class GO,class NO>
24MinPrecProblem<SC,LO,GO,NO>::MinPrecProblem(ParameterListPtr_Type pl, CommConstPtr_Type comm, PreconditionerPtr_Type prec):
25Problem<SC,LO,GO,NO>(pl, comm)
26{
27 if(!prec->getVelocityMassMatrix().is_null()){
28 this->preconditioner_->setVelocityMassMatrix(prec->getVelocityMassMatrix());
29 }
30
31 if(!prec->getPressureLaplaceMatrix().is_null()){
32 this->preconditioner_->setPressureLaplaceMatrix(prec->getPressureLaplaceMatrix());
33 }
34 if(!prec->getPressureMassMatrix().is_null()){
35 this->preconditioner_->setPressureMassMatrix(prec->getPressureMassMatrix());
36
37 }
38 if(!prec->getPCDOperatorMatrix().is_null()){
39 this->preconditioner_->setPCDOperator(prec->getPCDOperatorMatrix());
40 }
41}
42
43
44
45template<class SC,class LO,class GO,class NO>
46MinPrecProblem<SC,LO,GO,NO>::~MinPrecProblem( )
47{
48
49}
50
51template<class SC,class LO,class GO,class NO>
52void MinPrecProblem<SC,LO,GO,NO>::initializeSystem(BlockMatrixPtr_Type system){
53 this->system_ = system;
54}
55
56template<class SC,class LO,class GO,class NO>
57void MinPrecProblem<SC,LO,GO,NO>::initializeDomains(DomainConstPtr_vec_Type& domainPtr_vec){
58 this->domainPtr_vec_ = domainPtr_vec;
59}
60template<class SC,class LO,class GO,class NO>
61void MinPrecProblem<SC,LO,GO,NO>::initializeLinSolverBuilder(LinSolverBuilderPtr_Type linearSolverBuilder){
62 this->linearSolverBuilder_ = linearSolverBuilder;
63}
64}
65#endif
Definition Problem_decl.hpp:42
Adaptive Mesh Refinement.
Definition AdaptiveMeshRefinement_decl.hpp:36