Flow123d
JS_before_hm-2208-g558930b9a
|
Go to the documentation of this file.
19 #ifndef HM_ITERATIVE_HH_
20 #define HM_ITERATIVE_HH_
43 <<
"Nonlinear solver did not converge. Reason: " << EI_Reason::val
48 "Record with data for iterative coupling.\n")
50 "Maximal count of HM iterations." )
52 "Minimal count of HM iterations." )
54 "Absolute tolerance for difference in HM iteration." )
56 "Relative tolerance for difference in HM iteration." )
63 min_it_ = in_record.
val<
unsigned int>(
"min_it");
64 max_it_ = in_record.
val<
unsigned int>(
"max_it");
72 double abs_error = std::numeric_limits<double>::max();
73 double rel_error = std::numeric_limits<double>::max();
153 std::shared_ptr<FieldFE<3, FieldValue<3>::Scalar> >
beta_ptr_;
157 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.
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
Field< 3, FieldValue< 3 >::Scalar > ref_pressure_potential
Potential of reference (prescribed) pressure from flow b.c. TODO: Swith to BCField when possible.
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.
TYPEDEF_ERR_INFO(EI_Reason, string)
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.
std::shared_ptr< FieldFE< 3, FieldValue< 3 >::Scalar > > ref_potential_ptr_
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.
Mixed-hybrid model of linear Darcy flow, possibly unsteady.
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.
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.
DECLARE_EXCEPTION(ExcSolverDiverge,<< "Nonlinear solver did not converge. Reason: "<< EI_Reason::val)
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.
std::shared_ptr< DarcyLMH > flow_
steady or unsteady water flow simulator based on MH scheme
unsigned int max_it_
Maximal number of iterations.
unsigned int it
Iteration index.