18 #ifndef TRANSPORT_OPERATOR_SPLITTING_HH_ 19 #define TRANSPORT_OPERATOR_SPLITTING_HH_ 228 void compute_until_save_time();
229 void compute_internal_step();
253 #endif // TRANSPORT_OPERATOR_SPLITTING_HH_ void set_velocity_field(const MH_DofHandler &dh) override
virtual void zero_time_step()
int IdxInt
Define integers that are indices into large arrays (elements, nodes, dofs etc.)
Abstract base class for equation clasess.
Container for various descendants of FieldCommonBase.
ConcentrationTransportBase(Mesh &init_mesh, const Input::Record in_rec)
virtual void set_output_stream(std::shared_ptr< OutputTime > stream)=0
Setter for output stream.
virtual void initialize()
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 ~TransportNothing()
virtual void update_after_reactions(bool solution_changed)=0
Perform changes to transport solution after reaction step.
MultiField< 3, FieldValue< 3 >::Scalar > sources_density
Concentration sources - density of substance source, only positive part is used.
TransportNothing(Mesh &mesh_in)
virtual double ** get_concentration_matrix()=0
Getter for array of concentrations per element.
Coupling of a transport model with a reaction model by operator splitting.
MultiField< 3, FieldValue< 3 >::Scalar > sources_conc
virtual void set_target_time(double target_time)=0
virtual void set_velocity_field(const MH_DofHandler &dh)=0
Pass velocity from flow to transport.
static Input::Type::Abstract & get_input_type()
Common specification of the input record for secondary equations.
Basic time management functionality for unsteady (and steady) solvers (class Equation).
virtual bool evaluate_time_constraint(double &time_constraint)=0
Computes a constraint for time step.
virtual void output_data()
Write computed fields.
static TimeMarks & marks()
virtual unsigned int n_substances()=0
Returns number of trnasported substances.
AdvectionProcessBase FactoryBaseType
std::shared_ptr< ReactionTerm > reaction
virtual void get_par_info(IdxInt *&el_4_loc, Distribution *&el_ds)=0
Return array of indices of local elements and parallel distribution of elements.
virtual std::shared_ptr< OutputTime > output_stream()=0
Getter for output stream.
MultiField< 3, FieldValue< 3 >::Scalar > sources_sigma
Concentration sources - Robin type, in_flux = sources_sigma * (sources_conc - mobile_conc) ...
TimeMark::Type new_mark_type()
double cfl_convection
Time restriction due to transport.
virtual void output_data() override
Write computed fields.
Field< 3, FieldValue< 3 >::Scalar > water_content
Water content - result of unsaturated water flow model or porosity.
virtual const vector< unsigned int > & get_subst_idx()=0
Return substance indices used in balance.
virtual IdxInt * get_row_4_el()=0
Return global array of order of elements within parallel vector.
virtual SubstanceList & substances()=0
Returns reference to the vector of substnace names.
std::shared_ptr< ConcentrationTransportBase > convection
virtual void update_solution()
Classes for storing substance data.
virtual const Vec & get_solution(unsigned int sbi)=0
Return PETSc vector with solution for sbi-th substance.
double cfl_reaction
Time restriction due to reactions.
Class for representation of a vector of fields of the same physical quantity.
virtual void set_balance_object(std::shared_ptr< Balance > balance)=0
Field< 3, FieldValue< 3 >::Scalar > cross_section
Pointer to DarcyFlow field cross_section.
static const double inf_time
Infinity time used for steady case.
virtual ~TransportEqData()
static const int registrar
Registrar of class to factory.
virtual void calculate_concentration_matrix()=0
Calculate the array of concentrations per element (for reactions).