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");
62 const std::vector<RealGradient> & tang_eta =
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;
const GenericMaterialProperty< std::vector< Real >, is_ad > & _relative_permeability
Relative permeability of each phase.
virtual_for_inffe const std::vector< RealGradient > & get_dxyzdeta() const
const RealVectorValue _gravity
Gravitational acceleration.
const GenericMaterialProperty< std::vector< RealGradient >, is_ad > & _grad_p
Gradient of the pore pressure in each phase.
PorousFlowDarcyVelocityComponentLowerDimensional(const InputParameters ¶meters)
const std::string & name() const override
const unsigned int _ph
Index of the fluid phase.
auto norm_sq() const -> decltype(std::norm(Real()))
virtual unsigned int dimension() const
Computes a component of the Darcy velocity: -k_ij * krel /mu (nabla_j P - w_j) where k_ij is the perm...
registerMooseObject("PorousFlowApp", PorousFlowDarcyVelocityComponentLowerDimensional)
void paramError(const std::string ¶m, Args... args) const
const GenericMaterialProperty< RealTensorValue, is_ad > & _permeability
Permeability of porous material.
const VariableValue & _aperture
Fracture aperture (width)
MooseVariableField< Real > & _var
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
static InputParameters validParams()
const GenericMaterialProperty< std::vector< Real >, is_ad > & _fluid_viscosity
Viscosity of each component in each phase.
void mooseError(Args &&... args) const
const Elem *const & _current_elem
virtual_for_inffe const std::vector< RealGradient > & get_dxyzdxi() const
const FEBase *const & getFE(FEType type, unsigned int dim) const
unsigned int _component
Desired spatial component.
virtual Real computeValue() override
const GenericMaterialProperty< std::vector< Real >, is_ad > & _fluid_density_qp
Fluid density for each phase (at the qp)
static InputParameters validParams()
Computes a component of the Darcy velocity: -k_ij * krel /(mu a) (nabla_j P - w_j) where k_ij is the ...