Chi-Tech
mip_wgs_context2.h
Go to the documentation of this file.
1#ifndef CHITECH_MIP_WGS_CONTEXT_H
2#define CHITECH_MIP_WGS_CONTEXT_H
3
5
6namespace lbs
7{
8class DiffusionDFEMSolver;
9}
10
11namespace lbs
12{
13
14template <class MatType, class VecType, class SolverType>
15struct MIPWGSContext2 : public WGSContext<MatType, VecType, SolverType>
16{
18
20 LBSGroupset& groupset,
21 const SetSourceFunction& set_source_function,
22 int lhs_scope,
23 int rhs_scope,
24 bool log_info)
25 : WGSContext<MatType, VecType, SolverType>(lbs_mip_ss_solver,
26 groupset,
27 set_source_function,
28 lhs_scope,
29 rhs_scope,
30 log_info),
31 lbs_mip_ss_solver_(lbs_mip_ss_solver)
32 {
33 }
34
35 void PreSetupCallback() override;
36
37 void SetPreconditioner(SolverType& solver) override;
38
39 std::pair<int64_t, int64_t> SystemSize() override;
40
41 void ApplyInverseTransportOperator(int scope) override;
42
43 void PostSolveCallback() override;
44};
45} // namespace lbs
46
47#endif // CHITECH_MIP_WGS_CONTEXT_H
SolverType
Definition: lbs_structs.h:27
std::function< void(LBSGroupset &groupset, std::vector< double > &destination_q, const std::vector< double > &phi, SourceFlags source_flags)> SetSourceFunction
Definition: lbs_structs.h:110
DiffusionDFEMSolver & lbs_mip_ss_solver_
void SetPreconditioner(SolverType &solver) override
void ApplyInverseTransportOperator(int scope) override
void PostSolveCallback() override
void PreSetupCallback() override
std::pair< int64_t, int64_t > SystemSize() override
MIPWGSContext2(DiffusionDFEMSolver &lbs_mip_ss_solver, LBSGroupset &groupset, const SetSourceFunction &set_source_function, int lhs_scope, int rhs_scope, bool log_info)