|
Flow123d
release_1.8.2-1603-g0109a2b
|
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) override |
| void | zero_time_step () override |
| void | update_solution () override |
| void | compute_until_save_time () |
| void | compute_internal_step () |
| void | output_data () override |
| Write computed fields. More... | |
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 void | initialize () |
| virtual | ~EquationBase () |
| 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 () |
| 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 () |
| Declare input record type for the equation TransportOperatorSplittiong. More... | |
Static Public Member Functions inherited from AdvectionProcessBase | |
| static Input::Type::Abstract & | get_input_type () |
| Common specification of the input record for secondary equations. More... | |
Private Attributes | |
| std::shared_ptr< ConcentrationTransportBase > | convection |
| std::shared_ptr< ReactionTerm > | reaction |
| double *** | semchem_conc_ptr |
| Semchem_interface * | Semchem_reactions |
Static Private Attributes | |
| static const int | registrar |
| Registrar of class to factory. More... | |
Additional Inherited Members | |
Public Types inherited from AdvectionProcessBase | |
| typedef AdvectionProcessBase | FactoryBaseType |
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_ |
| boost::shared_ptr< Balance > | 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 139 of file transport_operator_splitting.cc.
|
virtual |
Destructor.
Definition at line 206 of file transport_operator_splitting.cc.
| void TransportOperatorSplitting::compute_internal_step | ( | ) |
| void TransportOperatorSplitting::compute_until_save_time | ( | ) |
|
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 70 of file transport_operator_splitting.cc.
|
overridevirtual |
Write computed fields.
Reimplemented from EquationBase.
Definition at line 216 of file transport_operator_splitting.cc.
|
overridevirtual |
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.
Implements AdvectionProcessBase.
Definition at line 338 of file transport_operator_splitting.cc.
|
overridevirtual |
Calculation of the next time step and its output.
Reimplemented from EquationBase.
Definition at line 250 of file transport_operator_splitting.cc.
|
overridevirtual |
Initialization of the solution in the zero time.
There may be fields that can not be initialized in the initialize method as they are provided by the coupling. Fields coming from coupling has to be set after the initialize method and before zero_time_step.
Reimplemented from EquationBase.
Definition at line 238 of file transport_operator_splitting.cc.
|
private |
Definition at line 240 of file transport_operator_splitting.hh.
|
private |
Definition at line 241 of file transport_operator_splitting.hh.
|
staticprivate |
Registrar of class to factory.
Definition at line 238 of file transport_operator_splitting.hh.
|
private |
Definition at line 243 of file transport_operator_splitting.hh.
|
private |
Definition at line 244 of file transport_operator_splitting.hh.
1.8.11