Go to the documentation of this file.
11 #include "MooseMesh.h"
21 params.addCoupledVar(
"aperture", 1.0,
"Aperture of the fracture");
22 params.addClassDescription(
23 "Darcy velocity on a lower-dimensional element embedded in a higher-dimensional mesh. Units "
24 "m^3.s^-1.m^-2, or m.s^-1. Darcy velocity = -(k_ij * krel /(mu * a) (nabla_j P - w_j)), "
25 "where k_ij is the permeability tensor, krel is the relative permeability, mu is the fluid "
26 "viscosity, P is the fluid pressure, a is the fracture aperture and w_j is the fluid weight. "
27 " The difference between this AuxKernel and PorousFlowDarcyVelocity is that this one "
28 "projects gravity along the element's tangent direction. NOTE! For a meaningful answer, "
29 "your permeability tensor must NOT contain terms that rotate tangential vectors to "
30 "non-tangential vectors.");
35 const InputParameters & parameters)
43 const unsigned elem_dim = _current_elem->dim();
44 if (elem_dim == _mesh.dimension())
45 mooseError(
"The variable ",
47 " must must be defined on lower-dimensional elements "
48 "only since it employs "
49 "PorousFlowDarcyVelocityComponentLowerDimensional\n");
55 const std::vector<RealGradient> & tang_xi = _assembly.getFE(FEType(), elem_dim)->get_dxyzdxi();
56 RealVectorValue tangential_gravity =
57 (
_gravity * tang_xi[_qp] / tang_xi[_qp].norm_sq()) * tang_xi[_qp];
61 const std::vector<RealGradient> & tang_eta =
62 _assembly.getFE(FEType(), elem_dim)->get_dxyzdeta();
63 tangential_gravity += (
_gravity * tang_eta[_qp] / tang_eta[_qp].norm_sq()) * tang_eta[_qp];
const MaterialProperty< std::vector< RealGradient > > & _grad_p
Gradient of the pore pressure in each phase.
const VariableValue & _aperture
Fracture aperture (width)
registerMooseObject("PorousFlowApp", PorousFlowDarcyVelocityComponentLowerDimensional)
const MaterialProperty< std::vector< Real > > & _relative_permeability
Relative permeability of each phase.
PorousFlowDarcyVelocityComponentLowerDimensional(const InputParameters ¶meters)
unsigned int _component
Desired spatial component.
const RealVectorValue _gravity
Gravitational acceleration.
const MaterialProperty< RealTensorValue > & _permeability
Permeability of porous material.
const MaterialProperty< std::vector< Real > > & _fluid_density_qp
Fluid density for each phase (at the qp)
virtual Real computeValue() override
Computes a component of the Darcy velocity: -k_ij * krel /(mu a) (nabla_j P - w_j) where k_ij is the ...
Computes a component of the Darcy velocity: -k_ij * krel /mu (nabla_j P - w_j) where k_ij is the perm...
const MaterialProperty< std::vector< Real > > & _fluid_viscosity
Viscosity of each component in each phase.
const unsigned int _ph
Index of the fluid phase.
InputParameters validParams< PorousFlowDarcyVelocityComponentLowerDimensional >()
InputParameters validParams< PorousFlowDarcyVelocityComponent >()