24 #ifndef SORPTION_BASE_H 25 #define SORPTION_BASE_H 27 #include <boost/exception/info.hpp> 63 <<
" does not match the number of substances.");
84 EqData(
const string &output_field_name,
const string &output_field_desc);
121 void initialize()
override;
127 void zero_time_step()
override;
133 void update_solution(
void)
override;
135 void output_data(
void)
override;
150 void make_reactions();
154 void initialize_substance_ids();
157 void initialize_from_input();
160 void initialize_fields();
163 void set_initial_condition();
166 void allocate_output_mpi(
void);
169 void output_vector_gather(
void)
override;
174 double **compute_reaction(
double **concentrations,
int loc_el)
override;
190 void make_tables(
void);
193 void update_max_conc();
196 void clear_max_conc();
276 #endif //SORPTION_BASE_H std::shared_ptr< ReactionTerm > reaction_solid
Container for various descendants of FieldCommonBase.
MultiField< 3, FieldValue< 3 >::Scalar > conc_solid
Calculated sorbed concentrations, for output only.
std::vector< std::vector< Isotherm > > isotherms
static Input::Type::Instance make_output_type(const string &equation_name, const string &output_field_name, const string &output_field_desc)
Class template representing a field with values dependent on: point, element, and region...
Field< 3, FieldValue< 3 >::Scalar > rock_density
Rock matrix density.
EquationOutput output_fields
Fields indended for output, i.e. all input fields plus those representing solution.
std::vector< double > table_limit_
Class ReactionTerm is an abstract class representing reaction term in transport.
std::vector< unsigned int > substance_global_idx_
Mapping from local indexing of substances to global.
std::vector< VectorMPI > conc_solid_out
sorbed concentration array output (gathered - sequential)
MultiField< 3, FieldValue< 3 >::Scalar > isotherm_other
Langmuir sorption coeficients alpha (in fraction c_s = omega * (alpha*c_a)/(1- alpha*c_a)).
double no_sorbing_surface_cond
Field< 3, FieldValue< 3 >::Scalar > porosity
Porosity field copied from transport.
Vec * vconc_solid
PETSC sorbed concentration vector (parallel).
std::vector< std::shared_ptr< FieldFE< 3, FieldValue< 3 >::Scalar > > > output_field_ptr
Fields correspond with conc_solid_out.
MultiField< 3, FieldValue< 3 >::Scalar > init_conc_solid
Initial sorbed concentrations.
std::vector< double > solubility_vec_
unsigned int n_interpolation_steps_
MultiField< 3, FieldValue< 3 >::Enum > sorption_type
Discrete need Selection for initialization.
VecScatter vconc_out_scatter
Output vector scatter.
const Input::Type::Instance & make_output_type(const string &equation_name, const string &aditional_description="")
Class for representation of a vector of fields of the same physical quantity.
MultiField< 3, FieldValue< 3 >::Scalar > distribution_coefficient
Multiplication coefficients (k, omega) for all types of isotherms.
unsigned int n_substances_
bool evaluate_time_constraint(double &time_constraint) override
Computes a constraint for time step.
EqData * data_
Pointer to equation data. The object is constructed in descendants.
std::vector< std::vector< double > > max_conc
FieldSet input_data_set_
Input data set - fields in this set are read from the input file.
std::shared_ptr< ReactionTerm > reaction_liquid