Go to the documentation of this file.
19 params.addRequiredParam<RealVectorValue>(
"gravity",
20 "Gravitational acceleration vector downwards (m/s^2)");
21 params.addClassDescription(
"This Material calculates the Darcy velocity for all phases");
22 params.addPrivateParam<std::string>(
"pf_material_type",
"darcy_velocity");
23 params.set<
bool>(
"at_nodes") =
false;
29 _num_phases(_dictator.numPhases()),
30 _num_var(_dictator.numVariables()),
31 _permeability(getMaterialProperty<RealTensorValue>(
"PorousFlow_permeability_qp")),
33 getMaterialProperty<std::vector<RealTensorValue>>(
"dPorousFlow_permeability_qp_dvar")),
34 _dpermeability_dgradvar(getMaterialProperty<std::vector<std::vector<RealTensorValue>>>(
35 "dPorousFlow_permeability_qp_dgradvar")),
36 _fluid_density(getMaterialProperty<std::vector<Real>>(
"PorousFlow_fluid_phase_density_qp")),
37 _dfluid_density_dvar(getMaterialProperty<std::vector<std::vector<Real>>>(
38 "dPorousFlow_fluid_phase_density_qp_dvar")),
39 _fluid_viscosity(getMaterialProperty<std::vector<Real>>(
"PorousFlow_viscosity_qp")),
40 _dfluid_viscosity_dvar(
41 getMaterialProperty<std::vector<std::vector<Real>>>(
"dPorousFlow_viscosity_qp_dvar")),
42 _relative_permeability(
43 getMaterialProperty<std::vector<Real>>(
"PorousFlow_relative_permeability_qp")),
44 _drelative_permeability_dvar(getMaterialProperty<std::vector<std::vector<Real>>>(
45 "dPorousFlow_relative_permeability_qp_dvar")),
46 _grad_p(getMaterialProperty<std::vector<
RealGradient>>(
"PorousFlow_grad_porepressure_qp")),
47 _dgrad_p_dgradvar(getMaterialProperty<std::vector<std::vector<Real>>>(
48 "dPorousFlow_grad_porepressure_qp_dgradvar")),
49 _dgrad_p_dvar(getMaterialProperty<std::vector<std::vector<
RealGradient>>>(
50 "dPorousFlow_grad_porepressure_qp_dvar")),
51 _gravity(getParam<RealVectorValue>(
"gravity")),
52 _darcy_velocity(declareProperty<std::vector<RealVectorValue>>(
"PorousFlow_darcy_velocity_qp")),
53 _ddarcy_velocity_dvar(declareProperty<std::vector<std::vector<RealVectorValue>>>(
54 "dPorousFlow_darcy_velocity_qp_dvar")),
55 _ddarcy_velocity_dgradvar(
56 declareProperty<std::vector<std::vector<std::vector<RealVectorValue>>>>(
57 "dPorousFlow_darcy_velocity_qp_dgradvar"))
60 mooseError(
"PorousFlowDarcyVelocityMaterial is only defined for at_nodes = false");
78 for (
unsigned v = 0; v <
_num_var; ++v)
98 for (
unsigned i = 0; i < LIBMESH_DIM; ++i)
103 for (
unsigned i = 0; i < LIBMESH_DIM; ++i)
104 for (
unsigned v = 0; v <
_num_var; ++v)
109 for (
unsigned j = 0; j < LIBMESH_DIM; ++j)
const MaterialProperty< std::vector< RealTensorValue > > & _dpermeability_dvar
d(permeabiity)/d(PorousFlow variable)
Material to calculate the Darcy velocity for all phases.
InputParameters validParams< PorousFlowMaterial >()
ExpressionBuilder::EBTerm pow(const ExpressionBuilder::EBTerm &left, T exponent)
const MaterialProperty< std::vector< Real > > & _fluid_density
Fluid density for each phase.
VectorValue< Real > RealGradient
PorousFlowDarcyVelocityMaterial(const InputParameters ¶meters)
const MaterialProperty< std::vector< RealGradient > > & _grad_p
Gradient of the pore pressure in each phase.
MaterialProperty< std::vector< std::vector< RealVectorValue > > > & _ddarcy_velocity_dvar
_ddarcy_velocity_dvar[_qp][ph][v](i) = d(i_th component of velocity of phase ph at quadpoint _qp)/d(P...
const MaterialProperty< std::vector< std::vector< Real > > > & _dfluid_viscosity_dvar
Derivative of the fluid viscosity for each phase wrt PorousFlow variables.
const MaterialProperty< std::vector< std::vector< Real > > > & _drelative_permeability_dvar
Derivative of relative permeability of each phase wrt PorousFlow variables.
const MaterialProperty< std::vector< std::vector< RealTensorValue > > > & _dpermeability_dgradvar
d(permeabiity)/d(grad(PorousFlow variable))
const MaterialProperty< std::vector< std::vector< RealGradient > > > & _dgrad_p_dvar
Derivative of Grad porepressure in each phase wrt PorousFlow variables.
const MaterialProperty< std::vector< Real > > & _relative_permeability
Relative permeability of each phase.
virtual void computeQpProperties() override
const MaterialProperty< std::vector< std::vector< Real > > > & _dfluid_density_dvar
Derivative of the fluid density for each phase wrt PorousFlow variables.
const MaterialProperty< RealTensorValue > & _permeability
Permeability of porous material.
InputParameters validParams< PorousFlowDarcyVelocityMaterial >()
PorousFlowMaterial is the base class for all PorousFlow Materials It allows users to specify that the...
const bool _nodal_material
Whether the derived class holds nodal values.
MaterialProperty< std::vector< std::vector< std::vector< RealVectorValue > > > > & _ddarcy_velocity_dgradvar
_ddarcy_velocity_dgradvar[_qp][ph][j][v](i) = d(i_th component of Darcy velocity of phase ph at quadp...
const MaterialProperty< std::vector< std::vector< Real > > > & _dgrad_p_dgradvar
Derivative of Grad porepressure in each phase wrt grad(PorousFlow variables)
MaterialProperty< std::vector< RealVectorValue > > & _darcy_velocity
Computed Darcy velocity of each phase.
registerMooseObject("PorousFlowApp", PorousFlowDarcyVelocityMaterial)
const unsigned int _num_phases
Number of phases.
const unsigned int _num_var
Number of PorousFlow variables.
const RealVectorValue _gravity
Gravity.
const MaterialProperty< std::vector< Real > > & _fluid_viscosity
Viscosity of each component in each phase.