23 #ifndef DUAL_POROSITY_H_ 24 #define DUAL_POROSITY_H_ 159 #endif //DUAL_POROSITY_H_ ReactionTerm FactoryBaseType
Container for various descendants of FieldCommonBase.
void set_initial_condition()
Sets initial condition from input.
VecScatter vconc_out_scatter
Output vector scatter.
std::shared_ptr< ReactionTerm > reaction_mobile
Reaction running in mobile zone.
void output_data(void) override
Main output routine.
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.
void zero_time_step() override
Field< 3, FieldValue< 3 >::Scalar > porosity_immobile
Immobile porosity field.
~DualPorosity(void)
Destructor.
std::vector< VectorSeqDouble > conc_immobile_out
concentration array output for immobile phase (gathered - sequential)
void allocate_output_mpi(void)
Allocates petsc vectors, prepares them for output and creates output vector scatter.
void update_solution(void) override
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.
void make_reactions()
Resolves construction of following reactions.
void initialize() override
Prepares the object to usage.
bool evaluate_time_constraint(double &time_constraint) override
Computes a constraint for time step.
void initialize_fields()
Initializes field sets.
EqData()
Collect all fields.
Class representing dual porosity model in transport.
void output_vector_gather(void) override
Gathers all the parallel vectors to enable them to be output.
double ** compute_reaction(double **concentrations, int loc_el) override
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.
static const Input::Type::Record & get_input_type()
Vec * vconc_immobile
PETSC concentration vector for immobile phase (parallel).