21 InputParameters params = validParams<SideIntegralVariablePostprocessor>();
22 params.addRequiredParam<
bool>(
24 "If true, then fluxes are multiplied by (density*permeability_nn/viscosity), "
25 "where the '_nn' indicates the component normal to the boundary. In this "
26 "case bare_flux is measured in Pa.s^-1. This can be used in conjunction "
28 params.addRequiredParam<
bool>(
"use_relperm",
29 "If true, then fluxes are multiplied by relative "
30 "permeability. This can be used in conjunction "
32 params.addRequiredParam<std::vector<Real>>(
33 "pressures",
"Tuple of pressure values. Must be monotonically increasing.");
34 params.addRequiredParam<std::vector<Real>>(
36 "Tuple of flux values (measured in kg.m^-2.s^-1 for use_mobility=false, and "
37 "in Pa.s^-1 if use_mobility=true). This flux is OUT of the medium: hence "
38 "positive values of flux means this will be a SINK, while negative values "
39 "indicate this flux will be a SOURCE. A piecewise-linear fit is performed to "
40 "the (pressure,bare_fluxes) pairs to obtain the flux at any arbitrary "
41 "pressure, and the first or last bare_flux values are used if the quad-point "
42 "pressure falls outside this range.");
43 params.addRequiredParam<UserObjectName>(
44 "richardsVarNames_UO",
"The UserObject that holds the list of Richards variable names.");
45 params.addParam<FunctionName>(
"multiplying_fcn",
47 "The flux will be multiplied by this spatially-and-temporally "
48 "varying function. This is useful if the boundary is a moving "
49 "boundary controlled by RichardsExcav.");
50 params.addClassDescription(
"Records the fluid flow into a sink (positive values indicate fluid "
51 "is flowing from porespace into the sink).");
56 : SideIntegralVariablePostprocessor(parameters),
57 _sink_func(getParam<std::vector<Real>>(
"pressures"),
58 getParam<std::vector<Real>>(
"bare_fluxes")),
60 _use_mobility(getParam<bool>(
"use_mobility")),
61 _use_relperm(getParam<bool>(
"use_relperm")),
63 _m_func(getFunction(
"multiplying_fcn")),
66 _pvar(_richards_name_UO.richards_var_num(coupled(
"variable"))),
68 _pp(getMaterialProperty<std::vector<Real>>(
"porepressure")),
70 _viscosity(getMaterialProperty<std::vector<Real>>(
"viscosity")),
71 _permeability(getMaterialProperty<RealTensorValue>(
"permeability")),
72 _rel_perm(getMaterialProperty<std::vector<Real>>(
"rel_perm")),
73 _density(getMaterialProperty<std::vector<Real>>(
"density"))
82 flux *=
_m_func.value(_t, _q_point[_qp]);
86 Real k = (
_permeability[_qp] * _normals[_qp]) * _normals[_qp];