Flow123d
release_3.0.0-684-g928e266
|
Class representing dual porosity model in transport. More...
#include <dual_porosity.hh>
Classes | |
class | EqData |
DualPorosity data. More... | |
Public Types | |
typedef ReactionTerm | FactoryBaseType |
Public Member Functions | |
DualPorosity (Mesh &init_mesh, Input::Record in_rec) | |
Constructor. More... | |
~DualPorosity (void) | |
Destructor. More... | |
void | initialize () override |
Prepares the object to usage. More... | |
void | zero_time_step () override |
void | update_solution (void) override |
void | output_data (void) override |
Main output routine. 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... | |
ReactionTerm & | substances (SubstanceList &substances) |
Sets the names of substances considered in transport. More... | |
ReactionTerm & | output_stream (std::shared_ptr< OutputTime > ostream) |
Sets the output stream which is given from transport class. More... | |
ReactionTerm & | concentration_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) |
TimeGovernor & | time () |
virtual void | set_time_governor (TimeGovernor &time) |
double | planned_time () |
double | solved_time () |
Mesh & | mesh () |
TimeMark::Type | mark_type () |
FieldSet & | data () |
virtual void | get_solution_vector (double *&vector, unsigned int &size) |
virtual void | get_parallel_solution_vector (Vec &vector) |
Static Public Member Functions | |
static const Input::Type::Record & | get_input_type () |
Static Public Member Functions inherited from ReactionTerm | |
static Input::Type::Abstract & | it_abstract_term () |
static Input::Type::Abstract & | it_abstract_mobile_term () |
static Input::Type::Abstract & | it_abstract_immobile_term () |
static Input::Type::Abstract & | it_abstract_reaction () |
Protected Member Functions | |
DualPorosity () | |
void | make_reactions () |
Resolves construction of following reactions. More... | |
void | set_initial_condition () |
Sets initial condition from input. More... | |
void | initialize_fields () |
Initializes field sets. More... | |
void | allocate_output_mpi (void) |
Allocates petsc vectors, prepares them for output and creates output vector scatter. More... | |
double ** | compute_reaction (double **concentrations, int loc_el) override |
void | output_vector_gather (void) override |
Gathers all the parallel vectors to enable them to be output. More... | |
Protected Attributes | |
double ** | conc_immobile |
EqData | data_ |
FieldSet | input_data_set_ |
std::shared_ptr< ReactionTerm > | reaction_mobile |
Reaction running in mobile zone. More... | |
std::shared_ptr< ReactionTerm > | reaction_immobile |
Reaction running in immobile zone. More... | |
double | scheme_tolerance_ |
Dual porosity computational scheme tolerance. More... | |
std::vector< std::shared_ptr< FieldFE< 3, FieldValue< 3 >::Scalar > > > | output_field_ptr |
Fields correspond with conc_immobile_out . More... | |
members used in output routines | |
VecScatter | vconc_out_scatter |
Output vector scatter. More... | |
Vec * | vconc_immobile |
PETSC concentration vector for immobile phase (parallel). More... | |
std::vector< VectorMPI > | conc_immobile_out |
concentration array output for immobile phase (gathered - sequential) More... | |
Protected Attributes inherited from ReactionTerm | |
double ** | concentration_matrix_ |
LongIdx * | el_4_loc_ |
Indices of elements belonging to local dofs. More... | |
LongIdx * | row_4_el_ |
Indices of rows belonging to elements. More... | |
Distribution * | distribution_ |
Pointer to reference to distribution of elements between processors. More... | |
SubstanceList | substances_ |
Names belonging to substances. More... | |
std::shared_ptr< OutputTime > | output_stream_ |
Pointer to a transport output stream. More... | |
Protected Attributes inherited from EquationBase | |
bool | equation_empty_ |
flag is true if only default constructor was called More... | |
Mesh * | mesh_ |
TimeGovernor * | time_ |
Input::Record | input_record_ |
FieldSet * | eq_data_ |
std::shared_ptr< Balance > | balance_ |
object for calculation and writing the mass balance to file. More... | |
Static Private Attributes | |
static const int | registrar |
Registrar of class to factory. More... | |
Class representing dual porosity model in transport.
Definition at line 51 of file dual_porosity.hh.
Definition at line 54 of file dual_porosity.hh.
DualPorosity::DualPorosity | ( | Mesh & | init_mesh, |
Input::Record | in_rec | ||
) |
Constructor.
Definition at line 109 of file dual_porosity.cc.
DualPorosity::~DualPorosity | ( | void | ) |
Destructor.
Definition at line 121 of file dual_porosity.cc.
|
protected |
This method disables to use constructor without parameters.
|
protected |
Allocates petsc vectors, prepares them for output and creates output vector scatter.
Definition at line 368 of file dual_porosity.cc.
|
overrideprotectedvirtual |
Computation of reaction term on a single element. Inputs should be loc_el and local copies of concentrations of the element, which is then returned.
Implements ReactionTerm.
Definition at line 300 of file dual_porosity.cc.
|
overridevirtual |
Computes a constraint for time step.
Implements ReactionTerm.
Definition at line 426 of file dual_porosity.cc.
|
static |
Static variable for new input data types input
Definition at line 47 of file dual_porosity.cc.
|
overridevirtual |
Prepares the object to usage.
Allocating memory, reading input, initialization of fields.
Reimplemented from EquationBase.
Definition at line 164 of file dual_porosity.cc.
|
protected |
Initializes field sets.
Definition at line 206 of file dual_porosity.cc.
|
protected |
Resolves construction of following reactions.
Definition at line 139 of file dual_porosity.cc.
|
overridevirtual |
Main output routine.
Reimplemented from ReactionTerm.
Definition at line 404 of file dual_porosity.cc.
|
overrideprotectedvirtual |
Gathers all the parallel vectors to enable them to be output.
Reimplemented from ReactionTerm.
Definition at line 393 of file dual_porosity.cc.
|
protected |
Sets initial condition from input.
Definition at line 269 of file dual_porosity.cc.
|
overridevirtual |
Updates the solution according to the dual porosity model.
Reimplemented from EquationBase.
Definition at line 284 of file dual_porosity.cc.
|
overridevirtual |
Does first computation after initialization process. The time is set and initial condition is set and output.
Reimplemented from EquationBase.
Definition at line 231 of file dual_porosity.cc.
|
protected |
Pointer to twodimensional array[substance][elements] containing concentrations either in immobile.
Definition at line 135 of file dual_porosity.hh.
|
protected |
concentration array output for immobile phase (gathered - sequential)
Definition at line 160 of file dual_porosity.hh.
|
protected |
Equation data - all data fields are in this set.
Definition at line 140 of file dual_porosity.hh.
|
protected |
Input data set - fields in this set are read from the input file.
Definition at line 145 of file dual_porosity.hh.
|
protected |
Fields correspond with conc_immobile_out
.
Definition at line 166 of file dual_porosity.hh.
|
protected |
Reaction running in immobile zone.
Definition at line 148 of file dual_porosity.hh.
|
protected |
Reaction running in mobile zone.
Definition at line 147 of file dual_porosity.hh.
|
staticprivate |
Registrar of class to factory.
Definition at line 170 of file dual_porosity.hh.
|
protected |
Dual porosity computational scheme tolerance.
According to this tolerance the analytical solution of dual porosity concentrations or simple forward difference approximation of concentrations is chosen for computation.
Definition at line 154 of file dual_porosity.hh.
|
protected |
PETSC concentration vector for immobile phase (parallel).
Definition at line 159 of file dual_porosity.hh.
|
protected |
Output vector scatter.
Definition at line 158 of file dual_porosity.hh.