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 void allocate_output_mpi(
void);
127 double **compute_reaction(
double **concentrations,
int loc_el)
override;
130 void output_vector_gather(
void)
override;
174 #endif //DUAL_POROSITY_H_ ReactionTerm FactoryBaseType
Container for various descendants of FieldCommonBase.
VecScatter vconc_out_scatter
Output vector scatter.
std::shared_ptr< ReactionTerm > reaction_mobile
Reaction running in mobile zone.
std::vector< VectorMPI > conc_immobile_out
concentration array output for immobile phase (gathered - sequential)
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.
std::vector< std::shared_ptr< FieldFE< 3, FieldValue< 3 >::Scalar > > > output_field_ptr
Fields correspond with conc_immobile_out.
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.
Vec * vconc_immobile
PETSC concentration vector for immobile phase (parallel).