|
Flow123d
JS_before_hm-984-g3a19f2f
|
#include <concentration_model.hh>


Classes | |
| class | ModelEqData |
Public Types | |
| typedef ConcentrationTransportBase | FactoryBaseType |
Public Types inherited from AdvectionDiffusionModel | |
| enum | Abstract_bc_types { abc_inflow, abc_dirichlet, abc_total_flux, abc_diffusive_flux } |
Public Types inherited from ConcentrationTransportBase | |
| typedef std::vector< std::shared_ptr< FieldFE< 3, FieldValue< 3 >::Scalar > > > | FieldFEScalarVec |
Public Member Functions | |
| ConcentrationTransportModel (Mesh &mesh, const Input::Record &in_rec) | |
| void | init_from_input (const Input::Record &in_rec) override |
| Read necessary data from input record. More... | |
| void | compute_mass_matrix_coefficient (const Armor::array &point_list, const ElementAccessor< 3 > &ele_acc, std::vector< double > &mm_coef) override |
| void | compute_retardation_coefficient (const Armor::array &point_list, const ElementAccessor< 3 > &ele_acc, std::vector< std::vector< double > > &ret_coef) override |
| void | compute_advection_diffusion_coefficients (const Armor::array &point_list, const std::vector< arma::vec3 > &velocity, const ElementAccessor< 3 > &ele_acc, std::vector< std::vector< arma::vec3 > > &ad_coef, std::vector< std::vector< arma::mat33 > > &dif_coef) override |
| void | compute_init_cond (const Armor::array &point_list, const ElementAccessor< 3 > &ele_acc, std::vector< std::vector< double > > &init_values) override |
| void | get_bc_type (const ElementAccessor< 3 > &ele_acc, arma::uvec &bc_types) override |
| void | get_flux_bc_data (unsigned int index, const Armor::array &point_list, const ElementAccessor< 3 > &ele_acc, std::vector< double > &bc_flux, std::vector< double > &bc_sigma, std::vector< double > &bc_ref_value) override |
| Return data for diffusive or total flux b.c. More... | |
| void | get_flux_bc_sigma (unsigned int index, const Armor::array &point_list, const ElementAccessor< 3 > &ele_acc, std::vector< double > &bc_sigma) override |
| Return transition coefficient for flux b.c. More... | |
| void | compute_source_coefficients (const Armor::array &point_list, const ElementAccessor< 3 > &ele_acc, std::vector< std::vector< double > > &sources_conc, std::vector< std::vector< double > > &sources_density, std::vector< std::vector< double > > &sources_sigma) override |
| void | compute_sources_sigma (const Armor::array &point_list, const ElementAccessor< 3 > &ele_acc, std::vector< std::vector< double > > &sources_sigma) override |
| ~ConcentrationTransportModel () override | |
| unsigned int | n_substances () override |
| Returns number of transported substances. More... | |
| SubstanceList & | substances () override |
| Returns reference to the vector of substance names. More... | |
| void | set_target_time (double) override |
| void | set_balance_object (std::shared_ptr< Balance > balance) override |
| const vector< unsigned int > & | get_subst_idx () |
| Return substance indices used in balance. More... | |
| void | set_output_stream (std::shared_ptr< OutputTime > stream) |
| Setter for output stream. More... | |
| std::shared_ptr< OutputTime > | output_stream () override |
| Getter for output stream. More... | |
| virtual ModelEqData & | data ()=0 |
| Derived class should implement getter for ModelEqData instance. More... | |
Public Member Functions inherited from AdvectionDiffusionModel | |
| virtual | ~AdvectionDiffusionModel () |
| Destructor. More... | |
Public Member Functions inherited from ConcentrationTransportBase | |
| ConcentrationTransportBase (Mesh &init_mesh, const Input::Record in_rec) | |
| virtual bool | evaluate_time_constraint (double &time_constraint)=0 |
| Computes a constraint for time step. More... | |
| virtual void | compute_p0_interpolation ()=0 |
| Compute P0 interpolation of the solution (used in reaction term). More... | |
| virtual void | update_after_reactions (bool solution_changed)=0 |
| Perform changes to transport solution after reaction step. More... | |
| virtual FieldFEScalarVec & | get_p0_interpolation ()=0 |
| Getter for P0 interpolation by FieldFE. More... | |
| virtual Vec | get_component_vec (unsigned int sbi)=0 |
| Return PETSc vector with solution for sbi-th substance. More... | |
| virtual void | get_par_info (LongIdx *&el_4_loc, Distribution *&el_ds)=0 |
| Return array of indices of local elements and parallel distribution of elements. More... | |
| virtual LongIdx * | get_row_4_el ()=0 |
| Return global array of order of elements within parallel vector. More... | |
Public Member Functions inherited from EquationBase | |
| EquationBase () | |
| EquationBase (Mesh &mesh, const Input::Record in_rec) | |
| virtual void | initialize () |
| virtual void | zero_time_step () |
| virtual | ~EquationBase () |
| virtual void | update_solution () |
| virtual void | choose_next_time () |
| 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 () |
| std::shared_ptr< Balance > | balance () const |
| TimeMark::Type | mark_type () |
| FieldSet & | data () |
| virtual void | output_data () |
| Write computed fields. More... | |
Protected Member Functions | |
| void | calculate_dispersivity_tensor (const arma::vec3 &velocity, const arma::mat33 &Dm, double alphaL, double alphaT, double water_content, double porosity, double cross_cut, arma::mat33 &K) |
Static Protected Member Functions | |
| static IT::Record | get_input_type (const string &implementation, const string &description) |
Protected Attributes | |
| SubstanceList | substances_ |
| Transported substances. More... | |
| vector< unsigned int > | subst_idx |
| List of indices used to call balance methods for a set of quantities. More... | |
| double | solvent_density_ |
| Density of liquid (a global constant). More... | |
| std::shared_ptr< OutputTime > | output_stream_ |
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... | |
Additional Inherited Members | |
Static Public Member Functions inherited from ConcentrationTransportBase | |
| static Input::Type::Abstract & | get_input_type () |
| Common specification of the input record for secondary equations. More... | |
Static Public Member Functions inherited from EquationBase | |
| static Input::Type::Record & | record_template () |
| Template Record with common keys for derived equations. More... | |
Definition at line 48 of file concentration_model.hh.
Definition at line 99 of file concentration_model.hh.
| ConcentrationTransportModel::ConcentrationTransportModel | ( | Mesh & | mesh, |
| const Input::Record & | in_rec | ||
| ) |
Definition at line 162 of file concentration_model.cc.
|
override |
Definition at line 385 of file concentration_model.cc.
|
protected |
Formula to calculate the dispersivity tensor.
| velocity | Fluid velocity. |
| Dm | Molecular diffusivity. |
| alphaL | Longitudal dispersivity. |
| alphaT | Transversal dispersivity. |
| porosity | Porosity. |
| cross_cut | Cross-section. |
| K | Dispersivity tensor (output). |
Definition at line 222 of file concentration_model.cc.

