Flow123d  release_3.0.0-962-g8853c67
Public Member Functions | Static Public Member Functions | Private Attributes | Static Private Attributes | List of all members
HM_Iterative Class Reference

Class for solution of fully coupled flow and mechanics using fixed-stress iterative splitting. More...

#include <hm_iterative.hh>

Inheritance diagram for HM_Iterative:
Inheritance graph
[legend]
Collaboration diagram for HM_Iterative:
Collaboration graph
[legend]

Public Member Functions

 HM_Iterative (Mesh &mesh, Input::Record in_record)
 
void zero_time_step () override
 
void update_solution () override
 
const MH_DofHandlerget_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 void initialize ()
 
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)
 
TimeGovernortime ()
 
virtual void set_time_governor (TimeGovernor &time)
 
double planned_time ()
 
double solved_time ()
 
Meshmesh ()
 
TimeMark::Type mark_type ()
 
FieldSetdata ()
 
virtual void get_solution_vector (double *&vector, unsigned int &size)
 
virtual void get_parallel_solution_vector (Vec &vector)
 
virtual void output_data ()
 Write computed fields. More...
 

Static Public Member Functions

static const Input::Type::Recordget_input_type ()
 Define input record. More...
 
- Static Public Member Functions inherited from DarcyFlowInterface
static Input::Type::Abstractget_input_type ()
 

Private Attributes

std::shared_ptr< RichardsLMHflow_
 steady or unsteady water flow simulator based on MH scheme More...
 
std::shared_ptr< EquationBasemechanics_
 solute transport with chemistry through operator splitting More...
 
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...
 
Meshmesh_
 
TimeGovernortime_
 
Input::Record input_record_
 
FieldSeteq_data_
 
std::shared_ptr< Balancebalance_
 object for calculation and writing the mass balance to file. More...
 

Detailed Description

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 46 of file hm_iterative.hh.

Constructor & Destructor Documentation

HM_Iterative::HM_Iterative ( Mesh mesh,
Input::Record  in_record 
)

Definition at line 61 of file hm_iterative.cc.

HM_Iterative::~HM_Iterative ( )

Definition at line 126 of file hm_iterative.cc.

Member Function Documentation

const it::Record & HM_Iterative::get_input_type ( )
static

Define input record.

Definition at line 32 of file hm_iterative.cc.

const MH_DofHandler & HM_Iterative::get_mh_dofhandler ( )
overridevirtual

Implements DarcyFlowInterface.

Definition at line 120 of file hm_iterative.cc.

void HM_Iterative::update_solution ( void  )
overridevirtual

Calculation of the next time step and its output.

Reimplemented from EquationBase.

Definition at line 99 of file hm_iterative.cc.

void HM_Iterative::zero_time_step ( )
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 93 of file hm_iterative.cc.

Member Data Documentation

double HM_Iterative::a_tol_
private

Absolute tolerance for difference between two succeeding iterations.

Definition at line 77 of file hm_iterative.hh.

double HM_Iterative::beta_
private

Tuning parameter for iterative splitting.

Definition at line 68 of file hm_iterative.hh.

std::shared_ptr<RichardsLMH> HM_Iterative::flow_
private

steady or unsteady water flow simulator based on MH scheme

Definition at line 62 of file hm_iterative.hh.

unsigned int HM_Iterative::max_it_
private

Maximal number of iterations.

Definition at line 74 of file hm_iterative.hh.

std::shared_ptr<EquationBase> HM_Iterative::mechanics_
private

solute transport with chemistry through operator splitting

Definition at line 65 of file hm_iterative.hh.

unsigned int HM_Iterative::min_it_
private

Minimal number of iterations to perform.

Definition at line 71 of file hm_iterative.hh.

double HM_Iterative::r_tol_
private

Relative tolerance for difference between two succeeding iterations.

Definition at line 80 of file hm_iterative.hh.

const int HM_Iterative::registrar
staticprivate
Initial value:
= Input::register_class< HM_Iterative, Mesh &, const Input::Record >("Coupling_Iterative")

Definition at line 59 of file hm_iterative.hh.


The documentation for this class was generated from the following files: