Flow123d
JS_before_hm-2208-gb971e62bf
|
Go to the documentation of this file.
19 #ifndef HM_ITERATIVE_HH_
20 #define HM_ITERATIVE_HH_
46 "Record with data for iterative coupling.\n")
48 "Maximal count of HM iterations." )
50 "Minimal count of HM iterations." )
52 "Absolute tolerance for difference in HM iteration." )
54 "Relative tolerance for difference in HM iteration." )
61 min_it_ = in_record.
val<
unsigned int>(
"min_it");
62 max_it_ = in_record.
val<
unsigned int>(
"max_it");
70 double abs_error = std::numeric_limits<double>::max();
71 double rel_error = std::numeric_limits<double>::max();
Field< 3, FieldValue< 3 >::Scalar > alpha
Biot coefficient.
static const Input::Type::Record & get_input_type()
Define input record.
const Mesh * mesh() const
Returns pointer to mesh.
Class for solution of fully coupled flow and mechanics using fixed-stress iterative splitting.
std::shared_ptr< FieldFE< 3, FieldValue< 3 >::Scalar > > old_div_u_ptr_
std::shared_ptr< FieldFE< 3, FieldValue< 3 >::Scalar > > old_pressure_ptr_
Field< 3, FieldValue< 3 >::Scalar > beta
std::shared_ptr< FieldFE< 3, FieldValue< 3 >::Scalar > > ref_potential_ptr_
FieldFE for pressure_potential field.
Field< 3, FieldValue< 3 >::Scalar > pressure_potential
Potential -alpha*pressure whose gradient is passed to mechanics as additional load.
Field< 3, FieldValue< 3 >::Scalar > density
Density of fluid.
virtual void update_after_iteration()=0
Save data (e.g. solution fields) for the next iteration.
Field< 3, FieldValue< 3 >::Scalar > flow_source
Field< 3, FieldValue< 3 >::Scalar > old_iter_pressure
static const int registrar
void zero_time_step() override
Field< 3, FieldValue< 3 >::Scalar > ref_pressure_potential
Potential of reference (prescribed) pressure from flow b.c. TODO: Swith to BCField when possible.
void initialize(Mesh &mesh, HM_Iterative::EqData &eq_data)
std::shared_ptr< FieldFE< 3, FieldValue< 3 >::Scalar > > old_iter_pressure_ptr_
virtual void solve_iteration()=0
Solve equations and update data (fields).
Field< 3, FieldValue< 3 >::Scalar > gravity
Standard gravity.
void update_after_converged() override
Save data after iterations have finished.
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)
GenericAssembly< FlowPotentialAssemblyHM > * flow_potential_assembly_
static const Input::Type::Record & record_template()
FEM for linear elasticity.
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.
Field< 3, FieldValue< 3 >::Scalar > old_pressure
Container for various descendants of FieldCommonBase.
Abstract base class for equation clasess.
void update_flow_fields()
void update_solution() override
GenericAssembly< ResidualAssemblyHM > * residual_assembly_
double p_norm2
Squared pressure norm in the last iteration.
std::shared_ptr< RichardsLMH > flow_
steady or unsteady water flow simulator based on MH scheme
void initialize() override
double r_tol_
Relative tolerance for difference between two succeeding iterations.
double p_dif2
Squared norm of pressure difference in two subsequent iterations.
virtual void update_after_converged()=0
Save data after iterations have finished.
Edge lumped mixed-hybrid solution of unsteady Darcy flow.
std::shared_ptr< Elasticity > mechanics_
solute transport with chemistry through operator splitting
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 > old_div_u
unsigned int max_it_
Maximal number of iterations.
unsigned int it
Iteration index.