23 #ifndef DUAL_POROSITY_H_ 24 #define DUAL_POROSITY_H_ 26 #include <boost/exception/info.hpp> 47 template <
int spacedim,
class Value>
class FieldFE;
93 void initialize()
override;
99 void zero_time_step()
override;
104 void update_solution(
void)
override;
107 void output_data(
void)
override;
109 bool evaluate_time_constraint(
double &time_constraint)
override;
118 void make_reactions();
121 void set_initial_condition();
123 void initialize_fields();
125 double **compute_reaction(
double **concentrations,
int loc_el)
override;
162 #endif //DUAL_POROSITY_H_ ReactionTerm FactoryBaseType
Container for various descendants of FieldCommonBase.
std::shared_ptr< ReactionTerm > reaction_mobile
Reaction running in mobile zone.
std::vector< VectorMPI > conc_immobile_out
concentration array output for immobile phase (parallel, shared with FieldFE)
MultiField< 3, FieldValue< 3 >::Scalar > conc_immobile
Calculated concentrations in the immobile zone.
Class template representing a field with values dependent on: point, element, and region...
EquationOutput output_fields
Fields indended for output, i.e. all input fields plus those representing solution.
Field< 3, FieldValue< 3 >::Scalar > porosity_immobile
Immobile porosity field.
Class ReactionTerm is an abstract class representing reaction term in transport.
double scheme_tolerance_
Dual porosity computational scheme tolerance.
std::shared_ptr< ReactionTerm > reaction_immobile
Reaction running in immobile zone.
Class representing dual porosity model in transport.
MultiField< 3, FieldValue< 3 >::Scalar > diffusion_rate_immobile
Mass transfer coefficients between mobile and immobile pores.
static const int registrar
Registrar of class to factory.
MultiField< 3, FieldValue< 3 >::Scalar > init_conc_immobile
Initial concentrations in the immobile zone.
Field< 3, FieldValue< 3 >::Scalar > porosity
Porosity field.
Class for representation of a vector of fields of the same physical quantity.