15 #include "MooseVariable.h"
17 #include "libmesh/utility.h"
25 InputParameters params = validParams<IntegratedBC>();
26 params.addRequiredParam<Real>(
"max",
27 "Maximum of the flux (measured in kg.m^-2.s^-1). Flux out "
28 "= max*exp((-0.5*(p - centre)/sd)^2) for p<centre, and Flux "
29 "out = max for p>centre. Note, to make this a source "
30 "rather than a sink, let max<0");
31 params.addRequiredParam<Real>(
"sd",
32 "Standard deviation of the Gaussian (measured in Pa). Flux "
33 "out = max*exp((-0.5*(p - centre)/sd)^2) for p<centre, and "
34 "Flux out = max for p>centre.");
35 params.addRequiredParam<Real>(
"centre",
36 "Centre of the Gaussian (measured in Pa). Flux out = "
37 "max*exp((-0.5*(p - centre)/sd)^2) for p<centre, and "
38 "Flux out = max for p>centre.");
39 params.addParam<FunctionName>(
"multiplying_fcn",
41 "If this function is provided, the flux "
42 "will be multiplied by this function. "
43 "This is useful for spatially or "
44 "temporally varying sinks");
45 params.addRequiredParam<UserObjectName>(
46 "richardsVarNames_UO",
"The UserObject that holds the list of Richards variable names.");
51 : IntegratedBC(parameters),
52 _maximum(getParam<Real>(
"max")),
53 _sd(getParam<Real>(
"sd")),
54 _centre(getParam<Real>(
"centre")),
55 _m_func(getFunction(
"multiplying_fcn")),
57 _pvar(_richards_name_UO.richards_var_num(_var.number())),
58 _pp(getMaterialProperty<std::vector<Real>>(
"porepressure")),
59 _dpp_dv(getMaterialProperty<std::vector<std::vector<Real>>>(
"dporepressure_dv"))
66 const Real test_fcn_f = _test[_i][_qp] *
_m_func.value(_t, _q_point[_qp]);
81 const Real test_fcn_f = _test[_i][_qp] *
_m_func.value(_t, _q_point[_qp]);
96 const Real test_fcn_f = _test[_i][_qp] *
_m_func.value(_t, _q_point[_qp]);