18 #ifndef TRANSPORT_OPERATOR_SPLITTING_HH_ 19 #define TRANSPORT_OPERATOR_SPLITTING_HH_ 21 #include <boost/exception/info.hpp> 91 virtual void set_target_time(
double target_time) = 0;
96 virtual void set_balance_object(std::shared_ptr<Balance> balance) = 0;
99 virtual bool evaluate_time_constraint(
double &time_constraint) = 0;
105 virtual void calculate_concentration_matrix() = 0;
108 virtual void update_after_reactions(
bool solution_changed) = 0;
111 virtual void set_output_stream(std::shared_ptr<OutputTime> stream) = 0;
114 virtual std::shared_ptr<OutputTime> output_stream() = 0;
117 virtual double **get_concentration_matrix() = 0;
120 virtual const Vec &get_solution(
unsigned int sbi) = 0;
126 virtual LongIdx *get_row_4_el() = 0;
129 virtual void set_velocity_field(
const MH_DofHandler &dh) = 0;
132 virtual unsigned int n_substances() = 0;
191 if(time_)
delete time_;
232 virtual void set_velocity_field(
const MH_DofHandler &dh)
override;
234 void initialize()
override;
235 void zero_time_step()
override;
236 void update_solution()
override;
238 void compute_until_save_time();
239 void compute_internal_step();
240 void output_data()
override;
263 #endif // TRANSPORT_OPERATOR_SPLITTING_HH_ int LongIdx
Define type that represents indices of 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)
Class template representing a field with values dependent on: point, element, and region...
virtual ~TransportNothing()
MultiField< 3, FieldValue< 3 >::Scalar > sources_density
Concentration sources - density of substance source, only positive part is used.
TransportNothing(Mesh &mesh_in)
Coupling of a transport model with a reaction model by operator splitting.
MultiField< 3, FieldValue< 3 >::Scalar > sources_conc
Basic time management functionality for unsteady (and steady) solvers (class Equation).
static TimeMarks & marks()
Basic time management class.
AdvectionProcessBase FactoryBaseType
std::shared_ptr< ReactionTerm > reaction
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.
The class for outputting data during time.
Field< 3, FieldValue< 3 >::Scalar > water_content
Water content - result of unsaturated water flow model or porosity.
std::shared_ptr< ConcentrationTransportBase > convection
void set_velocity_field(const MH_DofHandler &) override
double cfl_reaction
Time restriction due to reactions.
Class for representation of a vector of fields of the same physical quantity.
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.