|
overridevirtual |
Compute coefficients of stiffness matrix.
| point_list | Points at which to evaluate. |
| velocity | Velocity field (input). Temporary solution before we can pass data from other equations. |
| ele_acc | Element accessor. |
| ad_coef | Coefficients of advection (output). |
| dif_coef | Coefficients of diffusion (output). |
Implements AdvectionDiffusionModel.
Definition at line 270 of file concentration_model.cc.
|
overridevirtual |
Compute initial conditions.
| point_list | Points at which to evaluate. |
| ele_acc | Element accessor. |
| init_values | Vector of intial values (output). |
Implements AdvectionDiffusionModel.
Definition at line 301 of file concentration_model.cc.
|
overridevirtual |
Compute coefficients of mass matrix.
| point_list | Points at which to evaluate. |
| ele_acc | Element accessor. |
| mm_coef | Coefficient vector (output). |
Implements AdvectionDiffusionModel.
Definition at line 174 of file concentration_model.cc.
|
overridevirtual |
Compute retardation coefficients due to sorption.
| point_list | Points at which to evaluate. |
| ele_acc | Element accessor. |
| ret_coef | Coefficient vector (output). |
Implements AdvectionDiffusionModel.
Definition at line 190 of file concentration_model.cc.
|
overridevirtual |
Compute coefficients of volume sources.
| point_list | Points at which to evaluate. |
| ele_acc | Element accessor. |
| sources_conc | Source concentrations (output). |
| sources_density | Source densities (output). |
| sources_sigma | Source sigmas (output). |
Implements AdvectionDiffusionModel.
Definition at line 344 of file concentration_model.cc.
|
overridevirtual |
Compute coefficients of volume sources.
| point_list | Points at which to evaluate. |
| ele_acc | Element accessor. |
| sources_sigma | Source sigmas (output). |
Implements AdvectionDiffusionModel.
Definition at line 368 of file concentration_model.cc.
|
pure virtual |
Derived class should implement getter for ModelEqData instance.

