Flow123d
JS_before_hm-1828-g90ad75301
|
Go to the documentation of this file.
18 #ifndef TRANSPORT_OPERATOR_SPLITTING_HH_
19 #define TRANSPORT_OPERATOR_SPLITTING_HH_
253 #endif // TRANSPORT_OPERATOR_SPLITTING_HH_
virtual ~TransportEqFields()
static const int registrar
Registrar of class to factory.
TimeMark::Type new_mark_type()
Basic time management class.
Field< 3, FieldValue< 3 >::Scalar > cross_section
Pointer to DarcyFlow field cross_section.
virtual FieldFEScalarVec & get_p0_interpolation()=0
Getter for P0 interpolation by FieldFE.
Field< 3, FieldValue< 3 >::VectorFixed > flow_flux
Flow flux, can be result of water flow model.
void zero_time_step() override
Field< 3, FieldValue< 3 >::Scalar > water_content
Water content - result of unsaturated water flow model or porosity.
virtual unsigned int n_substances()=0
Returns number of trnasported substances.
AdvectionProcessBase FactoryBaseType
virtual void compute_p0_interpolation()=0
Compute P0 interpolation of the solution (used in reaction term).
virtual const vector< unsigned int > & get_subst_idx()=0
Return substance indices used in balance.
virtual LongIdx * get_row_4_el()=0
Return global array of order of elements within parallel vector.
MultiField< 3, FieldValue< 3 >::Scalar > sources_sigma
Concentration sources - Robin type, in_flux = sources_sigma * (sources_conc - mobile_conc)
virtual void set_output_stream(std::shared_ptr< OutputTime > stream)=0
Setter for output stream.
void initialize() override
TransportOperatorSplitting(Mesh &init_mesh, const Input::Record in_rec)
Constructor.
std::shared_ptr< Balance > balance() const
virtual bool evaluate_time_constraint(double &time_constraint)=0
Computes a constraint for time step.
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.
void compute_internal_step()
static const Input::Type::Record & get_input_type()
Declare input record type for the equation TransportOperatorSplittiong.
Basic time management functionality for unsteady (and steady) solvers (class Equation).
void update_solution() override
std::shared_ptr< ReactionTerm > reaction
void output_data() override
Write computed fields.
Field< 3, FieldValue< 3 >::Scalar > porosity
Mobile porosity - usually saturated water content in the case of unsaturated flow model.
The class for outputting data during time.
virtual ~TransportNothing()
Container for various descendants of FieldCommonBase.
Abstract base class for equation clasess.
virtual void output_data() override
Write computed fields.
double cfl_convection
Time restriction due to transport.
int LongIdx
Define type that represents indices of large arrays (elements, nodes, dofs etc.)
virtual void set_target_time(double target_time)=0
Coupling of a transport model with a reaction model by operator splitting.
virtual void set_balance_object(std::shared_ptr< Balance > balance)=0
static TimeMarks & marks()
void compute_until_save_time()
ConcentrationTransportBase(Mesh &init_mesh, const Input::Record in_rec)
Class for representation of a vector of fields of the same physical quantity.
std::shared_ptr< ConcentrationTransportBase > convection
static const double inf_time
Infinity time used for steady case.
static Input::Type::Abstract & get_input_type()
Common specification of the input record for secondary equations.
MultiField< 3, FieldValue< 3 >::Scalar > sources_density
Concentration sources - density of substance source, only positive part is used.
MultiField< 3, FieldValue< 3 >::Scalar > sources_conc
Class template representing a field with values dependent on: point, element, and region.
void next_time()
Proceed to the next time according to current estimated time step.
virtual SubstanceList & substances()=0
Returns reference to the vector of substnace names.
virtual void update_after_reactions(bool solution_changed)=0
Perform changes to transport solution after reaction step.
virtual Vec get_component_vec(unsigned int sbi)=0
Return PETSc vector with solution for sbi-th substance.
virtual ~TransportOperatorSplitting()
Destructor.
TransportNothing(Mesh &mesh_in)
std::vector< std::shared_ptr< FieldFE< 3, FieldValue< 3 >::Scalar > > > FieldFEScalarVec