Finite Element Domain Decomposition Library
FEDDLib
Toggle main menu visibility
Loading...
Searching...
No Matches
MinPrecProblem_decl.hpp
1
#ifndef MinPrecProblem_DECL_hpp
2
#define MinPrecProblem_DECL_hpp
3
4
#include "feddlib/core/General/DefaultTypeDefs.hpp"
5
#include "feddlib/problems/abstract/Problem.hpp"
6
18
19
20
namespace
FEDD
{
21
template
<
class
SC ,
class
LO ,
class
GO ,
class
NO >
22
class
Problem
;
23
template
<
class
SC ,
class
LO ,
class
GO ,
class
NO >
24
class
Preconditioner
;
25
26
template
<
class
SC = default_sc,
class
LO = default_lo,
class
GO = default_go,
class
NO = default_no>
27
class
MinPrecProblem :
public
Problem<SC,LO,GO,NO> {
28
29
public
:
30
typedef
Problem<SC,LO,GO,NO> Problem_Type;
31
typedef
typename
Problem_Type::Domain_Type Domain_Type;
32
typedef
typename
Problem_Type::DomainConstPtr_Type DomainConstPtr_Type;
33
typedef
typename
Problem_Type::DomainConstPtr_vec_Type DomainConstPtr_vec_Type;
34
35
typedef
typename
Problem_Type::BlockMatrix_Type BlockMatrix_Type;
36
typedef
typename
Problem_Type::BlockMatrixPtr_Type BlockMatrixPtr_Type;
37
38
typedef
typename
Problem_Type::Comm_Type Comm_Type;
39
typedef
typename
Problem_Type::CommConstPtr_Type CommConstPtr_Type;
40
41
typedef
typename
Problem_Type::PreconditionerPtr_Type PreconditionerPtr_Type;
42
43
typedef
typename
Problem_Type::LinSolverBuilderPtr_Type LinSolverBuilderPtr_Type;
44
45
// hasSourceTerm and boolLinearProblem should be irrelevant, as this class should be only used when constructing a precondtioner
46
MinPrecProblem(ParameterListPtr_Type pl, CommConstPtr_Type comm);
47
48
MinPrecProblem(ParameterListPtr_Type pl, CommConstPtr_Type comm, PreconditionerPtr_Type prec);
49
50
~MinPrecProblem();
51
52
void
initializeSystem(BlockMatrixPtr_Type system);
53
54
void
initializeDomains(DomainConstPtr_vec_Type& domainPtr_vec);
55
56
void
initializeLinSolverBuilder(LinSolverBuilderPtr_Type linearSolverBuilder);
57
58
virtual
void
info(){
59
if
( this->comm_->getRank() )
60
std::cout<<
"Minimal implementation of Problem. This object has sufficient information for the setup of FROSch."
<< std::endl;
61
}
62
63
virtual
void
assemble( std::string type=
""
)
const
{}
64
65
virtual
void
getValuesOfInterest( vec_dbl_Type& values ){}
66
67
virtual
void
computeValuesOfInterestAndExport() {}
68
69
// virtual void assembleExternal( std::string type ){}
70
71
protected
:
72
73
private
:
74
75
};
76
}
77
#endif
FEDD::Preconditioner
Definition
Preconditioner_decl.hpp:35
FEDD::Problem
Definition
Problem_decl.hpp:42
FEDD
Adaptive Mesh Refinement.
Definition
AdaptiveMeshRefinement_decl.hpp:36
feddlib
problems
abstract
MinPrecProblem_decl.hpp
Generated by
1.17.0