Flow123d  release_3.0.0-1105-g32a483d
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
SorptionDual Class Referenceabstract

Abstract class of sorption model in case dual porosity is considered. More...

#include <sorption.hh>

Inheritance diagram for SorptionDual:
Inheritance graph
[legend]
Collaboration diagram for SorptionDual:
Collaboration graph
[legend]

Public Member Functions

 SorptionDual (Mesh &init_mesh, Input::Record in_rec, const string &output_conc_name, const string &output_conc_desc)
 Constructor. More...
 
 ~SorptionDual (void)
 Destructor. More...
 
void set_porosity_immobile (Field< 3, FieldValue< 3 >::Scalar > &por_imm)
 Sets the immobile porosity field. More...
 
- Public Member Functions inherited from SorptionBase
 TYPEDEF_ERR_INFO (EI_ArrayName, std::string)
 
 DECLARE_INPUT_EXCEPTION (ExcSubstanceCountMatch,<< "The size of the input array "<< EI_ArrayName::qval<< " does not match the number of substances.")
 
 SorptionBase (Mesh &init_mesh, Input::Record in_rec)
 
virtual ~SorptionBase (void)
 
void initialize () override
 Prepares the object to usage. More...
 
void zero_time_step () override
 
void update_solution (void) override
 Updates the solution. More...
 
void output_data (void) override
 Output method. More...
 
bool evaluate_time_constraint (double &time_constraint) override
 Computes a constraint for time step. More...
 
- Public Member Functions inherited from ReactionTerm
 TYPEDEF_ERR_INFO (EI_Substance, std::string)
 
 TYPEDEF_ERR_INFO (EI_Model, std::string)
 
 DECLARE_INPUT_EXCEPTION (ExcUnknownSubstance,<< "Unknown substance name: "<< EI_Substance::qval)
 
 DECLARE_INPUT_EXCEPTION (ExcWrongDescendantModel,<< "Impossible descendant model: "<< EI_Model::qval)
 
 ReactionTerm (Mesh &init_mesh, Input::Record in_rec)
 Constructor. More...
 
 ~ReactionTerm (void)
 Destructor. More...
 
void choose_next_time (void) override
 Disable changes in TimeGovernor by empty method. More...
 
ReactionTermset_dh (std::shared_ptr< DOFHandlerMultiDim > dof_handler)
 Sets the pointer to DOF handler (shared through the reaction tree) More...
 
ReactionTermsubstances (SubstanceList &substances)
 Sets the names of substances considered in transport. More...
 
ReactionTermoutput_stream (std::shared_ptr< OutputTime > ostream)
 Sets the output stream which is given from transport class. More...
 
ReactionTermconcentration_matrix (double **concentration, Distribution *conc_distr, LongIdx *el_4_loc, LongIdx *row_4_el)
 
- Public Member Functions inherited from EquationBase
 EquationBase ()
 
 EquationBase (Mesh &mesh, const Input::Record in_rec)
 
virtual ~EquationBase ()
 
virtual void set_time_upper_constraint (double dt, std::string message)
 
virtual void set_time_lower_constraint (double dt, std::string message)
 
TimeGovernortime ()
 
virtual void set_time_governor (TimeGovernor &time)
 
double planned_time ()
 
double solved_time ()
 
Meshmesh ()
 
TimeMark::Type mark_type ()
 
FieldSetdata ()
 
virtual void get_solution_vector (double *&vector, unsigned int &size)
 
virtual void get_parallel_solution_vector (Vec &vector)
 

Protected Member Functions

virtual void compute_common_ele_data (const ElementAccessor< 3 > &elem)=0
 Computes CommonElementData. Pure virtual. More...
 
- Protected Member Functions inherited from SorptionBase
 SorptionBase ()
 
void make_reactions ()
 
void initialize_substance_ids ()
 Reads names of substances from input and creates indexing to global vector of substance. More...
 
void initialize_from_input ()
 Initializes private members of sorption from the input record. More...
 
void initialize_fields ()
 Initializes field sets. More...
 
void set_initial_condition ()
 Reads and sets initial condition for concentration in solid. More...
 
double ** compute_reaction (double **concentrations, int loc_el) override
 
