27class MinPrecProblem :
public Problem<SC,LO,GO,NO> {
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;
35 typedef typename Problem_Type::BlockMatrix_Type BlockMatrix_Type;
36 typedef typename Problem_Type::BlockMatrixPtr_Type BlockMatrixPtr_Type;
38 typedef typename Problem_Type::Comm_Type Comm_Type;
39 typedef typename Problem_Type::CommConstPtr_Type CommConstPtr_Type;
41 typedef typename Problem_Type::PreconditionerPtr_Type PreconditionerPtr_Type;
43 typedef typename Problem_Type::LinSolverBuilderPtr_Type LinSolverBuilderPtr_Type;
46 MinPrecProblem(ParameterListPtr_Type pl, CommConstPtr_Type comm);
48 MinPrecProblem(ParameterListPtr_Type pl, CommConstPtr_Type comm, PreconditionerPtr_Type prec);
52 void initializeSystem(BlockMatrixPtr_Type system);
54 void initializeDomains(DomainConstPtr_vec_Type& domainPtr_vec);
56 void initializeLinSolverBuilder(LinSolverBuilderPtr_Type linearSolverBuilder);
59 if ( this->comm_->getRank() )
60 std::cout<<
"Minimal implementation of Problem. This object has sufficient information for the setup of FROSch." << std::endl;
63 virtual void assemble( std::string type=
"" )
const {}
65 virtual void getValuesOfInterest( vec_dbl_Type& values ){}
67 virtual void computeValuesOfInterestAndExport() {}