Flow123d
jenkins-Flow123d-linux-release-multijob-282
|
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 TransportBase | |
TransportBase (Mesh &mesh, const Input::Record in_rec) | |
virtual | ~TransportBase () |
unsigned int | n_substances () override |
Returns number of trnasported substances. More... | |
SubstanceList & | substances () override |
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) |
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 Attributes | |
ConvectionTransport * | convection |
ReactionTerm * | reaction |
double *** | semchem_conc_ptr |
Semchem_interface * | Semchem_reactions |
Additional Inherited Members | |
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... | |
SubstanceList | substances_ |
Transported substances. More... | |
const MH_DofHandler * | mh_dh |
boost::shared_ptr< Balance > | balance_ |
(new) object for calculation and writing the mass balance to file. 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_ |
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 170 of file transport_operator_splitting.hh.
TransportOperatorSplitting::TransportOperatorSplitting | ( | Mesh & | init_mesh, |
const Input::Record & | in_rec | ||
) |
Constructor.
Definition at line 123 of file transport_operator_splitting.cc.
|
virtual |
Destructor.
Definition at line 214 of file transport_operator_splitting.cc.
void TransportOperatorSplitting::compute_internal_step | ( | ) |
void TransportOperatorSplitting::compute_until_save_time | ( | ) |
|
overridevirtual |
Write computed fields.
Reimplemented from EquationBase.
Definition at line 226 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.
Reimplemented from TransportBase.
Definition at line 331 of file transport_operator_splitting.cc.
|
overridevirtual |
Calculation of the next time step and its output.
Reimplemented from EquationBase.
Definition at line 267 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 248 of file transport_operator_splitting.cc.
|
private |
Definition at line 200 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 180 of file transport_operator_splitting.hh.
|
private |
Definition at line 201 of file transport_operator_splitting.hh.
|
private |
Definition at line 203 of file transport_operator_splitting.hh.
|
private |
Definition at line 204 of file transport_operator_splitting.hh.