void isotherm_reinit (unsigned int i_subst, const ElementAccessor< 3 > &elm)
 Reinitializes the isotherm. More...
 
void isotherm_reinit_all (const ElementAccessor< 3 > &elm)
 Calls isotherm_reinit for all isotherms. More...
 
void make_tables (void)
 
void update_max_conc ()
 Computes maximal aqueous concentration at the current step. More...
 
void clear_max_conc ()
 Sets max conc to zeros on all regins. More...
 

Protected Attributes

Field< 3, FieldValue< 3 >::Scalar > immob_porosity_
 
- Protected Attributes inherited from SorptionBase
EqDatadata_
 Pointer to equation data. The object is constructed in descendants. More...
 
unsigned int n_interpolation_steps_
 
double solvent_density_
 
std::vector< double > solubility_vec_
 
std::vector< double > table_limit_
 
std::vector< std::vector< double > > max_conc
 
std::vector< std::vector< Isotherm > > isotherms
 
unsigned int n_substances_
 
std::vector< unsigned int > substance_global_idx_
 Mapping from local indexing of substances to global. More...
 
double ** conc_solid
 
std::shared_ptr< ReactionTermreaction_liquid
 
std::shared_ptr< ReactionTermreaction_solid
 
std::vector< std::shared_ptr< FieldFE< 3, FieldValue< 3 >::Scalar > > > output_field_ptr
 Fields correspond with conc_solid_out. More...
 
struct SorptionBase::CommonElementData common_ele_data
 
std::vector< VectorMPIconc_solid_out
 sorbed concentration array output (gathered - sequential) More...
 
- Protected Attributes inherited from ReactionTerm
double ** concentration_matrix_
 
LongIdxel_4_loc_
 Indices of elements belonging to local dofs. More...
 
LongIdxrow_4_el_
 Indices of rows belonging to elements. More...
 
Distributiondistribution_
 Pointer to reference to distribution of elements between processors. More...
 
SubstanceList substances_
 Names belonging to substances. More...
 
std::shared_ptr< OutputTimeoutput_stream_
 Pointer to a transport output stream. More...
 
std::shared_ptr< DOFHandlerMultiDimdof_handler_
 Pointer to DOF handler used through the reaction tree. More...
 
- Protected Attributes inherited from EquationBase
bool equation_empty_
 flag is true if only default constructor was called More...
 
Meshmesh_
 
TimeGovernortime_
 
Input::Record input_record_
 
FieldSeteq_data_
 
std::shared_ptr< Balancebalance_
 object for calculation and writing the mass balance to file. More...
 

Additional Inherited Members

- Static Public Member Functions inherited from SorptionBase
static const Input::Type::Recordget_input_type ()
 
static Input::Type::Instance make_output_type (const string &equation_name, const string &output_field_name, const string &output_field_desc)
 
- Static Public Member Functions inherited from ReactionTerm
static Input::Type::Abstractit_abstract_term ()
 
static Input::Type::Abstractit_abstract_mobile_term ()
 
static Input::Type::Abstractit_abstract_immobile_term ()
 
static Input::Type::Abstractit_abstract_reaction ()
 

Detailed Description

Abstract class of sorption model in case dual porosity is considered.

Definition at line 78 of file sorption.hh.

Constructor & Destructor Documentation

SorptionDual::SorptionDual ( Mesh init_mesh,
Input::Record  in_rec,
const string &  output_conc_name,
const string &  output_conc_desc 
)

Constructor.

Definition at line 75 of file sorption.cc.

SorptionDual::~SorptionDual ( void  )

Destructor.

Definition at line 88 of file sorption.cc.

Member Function Documentation

virtual void SorptionDual::compute_common_ele_data ( const ElementAccessor< 3 > &  elem)
protectedpure virtual

Computes CommonElementData. Pure virtual.

Implements SorptionBase.

Implemented in SorptionImmob, and SorptionMob.

void SorptionDual::set_porosity_immobile ( Field< 3, FieldValue< 3 >::Scalar > &  por_imm)
inline

Sets the immobile porosity field.

Definition at line 90 of file sorption.hh.

Member Data Documentation

Field<3, FieldValue<3>::Scalar > SorptionDual::immob_porosity_
protected

Definition at line 99 of file sorption.hh.


The documentation for this class was generated from the following files: