|
Flow123d
|
Coupling of a transport model with a reaction model by operator splitting. More...
#include <transport_operator_splitting.hh>


Public Member Functions | |
| TransportOperatorSplitting (Mesh &init_mesh, const Input::Record &in_rec) | |
| Constructor. More... | |
| virtual | ~TransportOperatorSplitting () |
| Destructor. More... | |
| virtual void | set_velocity_field (const MH_DofHandler &dh) |
| void | zero_time_step () override |
| void | update_solution () override |
| void | compute_until_save_time () |
| void | compute_internal_step () |
| void | output_data () |
| Write computed fields. More... | |
| TimeIntegrationScheme | time_scheme () |
| Sets pointer to data of other equations. TODO: there should be also passed the sigma parameter between dimensions. More... | |
Public Member Functions inherited from TransportBase | |
| TransportBase (Mesh &mesh, const Input::Record in_rec) | |
| virtual | ~TransportBase () |
| MassBalance * | mass_balance () |
| Sets pointer to data of other equations. TODO: there should be also passed the sigma parameter between dimensions. More... | |
| unsigned int | n_substances () |
| Returns number of trnasported substances. More... | |
| vector< string > & | substance_names () |
| Returns reference to the vector of substnace names. More... | |
| virtual void | set_concentration_vector (Vec &vec) |
Public Member Functions inherited from AdvectionProcessBase | |
| AdvectionProcessBase (Mesh &mesh, const Input::Record in_rec) | |
Public Member Functions inherited from EquationBase | |
| EquationBase () | |
| EquationBase (Mesh &mesh, const Input::Record in_rec) | |
| virtual | ~EquationBase () |
| virtual void | initialize () |
| Initialize fields. More... | |
| virtual void | choose_next_time () |
| virtual void | set_time_upper_constraint (double dt) |
| virtual void | set_time_lower_constraint (double dt) |
| TimeGovernor const & | 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) |
Public Member Functions inherited from EquationForMassBalance | |
| virtual | ~EquationForMassBalance () |
Static Public Attributes | |
| static Input::Type::Record | input_type |
| Declare input record type for the equation TransportOperatorSplittiong. More... | |
Static Public Attributes inherited from TransportBase | |
| static Input::Type::Record | input_type_output_record |
Static Public Attributes inherited from AdvectionProcessBase | |
| static Input::Type::AbstractRecord | input_type |
| Common specification of the input record for secondary equations. More... | |
Private Member Functions | |
| void | calc_fluxes (vector< vector< double > > &bcd_balance, vector< vector< double > > &bcd_plus_balance, vector< vector< double > > &bcd_minus_balance) |
| void | calc_elem_sources (vector< vector< double > > &mass, vector< vector< double > > &src_balance) |
Private Attributes | |
| ConvectionTransport * | convection |
| ReactionTerm * | reaction |
| Semchem_interface * | Semchem_reactions |
Additional Inherited Members | |
Public Types inherited from EquationForMassBalance | |
| enum | TimeIntegrationScheme { none, explicit_euler, implicit_euler, crank_nicholson } |
Protected Member Functions inherited from TransportBase | |
| const RegionDB * | region_db () |
| Returns the region database. More... | |
Protected Attributes inherited from TransportBase | |
| unsigned int | n_subst_ |
| Number of transported substances. More... | |
| std::vector< string > | subst_names_ |
| Names of transported substances. More... | |
| const MH_DofHandler * | mh_dh |
| MassBalance * | mass_balance_ |
| object for calculation and writing the mass balance to file. More... | |
Coupling of a transport model with a reaction model by operator splitting.
Outline: Transport model is any descendant of TransportBase (even TransportOperatorSplitting itself). This should perform the transport possibly with diffusion and usually without coupling between substances and phases.
Reaction is any descendant of the ReactionBase class. This represents reactions in general way of any coupling that happens between substances and phases on one element or more generally on one DoF.
Definition at line 209 of file transport_operator_splitting.hh.
| TransportOperatorSplitting::TransportOperatorSplitting | ( | Mesh & | init_mesh, |
| const Input::Record & | in_rec | ||
| ) |
Constructor.
Definition at line 110 of file transport_operator_splitting.cc.
|
virtual |
Destructor.
Definition at line 173 of file transport_operator_splitting.cc.
|
private |
Implements the virtual method EquationForMassBalance::calc_elem_sources().
Definition at line 277 of file transport_operator_splitting.cc.
|
private |
Implements the virtual method EquationForMassBalance::calc_fluxes().
Definition at line 274 of file transport_operator_splitting.cc.
| void TransportOperatorSplitting::compute_internal_step | ( | ) |
| void TransportOperatorSplitting::compute_until_save_time | ( | ) |
|
virtual |
Write computed fields.
Reimplemented from EquationBase.
Definition at line 185 of file transport_operator_splitting.cc.

|
virtual |
This method takes sequential PETSc vector of side velocities and update transport matrix. The ordering is same as ordering of sides in the mesh. We just keep the pointer, but do not destroy the object.
TODO: We should pass whole velocity field object (description of base functions and dof numbering) and vector.
Reimplemented from TransportBase.
Definition at line 246 of file transport_operator_splitting.cc.
|
inlinevirtual |
Sets pointer to data of other equations. TODO: there should be also passed the sigma parameter between dimensions.
| cross_section | is pointer to cross_section data of Darcy flow equation |
Implements EquationForMassBalance.
Definition at line 250 of file transport_operator_splitting.hh.
|
overridevirtual |
Calculation of the next time step and its output.
Reimplemented from EquationBase.
Definition at line 208 of file transport_operator_splitting.cc.
|
overridevirtual |
Initialization of the solution in the zero time. There is lot of things that can not be done in the constructor since we have not fully initialized fields yet. Fields coming from coupling has to be set after the constructor and before zero_time_step.
Reimplemented from EquationBase.
Definition at line 198 of file transport_operator_splitting.cc.
|
private |
Definition at line 263 of file transport_operator_splitting.hh.
|
static |
Declare input record type for the equation TransportOperatorSplittiong.
TODO: The question is if this should be a general coupling class (e.g. allow coupling TranportDG with reactions even if it is not good idea for numerical reasons.) To make this a coupling class we should modify all main input files for transport problems.
Definition at line 219 of file transport_operator_splitting.hh.
|
private |
Definition at line 264 of file transport_operator_splitting.hh.
|
private |
Definition at line 266 of file transport_operator_splitting.hh.
1.8.4