25 const char* options[])
37 output.Setup(reservoir, control);
39 solver.
Setup(reservoir, control);
42 <<
"Setup simulation done. Wall time : " << fixed << setprecision(3)
43 << timer.
Stop() / 1000 <<
" Sec" << endl
57 <<
"Initialization done. Wall time : " << fixed << setprecision(3)
58 << timer.
Stop() / 1000 <<
" Sec" << endl;
65 cout <<
"\n=========================================" << endl;
68 cout <<
"Dynamic simulation with IMPEC";
71 cout <<
"Dynamic simulation with FIM";
74 cout <<
"Dynamic simulation with FIMn";
77 cout <<
"Dynamic simulation with AIMc";
80 cout <<
"Dynamic simulation with AIMs";
83 cout <<
"Dynamic simulation with AIMt";
88 cout <<
"\n=========================================" << endl;
96 cout <<
"=========================================" << endl;
97 cout <<
"Final time: " << control.current_time <<
" Days" << endl;
98 cout <<
"Total time steps: " << control.numTstep << endl;
99 cout <<
"Total Newton steps: " << control.iterNR_total <<
" (+"
100 << control.wastedIterNR <<
" wasted steps)" << endl;
101 cout <<
"Total linear steps: " << control.iterLS_total <<
" (+"
102 << control.wastedIterLS <<
" wasted steps)" << endl;
103 cout <<
"Linear solve time: " << control.totalLStime <<
"s"
104 <<
" (" << 100.0 * control.totalLStime / control.totalSimTime <<
"%)" << endl;
105 cout <<
"Simulation time: " << control.totalSimTime <<
"s" << endl;
const USI AIMs
Adaptive implicit.
const USI AIMt
improved version of IMPEC, loacl FIM after IMPEC
unsigned int USI
Generic unsigned integer.
const USI FIMn
Solution method = FIM.
const USI FIM
Solution method = FIM.
const USI AIMc
Adaptive implicit -— Collins.
const USI IMPEC
Solution method = IMPEC.
Main header file for OpenCAEPoro simulator.
#define OCP_ABORT(msg)
Abort if critical error happens.
Get elapsed wall-time in millisecond.
__inline__ double Stop() const
Stop the timer and return duration from start() in ms.
__inline__ void Start()
Start the timer.
void SetupFastControl(const USI &argc, const char *optset[])
Setup fast Control.
void RecordTotalTime(const OCP_DBL &t)
Record the total time of simulation.
void InputParam(const ParamControl &CtrlParam)
Input parameters for control.
USI GetMethod() const
Return type of the solution method.
void InputParam(ParamRead ¶m)
Read input parameters to an internal structure.
void SetupSimulator(ParamRead ¶m, const USI &argc, const char *options[])
Setup reservoir based on an internal structure.
void RunSimulation()
Run dynamic simulation.
void OutputResults() const
Output necessary information for post-processing.
void InitReservoir()
Initialize or get initial status of reservoir.
Pre-processing unit for OpenCAEPoro for reading params from input files.
ParamOutput paramOutput
Read the output params.
ParamControl paramControl
Read the control params.
void Setup()
Setup static information for reservoir with input params.
void InputParam(ParamRead ¶m)
void Setup(Reservoir &rs, const OCPControl &ctrl)
Setup Solver.
void RunSimulation(Reservoir &rs, OCPControl &ctrl, OCPOutput &output)
Start simulation.
void InitReservoir(Reservoir &rs) const
Initialize the reservoir.