OpenCAEPoro  v0.5.0
A simulator for multicomponent porous media flow
IsothermalSolver.hpp
Go to the documentation of this file.
1 
12 #ifndef __ISOTHERMALSOLVER_HEADER__
13 #define __ISOTHERMALSOLVER_HEADER__
14 
15 // OpenCAEPoro header files
16 #include "OCPFluidMethod.hpp"
17 
20 {
21 public:
23  void SetupMethod(Reservoir& rs, const OCPControl& ctrl);
25  void InitReservoir(Reservoir& rs) const;
27  void Prepare(Reservoir& rs, OCPControl& ctrl);
29  void AssembleMat(const Reservoir& rs, OCPControl& ctrl);
31  void SolveLinearSystem(Reservoir& rs, OCPControl& ctrl);
37  void FinishStep(Reservoir& rs, OCPControl& ctrl);
38 
39 private:
40  USI method = FIM;
41  LinearSystem LSolver;
42  LinearSystem auxLSolver;
43  IsoT_IMPEC impec;
44  IsoT_FIM fim;
45  IsoT_FIMn fim_n;
46  IsoT_AIMc aimc;
47 };
48 
49 #endif /* end if __ISOTHERMALSOLVER_HEADER__ */
50 
51 /*----------------------------------------------------------------------------*/
52 /* Brief Change History of This File */
53 /*----------------------------------------------------------------------------*/
54 /* Author Date Actions */
55 /*----------------------------------------------------------------------------*/
56 /* Shizhe Li Oct/21/2021 Create file */
57 /* Chensong Zhang Jan/16/2022 Update Doxygen */
58 /*----------------------------------------------------------------------------*/
unsigned int USI
Generic unsigned integer.
Definition: OCPConst.hpp:23
const USI FIM
Solution method = FIM.
Definition: OCPConst.hpp:82
unsigned int OCP_BOOL
OCP_BOOL in OCP.
Definition: OCPConst.hpp:29
Declaration of solution methods for fluid part in OpenCAEPoro.
IsoT_FIM is FIM (Fully Implicit Method).
IsoT_IMPEC is IMPEC (implicit pressure explict saturation) method.
IsothermalSolver class for fluid solution method.
void SolveLinearSystem(Reservoir &rs, OCPControl &ctrl)
Solve the linear system in single problem.
void InitReservoir(Reservoir &rs) const
Initialize the Reservoir and prepare variables for some method.
OCP_BOOL UpdateProperty(Reservoir &rs, OCPControl &ctrl)
Update properties of fluid.
void SetupMethod(Reservoir &rs, const OCPControl &ctrl)
Setup the fluid solver.
void FinishStep(Reservoir &rs, OCPControl &ctrl)
Finish the current time step.
void Prepare(Reservoir &rs, OCPControl &ctrl)
Prepare for assembling Mat.
void AssembleMat(const Reservoir &rs, OCPControl &ctrl)
Assemble Mat.
OCP_BOOL FinishNR(Reservoir &rs, OCPControl &ctrl)
Finish the Newton-Raphson iteration.
Linear solvers for discrete systems.
All control parameters except for well controllers.
Definition: OCPControl.hpp:94