Flow123d
JS_before_hm-1709-g5393e92e3
|
Go to the documentation of this file.
19 #ifndef HM_ITERATIVE_HH_
20 #define HM_ITERATIVE_HH_
43 "Record with data for iterative coupling.\n")
45 "Maximal count of HM iterations." )
47 "Minimal count of HM iterations." )
49 "Absolute tolerance for difference in HM iteration." )
51 "Relative tolerance for difference in HM iteration." )
58 min_it_ = in_record.
val<
unsigned int>(
"min_it");
59 max_it_ = in_record.
val<
unsigned int>(
"max_it");
67 double abs_error = std::numeric_limits<double>::max();
68 double rel_error = std::numeric_limits<double>::max();
146 std::shared_ptr<FieldFE<3, FieldValue<3>::Scalar> >
beta_ptr_;
150 std::shared_ptr<FieldFE<3, FieldValue<3>::Scalar> >
div_u_ptr_;
static const Input::Type::Record & get_input_type()
Define input record.
std::shared_ptr< FieldFE< 3, FieldValue< 3 >::Scalar > > old_iter_pressure_ptr_
const Mesh * mesh() const
Returns pointer to mesh.
std::shared_ptr< FieldFE< 3, FieldValue< 3 >::Scalar > > beta_ptr_
std::shared_ptr< FieldFE< 3, FieldValue< 3 >::Scalar > > old_div_u_ptr_
Class for solution of fully coupled flow and mechanics using fixed-stress iterative splitting.
std::shared_ptr< RichardsLMH > flow_
steady or unsteady water flow simulator based on MH scheme
virtual void update_after_iteration()=0
Save data (e.g. solution fields) for the next iteration.
static const int registrar
void zero_time_step() override
std::shared_ptr< Elasticity > mechanics_
solute transport with chemistry through operator splitting
Field< 3, FieldValue< 3 >::Scalar > pressure_potential
Potential -alpha*pressure whose gradient is passed to mechanics as additional load.
virtual void solve_iteration()=0
Solve equations and update data (fields).
std::shared_ptr< FieldFE< 3, FieldValue< 3 >::Scalar > > flow_source_ptr_
void initialize(Mesh &mesh)
void update_after_converged() override
Save data after iterations have finished.
std::shared_ptr< FieldFE< 3, FieldValue< 3 >::Scalar > > div_u_ptr_
double a_tol_
Absolute tolerance for difference between two succeeding iterations.
unsigned int min_it_
Minimal number of iterations to perform.
HM_Iterative(Mesh &mesh, Input::Record in_record)
std::shared_ptr< FieldFE< 3, FieldValue< 3 >::Scalar > > old_pressure_ptr_
static const Input::Type::Record & record_template()
FEM for linear elasticity.
std::shared_ptr< FieldFE< 3, FieldValue< 3 >::Scalar > > potential_ptr_
FieldFE for pressure_potential field.
void compute_iteration_error(double &abs_error, double &rel_error) override
Compute absolute and relative error in the solution.
Common abstract parent of all Field<...> classes.
Container for various descendants of FieldCommonBase.
Abstract base class for equation clasess.
void update_flow_fields()
void update_solution() override
double beta_
Tuning parameter for iterative splitting.
void initialize() override
Field< 3, FieldValue< 3 >::Scalar > alpha
Biot coefficient.
double r_tol_
Relative tolerance for difference between two succeeding iterations.
Field< 3, FieldValue< 3 >::Scalar > gravity
Standard gravity.
Field< 3, FieldValue< 3 >::Scalar > flow_source
Field< 3, FieldValue< 3 >::Scalar > beta
virtual void update_after_converged()=0
Save data after iterations have finished.
Edge lumped mixed-hybrid solution of unsteady Darcy flow.
void update_after_iteration() override
Save data (e.g. solution fields) for the next iteration.
IterativeCoupling(Input::Record in_record)
virtual void compute_iteration_error(double &abs_error, double &rel_error)=0
Compute absolute and relative error in the solution.
void solve_iteration() override
Solve equations and update data (fields).
Class template representing a field with values dependent on: point, element, and region.
Field< 3, FieldValue< 3 >::Scalar > density
Density of fluid.
unsigned int max_it_
Maximal number of iterations.
unsigned int it
Iteration index.