19 #ifndef CONC_TRANS_MODEL_HH_ 20 #define CONC_TRANS_MODEL_HH_ 22 #include <boost/exception/info.hpp> 43 namespace Input {
class Record; }
89 static constexpr
const char *
name() {
return "Solute_AdvectionDiffusion"; }
128 arma::uvec &bc_types)
override;
130 void get_flux_bc_data(
unsigned int index,
137 void get_flux_bc_sigma(
unsigned int index,
171 {
return substances_.size(); }
175 {
return substances_; }
182 void set_balance_object(std::shared_ptr<Balance> balance)
override;
185 {
return subst_idx; }
188 { output_stream_ = stream; }
191 {
return output_stream_; }
206 static IT::Record get_input_type(
const string &implementation,
const string &description);
218 void calculate_dispersivity_tensor(
const arma::vec3 &velocity,
222 double water_content,
SubstanceList substances_
Transported substances.
MultiField< 3, FieldValue< 3 >::Scalar > output_field
MultiField< 3, FieldValue< 3 >::Scalar > init_conc
Initial concentrations.
void set_output_stream(std::shared_ptr< OutputTime > stream)
Setter for output stream.
MultiField< 3, FieldValue< 3 >::Scalar > sorption_coefficient
Coefficient of linear sorption.
Class template representing a field with values dependent on: point, element, and region...
SubstanceList & substances() override
Returns reference to the vector of substance names.
ConcentrationTransportBase FactoryBaseType
bool flux_changed
Indicator of change in advection vector field.
static constexpr const char * name()
void set_velocity_field(const MH_DofHandler &dh) override
Updates the velocity field which determines some coefficients of the transport equation.
static string default_output_field()
double solvent_density_
Density of liquid (a global constant).
Field< 3, FieldValue< 3 >::Scalar > rock_density
Rock matrix density.
MultiField< 3, FieldValue< 3 >::Scalar > disp_t
Transversal dispersivity (for each substance).
BCMultiField< 3, FieldValue< 3 >::Enum > bc_type
Type of boundary condition (see also BC_Type)
BCMultiField< 3, FieldValue< 3 >::Scalar > bc_dirichlet_value
Prescribed concentration for Dirichlet/reference concentration for flux b.c.
void set_target_time(double target_time) override
unsigned int n_substances() override
Returns number of transported substances.
The class for outputting data during time.
const vector< unsigned int > & get_subst_idx() override
Return substance indices used in balance.
BCMultiField< 3, FieldValue< 3 >::Scalar > bc_robin_sigma
Transition coefficient in total/diffusive flux b.c.
const MH_DofHandler * mh_dh
std::shared_ptr< OutputTime > output_stream() override
Getter for output stream.
MultiField< 3, FieldValue< 3 >::Scalar > disp_l
Longitudal dispersivity (for each substance).
Discontinuous Galerkin method for equation of transport with dispersion.
std::shared_ptr< OutputTime > output_stream_
BCMultiField< 3, FieldValue< 3 >::Scalar > bc_flux
Flux value in total/diffusive flux b.c.
Classes for storing substance data.
MultiField< 3, FieldValue< 3 >::TensorFixed > diff_m
Molecular diffusivity (for each substance).
vector< unsigned int > subst_idx
List of indices used to call balance methods for a set of quantities.
Class for representation of a vector of fields of the same physical quantity.