Flow123d
JB_transport-112d700
|
Go to the documentation of this file.
45 return arma::norm(vel, 2);
60 return (1.-por_m)*rho_s*sorp_mult*csec;
109 if (fabs(v_norm) > 0) {
115 K = ((alphaL - alphaT) / v_norm) * arma::kron(velocity.t(), velocity);
127 K += alphaT*v_norm*arma::eye(3,3) + diff_m*cross_sec;
143 "Type of boundary condition.")
151 .
description(
"Dirichlet boundary condition (for each substance).")
157 .description(
"Flux in Neumann boundary condition.")
158 .units(
UnitSI().kg().m().s(-1).md() )
159 .input_default(
"0.0")
163 .name(
"bc_robin_sigma")
164 .description(
"Conductivity coefficient in Robin boundary condition.")
165 .units(
UnitSI().m(4).s(-1).md() )
166 .input_default(
"0.0")
171 .
description(
"Initial values for concentration of substances.")
175 .
description(
"Longitudinal dispersivity in the liquid (for each substance).")
181 .
description(
"Transverse dispersivity in the liquid (for each substance).")
187 .
description(
"Molecular diffusivity in the liquid (for each substance).")
192 .
name(
"rock_density")
198 .
name(
"sorption_coefficient")
218 .
description(
"Matrix coefficients computed by model in mass assemblation.")
223 .
description(
"Retardation coefficients computed by model in mass assemblation.")
227 .
description(
"Concentration sources output - density of substance source, only positive part is used..")
232 .
description(
"Concentration sources - Robin type, in_flux = sources_sigma * (sources_conc - mobile_conc).")
257 sorption_coefficient.setup_components();
258 sources_conc.setup_components();
259 sources_density.setup_components();
260 sources_sigma.setup_components();
261 diff_m.setup_components();
262 disp_l.setup_components();
263 disp_t.setup_components();
268 retardation_coef.set(
276 for (
unsigned int sbi=0; sbi<sorption_coefficient.size(); sbi++)
278 advection_coef.set(ad_coef_ptr_vec, 0.0);
281 fn_conc_diff_coef(), diff_m, flow_flux, v_norm, disp_l, disp_t, water_content, porosity, cross_section
290 return Selection(
"Solute_AdvectionDiffusion_BC_Type",
"Types of boundary conditions for advection-diffusion solute transport model.")
292 "Default transport boundary condition.\n"
293 "On water inflow (($(q_w \\le 0)$)), total flux is given by the reference concentration 'bc_conc'. "
294 "On water outflow we prescribe zero diffusive flux, "
295 "i.e. the mass flows out only due to advection.")
297 "Dirichlet boundary condition (($ c = c_D $)).\n"
298 "The prescribed concentration (($c_D$)) is specified by the field 'bc_conc'.")
300 "Total mass flux boundary condition.\n"
301 "The prescribed total incoming flux can have the general form (($\\delta(f_N+\\sigma_R(c_R-c) )$)), "
302 "where the absolute flux (($f_N$)) is specified by the field 'bc_flux', "
303 "the transition parameter (($\\sigma_R$)) by 'bc_robin_sigma', "
304 "and the reference concentration (($c_R$)) by 'bc_conc'.")
305 .
add_value(bc_diffusive_flux,
"diffusive_flux",
306 "Diffusive flux boundary condition.\n"
307 "The prescribed incoming mass flux due to diffusion can have the general form (($\\delta(f_N+\\sigma_R(c_R-c) )$)), "
308 "where the absolute flux (($f_N$)) is specified by the field 'bc_flux', "
309 "the transition parameter (($\\sigma_R$)) by 'bc_robin_sigma', "
310 "and the reference concentration (($c_R$)) by 'bc_conc'.")
323 "Selection of output fields for Diffusive Solute Transport DG model.");
331 description +
" for solute transport.")
334 "Density of the solvent [ (($kg.m^{-3}$)) ].");
FieldCommon & units(const UnitSI &units)
Set basic units of the field.
MultiField< 3, FieldValue< 3 >::Vector > advection_coef
Advection coefficients.
static IT::Selection get_output_selection()
static constexpr Mask in_rhs
A field is part of the right hand side of the equation.
MultiField< 3, FieldValue< 3 >::Scalar > sources_density_out
Concentration sources - density output.
void initialize(FMT_UNUSED Input::Record transport_rec)
MultiField< 3, FieldValue< 3 >::Scalar > init_condition
Initial concentrations.
static UnitSI & dimensionless()
Returns dimensionless unit.
void set_balance_object(std::shared_ptr< Balance > balance) override
BCMultiField< 3, FieldValue< 3 >::Scalar > bc_robin_sigma
Transition coefficient in total/diffusive flux b.c.
auto disable_where(const MultiField< spacedim, typename FieldValue< spacedim >::Enum > &control_field, const vector< FieldEnum > &value_list) -> MultiField &
vector< unsigned int > subst_idx_
List of indices used to call balance methods for a set of quantities.
virtual ModelEqData & eq_data()=0
Derived class should implement getter for ModelEqData instance.
MultiField< 3, FieldValue< 3 >::Scalar > disp_t
Transversal dispersivity (for each substance).
MultiField< 3, FieldValue< 3 >::Tensor > diffusion_coef
Diffusion coefficients.
void init_from_input(const Input::Record &in_rec) override
Read necessary data from input record.
FieldCommon & flags(FieldFlag::Flags::Mask mask)
MultiField< 3, FieldValue< 3 >::Scalar > sources_conc_out
Concentration sources - concentration output.
FieldCommon & flags_add(FieldFlag::Flags::Mask mask)
MultiField< 3, FieldValue< 3 >::Scalar > sources_sigma_out
Concentration sources - sigma output.
void init_balance(const Input::Record &in_rec)
std::shared_ptr< Balance > balance() const
static const Input::Type::Selection & get_bc_type_selection()
std::shared_ptr< Balance > balance_
object for calculation and writing the mass balance to file.
~ConcentrationTransportModel() override
static constexpr Mask equation_result
Match result fields. These are never given by input or copy of input.
BCMultiField< 3, FieldValue< 3 >::Scalar > bc_flux
Flux value in total/diffusive flux b.c.
BCMultiField< 3, FieldValue< 3 >::Enum > bc_type
Type of boundary condition (see also BC_Type)
Class for representation SI units of Fields.
Field< 3, FieldValue< 3 >::Scalar > rock_density
Rock matrix density.
MultiField< 3, FieldValue< 3 >::Scalar > retardation_coef
Field represents retardation coefficients due to sorption.
static constexpr Mask in_main_matrix
A field is part of main "stiffness matrix" of the equation.
MultiField< 3, FieldValue< 3 >::Tensor > diff_m
Molecular diffusivity (for each substance).
FieldCommon & input_default(const string &input_default)
MultiField< 3, FieldValue< 3 >::Scalar > disp_l
Longitudal dispersivity (for each substance).
double solvent_density_
Density of liquid (a global constant).
MultiField< 3, FieldValue< 3 >::Scalar > sorption_coefficient
Coefficient of linear sorption.
ConcentrationTransportModel(Mesh &mesh, const Input::Record &in_rec)
BCMultiField< 3, FieldValue< 3 >::Scalar > bc_dirichlet_value
Prescribed concentration for Dirichlet/reference concentration for flux b.c.
static constexpr const char * name()
Discontinuous Galerkin method for equation of transport with dispersion.
static Input::Type::Abstract & get_input_type()
Common specification of the input record for secondary equations.
MultiField< 3, FieldValue< 3 >::Scalar > output_field
FieldCommon & input_selection(Input::Type::Selection element_selection)
FieldCommon & description(const string &description)
static constexpr Mask in_time_term
A field is part of time term of the equation.
Field< 3, FieldValue< 3 >::Scalar > v_norm
Velocity norm field.
FieldCommon & name(const string &name)
Field< 3, FieldValue< 3 >::Scalar > mass_matrix_coef
Field represents coefficients of mass matrix.