Flow123d
release_3.0.0-1264-g45bfb2a
|
Class for solution of fully coupled flow and mechanics using fixed-stress iterative splitting. More...
#include <hm_iterative.hh>
Classes | |
class | EqData |
Public Member Functions | |
HM_Iterative (Mesh &mesh, Input::Record in_record) | |
void | initialize () override |
void | zero_time_step () override |
void | update_solution () override |
const MH_DofHandler & | get_mh_dofhandler () override |
~HM_Iterative () | |
Public Member Functions inherited from DarcyFlowInterface | |
DarcyFlowInterface (Mesh &mesh, const Input::Record in_rec) | |
virtual | ~DarcyFlowInterface () |
Public Member Functions inherited from EquationBase | |
EquationBase () | |
EquationBase (Mesh &mesh, const Input::Record in_rec) | |
virtual | ~EquationBase () |
virtual void | choose_next_time () |
virtual void | set_time_upper_constraint (double dt, std::string message) |
virtual void | set_time_lower_constraint (double dt, std::string message) |
TimeGovernor & | time () |
virtual void | set_time_governor (TimeGovernor &time) |
double | planned_time () |
double | solved_time () |
Mesh & | mesh () |
TimeMark::Type | mark_type () |
FieldSet & | data () |
virtual void | get_solution_vector (FMT_UNUSED double *&vector, FMT_UNUSED unsigned int &size) |
virtual void | get_parallel_solution_vector (FMT_UNUSED Vec &vector) |
virtual void | output_data () |
Write computed fields. More... | |
Static Public Member Functions | |
static const Input::Type::Record & | get_input_type () |
Define input record. More... | |
Static Public Member Functions inherited from DarcyFlowInterface | |
static Input::Type::Abstract & | get_input_type () |
Private Attributes | |
std::shared_ptr< RichardsLMH > | flow_ |
steady or unsteady water flow simulator based on MH scheme More... | |
std::shared_ptr< Elasticity > | mechanics_ |
solute transport with chemistry through operator splitting More... | |
EqData | data_ |
double | beta_ |
Tuning parameter for iterative splitting. More... | |
unsigned int | min_it_ |
Minimal number of iterations to perform. More... | |
unsigned int | max_it_ |
Maximal number of iterations. More... | |
double | a_tol_ |
Absolute tolerance for difference between two succeeding iterations. More... | |
double | r_tol_ |
Relative tolerance for difference between two succeeding iterations. More... | |
Static Private Attributes | |
static const int | registrar |
Additional Inherited Members | |
Public Types inherited from DarcyFlowInterface | |
typedef DarcyFlowInterface | FactoryBaseType |
Typedef for usage of Input::Factory in child classes. More... | |
Protected Attributes inherited from EquationBase | |
bool | equation_empty_ |
flag is true if only default constructor was called More... | |
Mesh * | mesh_ |
TimeGovernor * | time_ |
Input::Record | input_record_ |
FieldSet * | eq_data_ |
std::shared_ptr< Balance > | balance_ |
object for calculation and writing the mass balance to file. More... | |
Class for solution of fully coupled flow and mechanics using fixed-stress iterative splitting.
Flow and mechanics are solved separately and within each iteration the coupling terms are updated. Here we use the fixed-stress splitting [see Mikelic&Wheeler, Comput. Geosci. 17(3), 2013] which uses a tuning parameter "beta" to speed up the convergence.
TODO: The class is currently inherited from DarcyFlowInterface in order to provide MH_DofHandler for transport processes. This should be changed as soon as we replace MH_DofHandler by fields for velocity and pressure.
Definition at line 47 of file hm_iterative.hh.
HM_Iterative::HM_Iterative | ( | Mesh & | mesh, |
Input::Record | in_record | ||
) |
Definition at line 66 of file hm_iterative.cc.
HM_Iterative::~HM_Iterative | ( | ) |
Definition at line 146 of file hm_iterative.cc.
|
static |
Define input record.
Definition at line 32 of file hm_iterative.cc.
|
overridevirtual |
Implements DarcyFlowInterface.
Definition at line 140 of file hm_iterative.cc.
|
overridevirtual |
This method should initialize fields of the equation. All members (e.g. number of components) that are necessary for the field initialization must be set between construction and call of initialize. After this method the upper level coupling may set sharing of some fields between equations.
Reimplemented from EquationBase.
Definition at line 107 of file hm_iterative.cc.
|
overridevirtual |
Calculation of the next time step and its output.
Reimplemented from EquationBase.
Definition at line 119 of file hm_iterative.cc.
|
overridevirtual |
Initialization of the solution in the zero time.
There may be fields that can not be initialized in the initialize method as they are provided by the coupling. Fields coming from coupling has to be set after the initialize method and before zero_time_step.
Reimplemented from EquationBase.
Definition at line 112 of file hm_iterative.cc.
|
private |
Absolute tolerance for difference between two succeeding iterations.
Definition at line 89 of file hm_iterative.hh.
|
private |
Tuning parameter for iterative splitting.
Definition at line 80 of file hm_iterative.hh.
|
private |
Definition at line 77 of file hm_iterative.hh.
|
private |
steady or unsteady water flow simulator based on MH scheme
Definition at line 72 of file hm_iterative.hh.
|
private |
Maximal number of iterations.
Definition at line 86 of file hm_iterative.hh.
|
private |
solute transport with chemistry through operator splitting
Definition at line 75 of file hm_iterative.hh.
|
private |
Minimal number of iterations to perform.
Definition at line 83 of file hm_iterative.hh.
|
private |
Relative tolerance for difference between two succeeding iterations.
Definition at line 92 of file hm_iterative.hh.
|
staticprivate |
Definition at line 69 of file hm_iterative.hh.