34 "Record with data for iterative coupling of flow and mechanics.\n")
38 "Flow equation, provides the velocity field as a result.")
42 "Tuning parameter for iterative splitting. Its default value" 43 "corresponds to a theoretically optimal value with fastest convergence." )
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." )
56 const int HM_Iterative::registrar = Input::register_class< HM_Iterative, Mesh &, const Input::Record >(
"Coupling_Iterative")
65 using namespace Input;
70 flow_ = std::make_shared<RichardsLMH>(*
mesh_, prim_eq);
82 beta_ = in_record.
val<
double>(
"iteration_parameter");
83 min_it_ = in_record.
val<
unsigned int>(
"min_it");
84 max_it_ = in_record.
val<
unsigned int>(
"max_it");
88 this->
eq_data_ = std::make_shared<FieldSet>().
get();
89 this->
time_ = &flow_->time();
95 flow_->zero_time_step();
102 double difference = 0;
103 double init_difference = 1;
106 (it < max_it_ && difference >
a_tol_ && difference/init_difference >
r_tol_)
113 flow_->update_solution();
122 return flow_->get_mh_dofhandler();
unsigned int max_it_
Maximal number of iterations.
double beta_
Tuning parameter for iterative splitting.
double r_tol_
Relative tolerance for difference between two succeeding iterations.
static const int registrar
std::shared_ptr< EquationBase > mechanics_
solute transport with chemistry through operator splitting
const MH_DofHandler & get_mh_dofhandler() override
FLOW123D_FORCE_LINK_IN_CHILD(coupling_iterative)
void zero_time_step() override
double a_tol_
Absolute tolerance for difference between two succeeding iterations.
static const Input::Type::Record & get_input_type()
Define input record.
void update_solution() override
#define START_TIMER(tag)
Starts a timer with specified tag.
static Input::Type::Abstract & get_input_type()
unsigned int min_it_
Minimal number of iterations to perform.
static const Input::Type::Record & get_input_type()
HM_Iterative(Mesh &mesh, Input::Record in_record)
#define WarningOut()
Macro defining 'warning' record of log.
std::shared_ptr< RichardsLMH > flow_
steady or unsteady water flow simulator based on MH scheme
static bool print_message_table(ostream &stream, std::string equation_name)