39 inline double operator() (
double por_m) {
45 inline double operator() (
double surface_cond,
double rock_density) {
46 return surface_cond * rock_density;
58 return IT::Record(
"Sorption",
"Sorption model in the reaction term of transport.")
63 "Setting of the fields output.")
71 eq_fields_ = std::make_shared<EqFields>(
"conc_solid",
"Concentration solution in the solid phase.");
78 Input::register_class< SorptionSimple, Mesh &, Input::Record >(
"Sorption") +
102 .
name(
"porosity_immobile")
107 const string &output_conc_name,
108 const string &output_conc_desc)
111 eq_fields_dual_ = std::make_shared<EqFields>(output_conc_name, output_conc_desc);
133 inline double operator() (
double por_m,
double por_imm,
double surface_cond,
double rock_density) {
134 double phi = por_m/(por_m + por_imm);
135 return phi * surface_cond * rock_density;
141 return 1 - por_m - por_imm;
147 return IT::Record(
"SorptionMobile",
"Sorption model in the mobile zone, following the dual porosity model.")
152 "Setting of the fields output.")
159 Input::register_class< SorptionMob, Mesh &, Input::Record >(
"SorptionMobile") +
164 :
SorptionDual(init_mesh, in_rec,
"conc_solid",
"Concentration solution in the solid mobile phase.")
194 inline double operator() (
double por_m,
double por_imm,
double surface_cond,
double rock_density) {
195 double phi = por_m/(por_m + por_imm);
196 return (1 - phi) * surface_cond * rock_density;
202 return 1 - por_m - por_imm;
208 return IT::Record(
"SorptionImmobile",
"Sorption model in the immobile zone, following the dual porosity model.")
211 .
declare_key(
"output",
make_output_type(
"SorptionImmobile",
"conc_immobile_solid",
"Concentration solution in the solid immobile phase."),
212 IT::Default(
"{ \"fields\": [ \"conc_immobile_solid\" ] }"),
213 "Setting of the fields output.")
219 Input::register_class< SorptionImmob, Mesh &, Input::Record >(
"SorptionImmobile") +
223 :
SorptionDual(init_mesh, in_rec,
"conc_immobile_solid",
"Concentration solution in the solid immobile phase.")
std::shared_ptr< FieldSet > eq_fieldset_
FieldCommon & flags_add(FieldFlag::Flags::Mask mask)
FieldCommon & name(const string &name)
FieldCommon & set_limits(double min, double max=std::numeric_limits< double >::max())
static constexpr Mask input_copy
static Input::Type::Abstract & it_abstract_immobile_term()
std::shared_ptr< EqFields > eq_fields_base_
Equation data - all fields needs in assembly class.
static Input::Type::Abstract & it_abstract_term()
static Input::Type::Abstract & it_abstract_mobile_term()
static const Input::Type::Record & get_input_type()
std::shared_ptr< EqData > eq_data_
Equation data.
static Input::Type::Instance make_output_type(const string &equation_name, const string &output_field_name, const string &output_field_desc)
std::shared_ptr< EqFields > eq_fields_
Pointer to equation fields. The object is constructed in descendants.
Field< 3, FieldValue< 3 >::Scalar > immob_porosity_
Abstract class of sorption model in case dual porosity is considered.
~SorptionDual(void)
Destructor.
SorptionDual(Mesh &init_mesh, Input::Record in_rec, const string &output_conc_name, const string &output_conc_desc)
Constructor.
std::shared_ptr< EqFields > eq_fields_dual_
Overwrites SorptionBase::eq_fields_.
SorptionImmob(Mesh &init_mesh, Input::Record in_rec)
Constructor.
~SorptionImmob(void)
Destructor.
void init_field_models() override
Implements SorptionBase::init_field_models.
static const int registrar
Registrar of class to factory.
static const Input::Type::Record & get_input_type()
static const int registrar
Registrar of class to factory.
SorptionMob(Mesh &init_mesh, Input::Record in_rec)
Constructor.
static const Input::Type::Record & get_input_type()
void init_field_models() override
Implements SorptionBase::init_field_models.
~SorptionMob(void)
Destructor.
static const Input::Type::Record & get_input_type()
~SorptionSimple(void)
Destructor.
static const int registrar
Registrar of class to factory.
void init_field_models() override
Implements SorptionBase::init_field_models.
SorptionSimple(Mesh &init_mesh, Input::Record in_rec)
Constructor.
#define FLOW123D_FORCE_LINK_IN_CHILD(x)
This file contains classes representing sorption model. Sorption model can be computed both in case t...
double operator()(double por_imm)
double operator()(double por_m, double por_imm, double surface_cond, double rock_density)
double operator()(double por_m, double por_imm)
double operator()(double por_m)
double operator()(double por_m, double por_imm, double surface_cond, double rock_density)
double operator()(double por_m, double por_imm)
double operator()(double surface_cond, double rock_density)
double operator()(double por_m)