Flow123d  JB_transport-112d700
conc_dispersion_model.cc
Go to the documentation of this file.
1 /*!
2  *
3  * Copyright (C) 2015 Technical University of Liberec. All rights reserved.
4  *
5  * This program is free software; you can redistribute it and/or modify it under
6  * the terms of the GNU General Public License version 3 as published by the
7  * Free Software Foundation. (http://www.gnu.org/licenses/gpl-3.0.en.html)
8  *
9  * This program is distributed in the hope that it will be useful, but WITHOUT
10  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
11  * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
12  *
13  *
14  * @file conc_dispersion_model.cc
15  * @brief Discontinuous Galerkin method for equation of transport with dispersion.
16  * @author Jan Brezina
17  *
18  * Transport model with:
19  * - full dispersion tensor prescribed by 6 tensor fields (UGLY).
20  * - support for switching both time and convection term to zero (additional multiplicative factor)
21  * - meant for experimental homogenisation
22  */
23 
24 #include "input/input_type.hh"
25 #include "mesh/mesh.h"
26 #include "mesh/accessors.hh"
27 
29 #include "conc_dispersion_model.hh"
30 #include "tools/unit_si.hh"
31 #include "coupling/balance.hh"
32 #include "fields/field_model.hh"
33 
34 
35 
36 using namespace std;
37 using namespace Input::Type;
38 
39 
40 /*******************************************************************************
41  * Functors of FieldModels
42  */
43 using Sclr = double;
44 using Vect = arma::vec3;
45 using Tens = arma::mat33;
46 
47 // Functor computing velocity norm
49  inline Sclr operator() (Vect vel) {
50  return arma::norm(vel, 2);
51  }
52 };
53 
54 // Functor computing mass matrix coefficients (cross_section * water_content)
56  inline Sclr operator() (Sclr csec, Sclr wcont) {
57  return csec * wcont;
58  }
59 };
60 
62  inline Sclr operator() () {
63  return 0;
64  }
65 };
66 
67 // Functor computing retardation coefficients:
68 // (1-porosity) * rock_density * sorption_coefficient * rock_density
70  inline Sclr operator() (Sclr csec, Sclr por_m, Sclr rho_s, Sclr sorp_mult) {
71  return (1.-por_m)*rho_s*sorp_mult*csec;
72  }
73 };
74 
76  inline Sclr operator() () {
77  return 0;
78  }
79 };
80 
81 // Functor computing sources density output (cross_section * sources_density)
83  inline Sclr operator() (Sclr csec, Sclr sdens) {
84  return csec * sdens;
85  }
86 };
87 
88 // Functor computing sources sigma output (cross_section * sources_sigma)
90  inline Sclr operator() (Sclr csec, Sclr ssigma) {
91  return csec * ssigma;
92  }
93 };
94 
95 // Functor computing sources concentration output (sources_conc)
97  inline Sclr operator() (Sclr sconc) {
98  return sconc;
99  }
100 };
101 
102 // Functor computing advection coefficient (velocity)
104  inline Vect operator() (Vect velocity) {
105  return velocity;
106  }
107 };
108 
110  inline Vect operator() () {
111  return arma::zeros(3);
112  }
113 };
114 
115 // Functor computing diffusion coefficient (see notes in function)
116 
117 // Fourth order tnesor in partially Voigt notation.
118 // In particular we use is to specify full dispersion tensor.
119 
121  inline Tens operator() (Tens duxx, Tens duyy, Tens duzz, Tens duyz, Tens duxz, Tens duxy, Vect velocity, Sclr v_norm) {
122 
123  // result
124  auto v = velocity;
125  Tens K = (duxx * v[0] * v[0] + duyy * v[1] * v[1] + duzz * v[2] * v[2]
126  + 2 * ( duyz * v[1] * v[2] + duxz * v[0] * v[2] + duxy * v[0] * v[1])) / v_norm;
127  return K;
128  }
129 };
130 
131 
132 
133 
134 
137 {
138  *this+=bc_type
139  .name("bc_type")
140  .description(
141  "Type of boundary condition.")
143  .input_default("\"inflow\"")
146  *this+=bc_dirichlet_value
147  .name("bc_conc")
148  .units( UnitSI().kg().m(-3) )
149  .description("Dirichlet boundary condition (for each substance).")
150  .input_default("0.0")
151  .flags_add( in_rhs );
152  *this+=bc_flux
154  .name("bc_flux")
155  .description("Flux in Neumann boundary condition.")
156  .units( UnitSI().kg().m().s(-1).md() )
157  .input_default("0.0")
158  .flags_add(FieldFlag::in_rhs);
159  *this+=bc_robin_sigma
161  .name("bc_robin_sigma")
162  .description("Conductivity coefficient in Robin boundary condition.")
163  .units( UnitSI().m(4).s(-1).md() )
164  .input_default("0.0")
166  *this+=init_condition
167  .name("init_conc")
168  .units( UnitSI().kg().m(-3) )
169  .description("Initial values for concentration of substances.")
170  .input_default("0.0");
171  *this+=disp_uxx
172  .name("dispersion_uxx")
173  .description("Dispersion 4-th order tensor component ux D ux. Common for all substances right now.")
174  .units( UnitSI().m() ) // ??
175  .input_default("1.0")
177  *this+=disp_uyy
178  .name("dispersion_uyy")
179  .description("Dispersion 4-th order tensor component uy D uy. Common for all substances right now.")
180  .units( UnitSI().m() ) // ??
181  .input_default("1.0")
183  *this+=disp_uzz
184  .name("dispersion_uzz")
185  .description("Dispersion 4-th order tensor component uz D uz. Common for all substances right now.")
186  .units( UnitSI().m() ) // ??
187  .input_default("1.0")
189  *this+=disp_uyz
190  .name("dispersion_uyz")
191  .description("Dispersion 4-th order tensor component uy D uz. Common for all substances right now.")
192  .units( UnitSI().m() ) // ??
193  .input_default("0.0")
195  *this+=disp_uxz
196  .name("dispersion_uxz")
197  .description("Dispersion 4-th order tensor component ux D uz. Common for all substances right now.")
198  .units( UnitSI().m() ) // ??
199  .input_default("1.0")
201  *this+=disp_uxy
202  .name("dispersion_uxy")
203  .description("Dispersion 4-th order tensor component ux D uy. Common for all substances right now.")
204  .units( UnitSI().m() ) // ??
205  .input_default("1.0")
207 
208  *this+=rock_density
209  .name("rock_density")
210  .description("Rock matrix density.")
211  .units(UnitSI().kg().m(-3))
212  .input_default("0.0")
214  *this+=sorption_coefficient
215  .name("sorption_coefficient")
216  .description("Coefficient of linear sorption.")
217  .units(UnitSI().m(3).kg(-1))
218  .input_default("0.0")
220 
221  *this+=output_field
222  .name("conc")
223  .description("Concentration solution.")
224  .units( UnitSI().kg().m(-3) )
226 
227 
228  // initiaization of FieldModels
229  *this += v_norm.name("v_norm")
230  .description("Velocity norm field.")
231  .input_default("0.0")
232  .units( UnitSI().m().s(-1) );
233 
234  *this += mass_matrix_coef.name("mass_matrix_coef")
235  .description("Matrix coefficients computed by model in mass assemblation.")
236  .input_default("0.0")
237  .units( UnitSI().m(3).md() );
238 
239  *this += retardation_coef.name("retardation_coef")
240  .description("Retardation coefficients computed by model in mass assemblation.")
241  .input_default("0.0")
242  .units( UnitSI().m(3).md() );
243  *this += sources_density_out.name("sources_density_out")
244  .description("Concentration sources output - density of substance source, only positive part is used..")
245  .input_default("0.0")
246  .units( UnitSI().kg().s(-1).md() );
247 
248  *this += sources_sigma_out.name("sources_sigma_out")
249  .description("Concentration sources - Robin type, in_flux = sources_sigma * (sources_conc - mobile_conc).")
250  .input_default("0.0")
251  .units( UnitSI().s(-1).m(3).md() );
252 
253  *this += sources_conc_out.name("sources_conc_out")
254  .description("Concentration sources output.")
255  .input_default("0.0")
256  .units( UnitSI().kg().m(-3) );
257 
258  *this += advection_coef.name("advection_coef")
259  .description("Advection coefficients model.")
260  .input_default("0.0")
261  .units( UnitSI().m().s(-1) );
262 
263  *this += diffusion_coef.name("diffusion_coef")
264  .description("Diffusion coefficients model.")
265  .input_default("0.0")
266  .units( UnitSI().m(2).s(-1) );
267 
268 }
269 
270 
272 {
273  bool static_flag = transport_rec.val<bool>("static_model");
274 
275  // initialize multifield components
276  sorption_coefficient.setup_components();
277  sources_conc.setup_components();
278  sources_density.setup_components();
279  sources_sigma.setup_components();
280 
281  // create FieldModels
282  v_norm.set(Model<3, FieldValue<3>::Scalar>::create(
283  fn_conc_v_norm(), flow_flux), 0.0);
284  sources_density_out.set(Model<3, FieldValue<3>::Scalar>::create_multi(
285  fn_conc_sources_dens(), cross_section, sources_density), 0.0);
286  sources_sigma_out.set(Model<3, FieldValue<3>::Scalar>::create_multi(
287  fn_conc_sources_sigma(), cross_section, sources_sigma), 0.0);
288  sources_conc_out.set(Model<3, FieldValue<3>::Scalar>::create_multi(
289  fn_conc_sources_conc(), sources_conc), 0.0);
290 
291  if (static_flag) {
292  advection_coef.set(Model<3, FieldValue<3>::Vector>::create_multi(
293  fn_conc_ad_coef_static()), 0.0);
294  mass_matrix_coef.set(Model<3, FieldValue<3>::Scalar>::create(
296  retardation_coef.set(Model<3, FieldValue<3>::Scalar>::create_multi(
298 
299  } else {
300  advection_coef.set(Model<3, FieldValue<3>::Vector>::create_multi(
301  fn_conc_ad_coef(), flow_flux), 0.0);
302  mass_matrix_coef.set(Model<3, FieldValue<3>::Scalar>::create(
303  fn_conc_mass_matrix(), cross_section, water_content), 0.0);
304  retardation_coef.set(Model<3, FieldValue<3>::Scalar>::create_multi(
305  fn_conc_retardation(), cross_section, porosity, rock_density, sorption_coefficient), 0.0);
306  }
307  diffusion_coef.set(Model<3, FieldValue<3>::Tensor>::create_multi(
308  fn_conc_diff_coef_full(), disp_uxx, disp_uyy, disp_uzz, disp_uyz, disp_uxz, disp_uxy,
309  flow_flux, v_norm), 0.0);
310 }
311 
312 
313 
315  return Selection("Solute_AdvectionDiffusion_BC_Type", "Types of boundary conditions for advection-diffusion solute transport model.")
316  .add_value(bc_inflow, "inflow",
317  "Default transport boundary condition.\n"
318  "On water inflow (($(q_w \\le 0)$)), total flux is given by the reference concentration 'bc_conc'. "
319  "On water outflow we prescribe zero diffusive flux, "
320  "i.e. the mass flows out only due to advection.")
321  .add_value(bc_dirichlet, "dirichlet",
322  "Dirichlet boundary condition (($ c = c_D $)).\n"
323  "The prescribed concentration (($c_D$)) is specified by the field 'bc_conc'.")
324  .add_value(bc_total_flux, "total_flux",
325  "Total mass flux boundary condition.\n"
326  "The prescribed total incoming flux can have the general form (($\\delta(f_N+\\sigma_R(c_R-c) )$)), "
327  "where the absolute flux (($f_N$)) is specified by the field 'bc_flux', "
328  "the transition parameter (($\\sigma_R$)) by 'bc_robin_sigma', "
329  "and the reference concentration (($c_R$)) by 'bc_conc'.")
330  .add_value(bc_diffusive_flux, "diffusive_flux",
331  "Diffusive flux boundary condition.\n"
332  "The prescribed incoming mass flux due to diffusion can have the general form (($\\delta(f_N+\\sigma_R(c_R-c) )$)), "
333  "where the absolute flux (($f_N$)) is specified by the field 'bc_flux', "
334  "the transition parameter (($\\sigma_R$)) by 'bc_robin_sigma', "
335  "and the reference concentration (($c_R$)) by 'bc_conc'.")
336  .close();
337 }
338 
339 
340 
341 
343 {
344  // Return empty selection just to provide model specific selection name and description.
345  // The fields are added by TransportDG using an auxiliary selection.
346  return IT::Selection(
347  std::string(ModelEqData::name()) + "_DG_output_fields",
348  "Selection of output fields for Diffusive Solute Transport DG model.");
349 }
350 
351 
352 IT::Record ConcDispersionModel::get_input_type(const string &implementation, const string &description)
353 {
354  return IT::Record(
355  std::string(ModelEqData::name()) + "_" + implementation,
356  description + " for solute transport.")
358  .declare_key("static_model", IT::Bool(), IT::Default("false"),
359  "Forces zero time and advection term.")
360  .declare_key("solvent_density", IT::Double(0), IT::Default("1.0"),
361  "Density of the solvent [ (($kg.m^{-3}$)) ].");
362 }
363 
364 
367 {}
368 
369 
371 {
372  solvent_density_ = in_rec.val<double>("solvent_density");
373 }
374 
375 
377 {}
378 
379 
380 void ConcDispersionModel::set_balance_object(std::shared_ptr<Balance> balance)
381 {
382  balance_ = balance;
383  eq_data().subst_idx_ = balance_->add_quantities(eq_data().substances_.names());
384 }
385 
386 
388 
389 
390 
FieldCommon::units
FieldCommon & units(const UnitSI &units)
Set basic units of the field.
Definition: field_common.hh:153
fn_conc_ad_coef
Definition: conc_dispersion_model.cc:103
FieldFlag::in_rhs
static constexpr Mask in_rhs
A field is part of the right hand side of the equation.
Definition: field_flag.hh:51
Input::Type::Bool
Class for declaration of the input of type Bool.
Definition: type_base.hh:452
fn_conc_mass_matrix
Definition: conc_dispersion_model.cc:55
ConcDispersionModel::solvent_density_
double solvent_density_
Density of liquid (a global constant).
Definition: conc_dispersion_model.hh:223
ConcDispersionModel::ModelEqFields::ModelEqFields
ModelEqFields()
Definition: conc_dispersion_model.cc:135
UnitSI::dimensionless
static UnitSI & dimensionless()
Returns dimensionless unit.
Definition: unit_si.cc:55
ConcDispersionModel::ModelEqFields::retardation_coef
MultiField< 3, FieldValue< 3 >::Scalar > retardation_coef
Field represents retardation coefficients due to sorption.
Definition: conc_dispersion_model.hh:96
ConcDispersionModel::ModelEqData::subst_idx_
vector< unsigned int > subst_idx_
List of indices used to call balance methods for a set of quantities.
Definition: conc_dispersion_model.hh:161
ConcDispersionModel::ModelEqFields::output_field
MultiField< 3, FieldValue< 3 >::Scalar > output_field
Definition: conc_dispersion_model.hh:87
ConcDispersionModel::ModelEqFields::sources_conc_out
MultiField< 3, FieldValue< 3 >::Scalar > sources_conc_out
Concentration sources - concentration output.
Definition: conc_dispersion_model.hh:102
ConcDispersionModel::eq_data
virtual ModelEqData & eq_data()=0
Derived class should implement getter for ModelEqData instance.
MultiField::disable_where
auto disable_where(const MultiField< spacedim, typename FieldValue< spacedim >::Enum > &control_field, const vector< FieldEnum > &value_list) -> MultiField &
Definition: multi_field.impl.hh:133
ConcDispersionModel::ModelEqData::name
static constexpr const char * name()
Definition: conc_dispersion_model.hh:135
fn_conc_sources_sigma
Definition: conc_dispersion_model.cc:89
ConcDispersionModel::init_balance
void init_balance(const Input::Record &in_rec)
Definition: conc_dispersion_model.cc:387
Input::Record::val
const Ret val(const string &key) const
Definition: accessors_impl.hh:31
Input::Type::Selection::close
const Selection & close() const
Close the Selection, no more values can be added.
Definition: type_selection.cc:65
Input::Type::Double
Class for declaration of the input data that are floating point numbers.
Definition: type_base.hh:534
ConcDispersionModel::ModelEqFields::rock_density
Field< 3, FieldValue< 3 >::Scalar > rock_density
Longitudal dispersivity (for each substance).
Definition: conc_dispersion_model.hh:83
fn_conc_sources_conc
Definition: conc_dispersion_model.cc:96
fn_conc_ad_coef_static
Definition: conc_dispersion_model.cc:109
arma::vec3
Definition: doxy_dummy_defs.hh:17
FieldCommon::flags
FieldCommon & flags(FieldFlag::Flags::Mask mask)
Definition: field_common.hh:192
ConcDispersionModel::ModelEqFields::sorption_coefficient
MultiField< 3, FieldValue< 3 >::Scalar > sorption_coefficient
Coefficient of linear sorption.
Definition: conc_dispersion_model.hh:84
ConcDispersionModel::init_from_input
void init_from_input(const Input::Record &in_rec) override
Read necessary data from input record.
Definition: conc_dispersion_model.cc:370
fn_conc_mass_matrix_static
Definition: conc_dispersion_model.cc:61
ConcDispersionModel::ModelEqFields::disp_uxy
Field< 3, FieldValue< 3 >::Tensor > disp_uxy
Definition: conc_dispersion_model.hh:74
ConcDispersionModel::ConcDispersionModel
ConcDispersionModel(Mesh &mesh, const Input::Record &in_rec)
Definition: conc_dispersion_model.cc:365
fn_conc_diff_coef_full
Definition: conc_dispersion_model.cc:120
ConcDispersionModel::ModelEqData::get_output_selection
static IT::Selection get_output_selection()
Definition: conc_dispersion_model.cc:342
FieldCommon::flags_add
FieldCommon & flags_add(FieldFlag::Flags::Mask mask)
Definition: field_common.hh:198
EquationBase::mesh
Mesh & mesh()
Definition: equation.hh:181
Input::Type::Default
Class Input::Type::Default specifies default value of keys of a Input::Type::Record.
Definition: type_record.hh:61
Input::Type::Record::derive_from
virtual Record & derive_from(Abstract &parent)
Method to derive new Record from an AbstractRecord parent.
Definition: type_record.cc:196
EquationBase::balance
std::shared_ptr< Balance > balance() const
Definition: equation.hh:189
fn_conc_retardation_static
Definition: conc_dispersion_model.cc:75
ConcDispersionModel::ModelEqFields::get_bc_type_selection
static const Input::Type::Selection & get_bc_type_selection()
Definition: conc_dispersion_model.cc:314
accessors.hh
ConcDispersionModel::ModelEqFields::initialize
void initialize(Input::Record transport_rec)
Definition: conc_dispersion_model.cc:271
EquationBase::balance_
std::shared_ptr< Balance > balance_
object for calculation and writing the mass balance to file.
Definition: equation.hh:252
Input::Record
Accessor to the data with type Type::Record.
Definition: accessors.hh:291
FieldFlag::equation_result
static constexpr Mask equation_result
Match result fields. These are never given by input or copy of input.
Definition: field_flag.hh:55
fn_conc_retardation
Definition: conc_dispersion_model.cc:69
field_model.hh
ConcDispersionModel::ModelEqFields::disp_uyz
Field< 3, FieldValue< 3 >::Tensor > disp_uyz
Definition: conc_dispersion_model.hh:72
ConcDispersionModel::ModelEqFields::bc_dirichlet
@ bc_dirichlet
Definition: conc_dispersion_model.hh:114
ConcDispersionModel::~ConcDispersionModel
~ConcDispersionModel() override
Definition: conc_dispersion_model.cc:376
UnitSI
Class for representation SI units of Fields.
Definition: unit_si.hh:40
Input::Type::Record::declare_key
Record & declare_key(const string &key, std::shared_ptr< TypeBase > type, const Default &default_value, const string &description, TypeBase::attribute_map key_attributes=TypeBase::attribute_map())
Declares a new key of the Record.
Definition: type_record.cc:503
ConcDispersionModel::set_balance_object
void set_balance_object(std::shared_ptr< Balance > balance) override
Definition: conc_dispersion_model.cc:380
ConcDispersionModel::ModelEqFields::disp_uyy
Field< 3, FieldValue< 3 >::Tensor > disp_uyy
Definition: conc_dispersion_model.hh:70
mesh.h
Input::Type::Selection
Template for classes storing finite set of named values.
Definition: type_selection.hh:65
fn_conc_sources_dens
Definition: conc_dispersion_model.cc:82
Input::Type
Definition: balance.hh:41
Input::Type::Record
Record type proxy class.
Definition: type_record.hh:182
Sclr
double Sclr
Definition: field_add_potential.hh:33
ConcDispersionModel::ModelEqFields::sources_sigma_out
MultiField< 3, FieldValue< 3 >::Scalar > sources_sigma_out
Concentration sources - sigma output.
Definition: conc_dispersion_model.hh:100
FieldFlag::in_main_matrix
static constexpr Mask in_main_matrix
A field is part of main "stiffness matrix" of the equation.
Definition: field_flag.hh:49
ConcDispersionModel::ModelEqFields::sources_density_out
MultiField< 3, FieldValue< 3 >::Scalar > sources_density_out
Concentration sources - density output.
Definition: conc_dispersion_model.hh:98
ConcDispersionModel::ModelEqFields::mass_matrix_coef
Field< 3, FieldValue< 3 >::Scalar > mass_matrix_coef
Field represents coefficients of mass matrix.
Definition: conc_dispersion_model.hh:94
FieldCommon::input_default
FieldCommon & input_default(const string &input_default)
Definition: field_common.hh:140
input_type.hh
conc_dispersion_model.hh
ConcentrationTransportBase
Definition: transport_operator_splitting.hh:61
Mesh
Definition: mesh.h:362
ConcDispersionModel::ModelEqFields::disp_uxx
Field< 3, FieldValue< 3 >::Tensor > disp_uxx
Components of the full dispersion tensor.
Definition: conc_dispersion_model.hh:69
Model
Definition: field_model.hh:338
ConcDispersionModel::ModelEqFields::disp_uxz
Field< 3, FieldValue< 3 >::Tensor > disp_uxz
Definition: conc_dispersion_model.hh:73
unit_si.hh
std
Definition: doxy_dummy_defs.hh:5
ConcDispersionModel::ModelEqFields::diffusion_coef
MultiField< 3, FieldValue< 3 >::Tensor > diffusion_coef
Diffusion coefficients.
Definition: conc_dispersion_model.hh:106
ConcDispersionModel::ModelEqFields::advection_coef
MultiField< 3, FieldValue< 3 >::Vector > advection_coef
Advection coefficients.
Definition: conc_dispersion_model.hh:104
fn_conc_v_norm
Definition: conc_dispersion_model.cc:48
ConcentrationTransportBase::get_input_type
static Input::Type::Abstract & get_input_type()
Common specification of the input record for secondary equations.
Definition: transport_operator_splitting.cc:62
ConcDispersionModel::ModelEqFields::disp_uzz
Field< 3, FieldValue< 3 >::Tensor > disp_uzz
Definition: conc_dispersion_model.hh:71
ConcDispersionModel::ModelEqFields::v_norm
Field< 3, FieldValue< 3 >::Scalar > v_norm
Velocity norm field.
Definition: conc_dispersion_model.hh:108
balance.hh
FieldCommon::input_selection
FieldCommon & input_selection(Input::Type::Selection element_selection)
Definition: field_common.hh:172
FieldCommon::description
FieldCommon & description(const string &description)
Definition: field_common.hh:128
ConcDispersionModel::ModelEqFields::bc_flux
BCMultiField< 3, FieldValue< 3 >::Scalar > bc_flux
Flux value in total/diffusive flux b.c.
Definition: conc_dispersion_model.hh:62
TransportEqFields
Definition: transport_operator_splitting.hh:137
Input::Type::Selection::add_value
Selection & add_value(const int value, const std::string &key, const std::string &description="", TypeBase::attribute_map attributes=TypeBase::attribute_map())
Adds one new value with name given by key to the Selection.
Definition: type_selection.cc:50
FieldFlag::in_time_term
static constexpr Mask in_time_term
A field is part of time term of the equation.
Definition: field_flag.hh:47
ConcDispersionModel::ModelEqFields::bc_type
BCMultiField< 3, FieldValue< 3 >::Enum > bc_type
Type of boundary condition (see also BC_Type)
Definition: conc_dispersion_model.hh:58
transport_operator_splitting.hh
ConcDispersionModel::ModelEqFields::init_condition
MultiField< 3, FieldValue< 3 >::Scalar > init_condition
Initial concentrations.
Definition: conc_dispersion_model.hh:66
ConcDispersionModel::ModelEqFields::bc_dirichlet_value
BCMultiField< 3, FieldValue< 3 >::Scalar > bc_dirichlet_value
Prescribed concentration for Dirichlet/reference concentration for flux b.c.
Definition: conc_dispersion_model.hh:60
ConcDispersionModel::ModelEqFields::bc_inflow
@ bc_inflow
Definition: conc_dispersion_model.hh:113
arma::mat33
Definition: doxy_dummy_defs.hh:18
FieldCommon::name
FieldCommon & name(const string &name)
Definition: field_common.hh:121
FieldValue
Definition: field_values.hh:645
FMT_UNUSED
#define FMT_UNUSED
Definition: posix.h:75
ConcDispersionModel::ModelEqFields::bc_robin_sigma
BCMultiField< 3, FieldValue< 3 >::Scalar > bc_robin_sigma
Transition coefficient in total/diffusive flux b.c.
Definition: conc_dispersion_model.hh:64