20 params.
addCoupledVar(
"aperture", 1.0,
"Aperture of the fracture");
22 "Darcy velocity on a lower-dimensional element embedded in a higher-dimensional mesh. Units "
23 "m^3.s^-1.m^-2, or m.s^-1. Darcy velocity = -(k_ij * krel /(mu * a) (nabla_j P - w_j)), "
24 "where k_ij is the permeability tensor, krel is the relative permeability, mu is the fluid "
25 "viscosity, P is the fluid pressure, a is the fracture aperture and w_j is the fluid weight. "
26 " The difference between this AuxKernel and PorousFlowDarcyVelocity is that this one "
27 "projects gravity along the element's tangent direction. NOTE! For a meaningful answer, "
28 "your permeability tensor must NOT contain terms that rotate tangential vectors to "
29 "non-tangential vectors.");
38 paramError(
"variable",
"This AuxKernel only supports Elemental fields");
48 " must must be defined on lower-dimensional elements "
49 "only since it employs "
50 "PorousFlowDarcyVelocityComponentLowerDimensional\n");
56 const std::vector<RealGradient> & tang_xi =
_assembly.
getFE(FEType(), elem_dim)->get_dxyzdxi();
57 RealVectorValue tangential_gravity =
62 const std::vector<RealGradient> & tang_eta =
64 const RealGradient normal_to_xi =
65 tang_eta[
_qp] - (tang_eta[
_qp] * tang_xi[
_qp] / tang_xi[
_qp].norm_sq()) * tang_xi[
_qp];
66 tangential_gravity += (
_gravity * normal_to_xi / normal_to_xi.norm_sq()) * normal_to_xi;
registerMooseObject("PorousFlowApp", PorousFlowDarcyVelocityComponentLowerDimensional)
const FEBase *const & getFE(FEType type, unsigned int dim) const
const Elem *const & _current_elem
MooseVariableField< ComputeValueType > & _var
const std::string & name() const
void paramError(const std::string ¶m, Args... args) const
void mooseError(Args &&... args) const
virtual unsigned int dimension() const
Computes a component of the Darcy velocity: -k_ij * krel /(mu a) (nabla_j P - w_j) where k_ij is the ...
PorousFlowDarcyVelocityComponentLowerDimensional(const InputParameters ¶meters)
static InputParameters validParams()
const VariableValue & _aperture
Fracture aperture (width)
virtual Real computeValue() override
Computes a component of the Darcy velocity: -k_ij * krel /mu (nabla_j P - w_j) where k_ij is the perm...
unsigned int _component
Desired spatial component.
const RealVectorValue _gravity
Gravitational acceleration.
const unsigned int _ph
Index of the fluid phase.
static InputParameters validParams()
const GenericMaterialProperty< std::vector< Real >, is_ad > & _fluid_density_qp
Fluid density for each phase (at the qp)
const GenericMaterialProperty< std::vector< Real >, is_ad > & _fluid_viscosity
Viscosity of each component in each phase.
const GenericMaterialProperty< std::vector< Real >, is_ad > & _relative_permeability
Relative permeability of each phase.
const GenericMaterialProperty< RealTensorValue, is_ad > & _permeability
Permeability of porous material.
const GenericMaterialProperty< std::vector< RealGradient >, is_ad > & _grad_p
Gradient of the pore pressure in each phase.