Applies a flux sink to a boundary The sink is a piecewise linear function of porepressure (the "variable") at the quad points. More...
#include <RichardsPiecewiseLinearSink.h>
Public Member Functions | |
RichardsPiecewiseLinearSink (const InputParameters ¶meters) | |
Protected Member Functions | |
virtual void | computeResidual () override |
virtual Real | computeQpResidual () override |
virtual void | computeJacobian () override |
virtual Real | computeQpJacobian () override |
virtual void | computeJacobianBlock (MooseVariableFEBase &jvar) override |
virtual Real | computeQpOffDiagJacobian (unsigned int jvar) override |
void | prepareNodalValues () |
calculates the nodal values of pressure, mobility, and derivatives thereof More... | |
Real | jac (unsigned int wrt_num) |
derivative of residual wrt the wrt_num Richards variable More... | |
Protected Attributes | |
bool | _use_mobility |
whether to multiply the sink flux by permeability*density/viscosity More... | |
bool | _use_relperm |
whether to multiply the sink flux by relative permeability More... | |
bool | _fully_upwind |
whether to use full upwinding More... | |
LinearInterpolation | _sink_func |
piecewise-linear function of porepressure (this defines the strength of the sink) More... | |
const Function & | _m_func |
sink flux gets multiplied by this function More... | |
const RichardsVarNames & | _richards_name_UO |
holds info about the names and values of richards variable in the simulation More... | |
unsigned int | _num_p |
number of richards variables More... | |
unsigned int | _pvar |
the moose internal variable number corresponding to the porepressure of this sink flux More... | |
const RichardsDensity * | _density_UO |
user object defining the density. Only used if _fully_upwind = true More... | |
const RichardsSeff * | _seff_UO |
user object defining the effective saturation. Only used if _fully_upwind = true More... | |
const RichardsRelPerm * | _relperm_UO |
user object defining the relative permeability. Only used if _fully_upwind = true More... | |
const PostprocessorValue & | _area_pp |
area postprocessor. if given then all bare_fluxes are divided by this quantity More... | |
unsigned int | _num_nodes |
number of nodes in this element. Only used if _fully_upwind = true More... | |
std::vector< Real > | _nodal_density |
nodal values of fluid density These are used if _fully_upwind = true More... | |
std::vector< std::vector< Real > > | _dnodal_density_dv |
d(_nodal_density)/d(variable_ph) (variable_ph is the variable for phase=ph) These are used in the jacobian calculations if _fully_upwind = true More... | |
std::vector< Real > | _nodal_relperm |
nodal values of relative permeability These are used if _fully_upwind = true More... | |
std::vector< std::vector< Real > > | _dnodal_relperm_dv |
d(_nodal_relperm)/d(variable_ph) (variable_ph is the variable for phase=ph) These are used in the jacobian calculations if _fully_upwind = true More... | |
const MaterialProperty< std::vector< Real > > & | _pp |
porepressure values (only the _pvar component is used) More... | |
const MaterialProperty< std::vector< std::vector< Real > > > & | _dpp_dv |
d(porepressure_i)/d(variable_j) More... | |
const MaterialProperty< std::vector< Real > > & | _viscosity |
viscosity (only the _pvar component is used) More... | |
const MaterialProperty< RealTensorValue > & | _permeability |
permeability More... | |
const MaterialProperty< std::vector< std::vector< Real > > > & | _dseff_dv |
derivative of effective saturation wrt variables only _dseff_dv[_pvar][i] is used for i being all variables More... | |
const MaterialProperty< std::vector< Real > > & | _rel_perm |
relative permeability (only the _pvar component is used) More... | |
const MaterialProperty< std::vector< std::vector< Real > > > & | _drel_perm_dv |
d(relperm_i)/d(variable_j) More... | |
const MaterialProperty< std::vector< Real > > & | _density |
fluid density (only the _pvar component is used) More... | |
const MaterialProperty< std::vector< std::vector< Real > > > & | _ddensity_dv |
d(density_i)/d(variable_j) More... | |
std::vector< const VariableValue * > | _ps_at_nodes |
Holds the values of pressures at all the nodes of the element Only used if _fully_upwind = true Eg: _ps_at_nodes[_pvar] is a pointer to this variable's nodal porepressure values So: (*_ps_at_nodes[_pvar])[i] = _var.dofValues()[i] = porepressure of pressure-variable _pvar at node i. More... | |
Applies a flux sink to a boundary The sink is a piecewise linear function of porepressure (the "variable") at the quad points.
This is specified by _sink_func. In addition, this sink can be multiplied by: (1) the relative permeability of the fluid at the quad point. (2) perm_nn*density/viscosity, where perm_nn is the permeability tensor projected in the normal direction. (3) a Function (which can be time-dependent, for instance) and divided by: (4) an area Postprocessor
Definition at line 39 of file RichardsPiecewiseLinearSink.h.
RichardsPiecewiseLinearSink::RichardsPiecewiseLinearSink | ( | const InputParameters & | parameters | ) |
Definition at line 78 of file RichardsPiecewiseLinearSink.C.
|
overrideprotectedvirtual |
Definition at line 230 of file RichardsPiecewiseLinearSink.C.
|
overrideprotectedvirtual |
Definition at line 244 of file RichardsPiecewiseLinearSink.C.
|
overrideprotectedvirtual |
Definition at line 238 of file RichardsPiecewiseLinearSink.C.
|
overrideprotectedvirtual |
Definition at line 252 of file RichardsPiecewiseLinearSink.C.
|
overrideprotectedvirtual |
Definition at line 184 of file RichardsPiecewiseLinearSink.C.
|
overrideprotectedvirtual |
Definition at line 176 of file RichardsPiecewiseLinearSink.C.
|
protected |
derivative of residual wrt the wrt_num Richards variable
Definition at line 261 of file RichardsPiecewiseLinearSink.C.
Referenced by computeQpJacobian(), and computeQpOffDiagJacobian().
|
protected |
calculates the nodal values of pressure, mobility, and derivatives thereof
Definition at line 133 of file RichardsPiecewiseLinearSink.C.
Referenced by computeJacobian(), computeJacobianBlock(), and computeResidual().
|
protected |
area postprocessor. if given then all bare_fluxes are divided by this quantity
Definition at line 92 of file RichardsPiecewiseLinearSink.h.
Referenced by computeQpResidual(), and jac().
|
protected |
d(density_i)/d(variable_j)
Definition at line 149 of file RichardsPiecewiseLinearSink.h.
Referenced by jac().
|
protected |
fluid density (only the _pvar component is used)
Definition at line 146 of file RichardsPiecewiseLinearSink.h.
Referenced by computeQpResidual(), and jac().
|
protected |
user object defining the density. Only used if _fully_upwind = true
Definition at line 83 of file RichardsPiecewiseLinearSink.h.
Referenced by prepareNodalValues().
|
protected |
d(_nodal_density)/d(variable_ph) (variable_ph is the variable for phase=ph) These are used in the jacobian calculations if _fully_upwind = true
Definition at line 107 of file RichardsPiecewiseLinearSink.h.
Referenced by jac(), and prepareNodalValues().
|
protected |
d(_nodal_relperm)/d(variable_ph) (variable_ph is the variable for phase=ph) These are used in the jacobian calculations if _fully_upwind = true
Definition at line 119 of file RichardsPiecewiseLinearSink.h.
Referenced by jac(), and prepareNodalValues().
|
protected |
d(porepressure_i)/d(variable_j)
Definition at line 125 of file RichardsPiecewiseLinearSink.h.
Referenced by jac().
|
protected |
d(relperm_i)/d(variable_j)
Definition at line 143 of file RichardsPiecewiseLinearSink.h.
Referenced by jac().
|
protected |
derivative of effective saturation wrt variables only _dseff_dv[_pvar][i] is used for i being all variables
Definition at line 137 of file RichardsPiecewiseLinearSink.h.
|
protected |
whether to use full upwinding
Definition at line 65 of file RichardsPiecewiseLinearSink.h.
Referenced by computeJacobian(), computeJacobianBlock(), computeQpResidual(), computeResidual(), and jac().
|
protected |
sink flux gets multiplied by this function
Definition at line 71 of file RichardsPiecewiseLinearSink.h.
Referenced by computeQpResidual(), and jac().
|
protected |
nodal values of fluid density These are used if _fully_upwind = true
Definition at line 101 of file RichardsPiecewiseLinearSink.h.
Referenced by computeQpResidual(), jac(), and prepareNodalValues().
|
protected |
nodal values of relative permeability These are used if _fully_upwind = true
Definition at line 113 of file RichardsPiecewiseLinearSink.h.
Referenced by computeQpResidual(), jac(), and prepareNodalValues().
|
protected |
number of nodes in this element. Only used if _fully_upwind = true
Definition at line 95 of file RichardsPiecewiseLinearSink.h.
Referenced by prepareNodalValues().
|
protected |
number of richards variables
Definition at line 77 of file RichardsPiecewiseLinearSink.h.
Referenced by prepareNodalValues(), and RichardsPiecewiseLinearSink().
|
protected |
permeability
Definition at line 131 of file RichardsPiecewiseLinearSink.h.
Referenced by computeQpResidual(), and jac().
|
protected |
porepressure values (only the _pvar component is used)
Definition at line 122 of file RichardsPiecewiseLinearSink.h.
Referenced by computeQpResidual(), and jac().
|
protected |
Holds the values of pressures at all the nodes of the element Only used if _fully_upwind = true Eg: _ps_at_nodes[_pvar] is a pointer to this variable's nodal porepressure values So: (*_ps_at_nodes[_pvar])[i] = _var.dofValues()[i] = porepressure of pressure-variable _pvar at node i.
Definition at line 159 of file RichardsPiecewiseLinearSink.h.
Referenced by computeQpResidual(), jac(), prepareNodalValues(), and RichardsPiecewiseLinearSink().
|
protected |
the moose internal variable number corresponding to the porepressure of this sink flux
Definition at line 80 of file RichardsPiecewiseLinearSink.h.
Referenced by computeQpJacobian(), computeQpResidual(), jac(), and prepareNodalValues().
|
protected |
relative permeability (only the _pvar component is used)
Definition at line 140 of file RichardsPiecewiseLinearSink.h.
Referenced by computeQpResidual(), and jac().
|
protected |
user object defining the relative permeability. Only used if _fully_upwind = true
Definition at line 89 of file RichardsPiecewiseLinearSink.h.
Referenced by prepareNodalValues().
|
protected |
holds info about the names and values of richards variable in the simulation
Definition at line 74 of file RichardsPiecewiseLinearSink.h.
Referenced by computeQpOffDiagJacobian(), and RichardsPiecewiseLinearSink().
|
protected |
user object defining the effective saturation. Only used if _fully_upwind = true
Definition at line 86 of file RichardsPiecewiseLinearSink.h.
Referenced by prepareNodalValues().
|
protected |
piecewise-linear function of porepressure (this defines the strength of the sink)
Definition at line 68 of file RichardsPiecewiseLinearSink.h.
Referenced by computeQpResidual(), and jac().
|
protected |
whether to multiply the sink flux by permeability*density/viscosity
Definition at line 59 of file RichardsPiecewiseLinearSink.h.
Referenced by computeQpResidual(), and jac().
|
protected |
whether to multiply the sink flux by relative permeability
Definition at line 62 of file RichardsPiecewiseLinearSink.h.
Referenced by computeQpResidual(), and jac().
|
protected |
viscosity (only the _pvar component is used)
Definition at line 128 of file RichardsPiecewiseLinearSink.h.
Referenced by computeQpResidual(), and jac().