|
overridevirtual |
Return types of boundary conditions for each solution component.
| ele_acc | Element accessor. |
| bc_types | Vector of bc. types (output, see BC_Type) |
Implements AdvectionDiffusionModel.
Definition at line 309 of file concentration_model.cc.
|
overridevirtual |
Return data for diffusive or total flux b.c.
The flux can in general take the form
cross_section*(flux + sigma*(solution - ref_value))
| index | Component index. |
| point_list | Points at which to evaluate. |
| ele_acc | Element accessor. |
| bc_flux | Neumann flux (output). |
| bc_sigma | Transition parameter (output). |
| bc_ref_value | Reference value (output). |
Implements AdvectionDiffusionModel.
Definition at line 320 of file concentration_model.cc.
|
overridevirtual |
Return transition coefficient for flux b.c.
In assembly of system matrix one does not teed all data for total/diffusive flux b.c. This method therefore returns only the sigma coefficient.
| index | Component index. |
| point_list | Points at which to evaluate. |
| ele_acc | Element accessor. |
| bc_sigma | Transition parameter (output). |
Implements AdvectionDiffusionModel.
Definition at line 335 of file concentration_model.cc.
|
staticprotected |
Create input type that can be passed to the derived class.
| implementation | String characterizing the numerical method, e.g. DG, FEM, FVM. |
| description | Comment used to describe the record key. |
Definition at line 142 of file concentration_model.cc.
|
inlinevirtual |
Return substance indices used in balance.
Implements ConcentrationTransportBase.
Definition at line 169 of file concentration_model.hh.
|
overridevirtual |
Read necessary data from input record.
Implements AdvectionDiffusionModel.
Definition at line 167 of file concentration_model.cc.
|
inlineoverridevirtual |
Returns number of transported substances.
Implements ConcentrationTransportBase.
Definition at line 154 of file concentration_model.hh.

|
inlineoverridevirtual |
Getter for output stream.
Implements ConcentrationTransportBase.
Definition at line 175 of file concentration_model.hh.
|
overridevirtual |
Use Balance object from upstream equation (e.g. in various couplings) instead of own instance.
Implements ConcentrationTransportBase.
Definition at line 389 of file concentration_model.cc.
|
inlinevirtual |
Setter for output stream.
Implements ConcentrationTransportBase.
Definition at line 172 of file concentration_model.hh.
|
inlineoverridevirtual |
Set time interval which is considered as one time step by TransportOperatorSplitting. In particular the velocity field dosn't change over this interval.
Dependencies:
velocity, porosity -> matrix, source_vector matrix -> time_step
data_read_times -> time_step (not necessary if we won't stick to jump times) data -> source_vector time_step -> scaling
Implements ConcentrationTransportBase.
Definition at line 165 of file concentration_model.hh.
|
inlineoverridevirtual |
Returns reference to the vector of substance names.
Implements ConcentrationTransportBase.
Definition at line 158 of file concentration_model.hh.
|
protected |
Definition at line 220 of file concentration_model.hh.
|
protected |
Density of liquid (a global constant).
Definition at line 218 of file concentration_model.hh.
|
protected |
List of indices used to call balance methods for a set of quantities.
Definition at line 215 of file concentration_model.hh.
|
protected |
Transported substances.
Definition at line 212 of file concentration_model.hh.
1.8.11