19 "Computes the advective flux of fluid of given phase, assuming fully-saturated conditions. " 20 "Hence this UserObject is only relevant to single-phase situations. Explicitly, the " 21 "UserObject computes (density / viscosity) * (- permeability * (grad(P) - density * " 22 "gravity)), using the Kuzmin-Turek FEM-TVD multidimensional stabilization scheme");
24 "multiply_by_density",
26 "If true, then the advective flux will be multiplied by density, so it is a mass flux, which " 27 "is the most common way of using PorousFlow. If false, then the advective flux will be a " 28 "volume flux, which is common in poro-mechanics");
35 _multiply_by_density(getParam<bool>(
"multiply_by_density")),
36 _fluid_density_node(_multiply_by_density ? &getMaterialProperty<
std::vector<
Real>>(
37 "PorousFlow_fluid_phase_density_nodal")
39 _dfluid_density_node_dvar(_multiply_by_density
40 ? &getMaterialProperty<
std::vector<
std::vector<
Real>>>(
41 "dPorousFlow_fluid_phase_density_nodal_dvar")
43 _fluid_viscosity(getMaterialProperty<
std::vector<
Real>>(
"PorousFlow_viscosity_nodal")),
44 _dfluid_viscosity_dvar(
45 getMaterialProperty<
std::vector<
std::vector<
Real>>>(
"dPorousFlow_viscosity_nodal_dvar"))
67 du = du * (*_fluid_density_node)[i][
_phase] +
registerMooseObject("PorousFlowApp", PorousFlowAdvectiveFluxCalculatorSaturated)
const MaterialProperty< std::vector< std::vector< Real > > > & _dfluid_viscosity_dvar
Derivative of the fluid viscosity for each phase wrt PorousFlow variables.
static InputParameters validParams()
const MaterialProperty< std::vector< Real > > & _fluid_viscosity
Viscosity of each component in each phase.
const unsigned int _phase
The phase.
Base class to compute the advective flux of fluid in PorousFlow situations using the Kuzmin-Turek FEM...
const MaterialProperty< std::vector< Real > > *const _fluid_density_node
Fluid density for each phase (at the node)
const bool _multiply_by_density
Whether to multiply the flux by the fluid density.
virtual Real computeU(unsigned i) const override
Computes the value of u at the local node id of the current element (_current_elem) ...
PorousFlowAdvectiveFluxCalculatorSaturated(const InputParameters ¶meters)
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
virtual Real computedU_dvar(unsigned i, unsigned pvar) const override
Compute d(u)/d(porous_flow_variable)
static InputParameters validParams()
Computes the advective flux of fluid of given phase, assuming fully-saturated conditions.
MooseUnits pow(const MooseUnits &, int)