www.mooseframework.org
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
PorousFlowDarcyVelocityComponentLowerDimensional Class Reference

Computes a component of the Darcy velocity: -k_ij * krel /(mu a) (nabla_j P - w_j) where k_ij is the permeability tensor, krel is the relative permeaility, mu is the fluid viscosity, a is the fracture aperture, P is the fluid pressure and w_j is the fluid weight tensor that is projected in the tangent direction of this element This is measured in m^3 . More...

#include <PorousFlowDarcyVelocityComponentLowerDimensional.h>

Inheritance diagram for PorousFlowDarcyVelocityComponentLowerDimensional:
[legend]

Public Member Functions

 PorousFlowDarcyVelocityComponentLowerDimensional (const InputParameters &parameters)
 

Protected Member Functions

virtual Real computeValue () override
 

Protected Attributes

const VariableValue & _aperture
 Fracture aperture (width) More...
 
const MaterialProperty< std::vector< Real > > & _relative_permeability
 Relative permeability of each phase. More...
 
const MaterialProperty< std::vector< Real > > & _fluid_viscosity
 Viscosity of each component in each phase. More...
 
const MaterialProperty< RealTensorValue > & _permeability
 Permeability of porous material. More...
 
const MaterialProperty< std::vector< RealGradient > > & _grad_p
 Gradient of the pore pressure in each phase. More...
 
const MaterialProperty< std::vector< Real > > & _fluid_density_qp
 Fluid density for each phase (at the qp) More...
 
const PorousFlowDictator_dictator
 PorousFlowDicatator UserObject. More...
 
const unsigned int _ph
 Index of the fluid phase. More...
 
unsigned int _component
 Desired spatial component. More...
 
const RealVectorValue _gravity
 Gravitational acceleration. More...
 

Detailed Description

Computes a component of the Darcy velocity: -k_ij * krel /(mu a) (nabla_j P - w_j) where k_ij is the permeability tensor, krel is the relative permeaility, mu is the fluid viscosity, a is the fracture aperture, P is the fluid pressure and w_j is the fluid weight tensor that is projected in the tangent direction of this element This is measured in m^3 .

s^-1 . m^-2

Definition at line 31 of file PorousFlowDarcyVelocityComponentLowerDimensional.h.

Constructor & Destructor Documentation

◆ PorousFlowDarcyVelocityComponentLowerDimensional()

PorousFlowDarcyVelocityComponentLowerDimensional::PorousFlowDarcyVelocityComponentLowerDimensional ( const InputParameters &  parameters)

Definition at line 34 of file PorousFlowDarcyVelocityComponentLowerDimensional.C.

36  : PorousFlowDarcyVelocityComponent(parameters), _aperture(coupledValue("aperture"))
37 {
38 }
PorousFlowDarcyVelocityComponent(const InputParameters &parameters)

Member Function Documentation

◆ computeValue()

Real PorousFlowDarcyVelocityComponentLowerDimensional::computeValue ( )
overrideprotectedvirtual

Reimplemented from PorousFlowDarcyVelocityComponent.

Definition at line 41 of file PorousFlowDarcyVelocityComponentLowerDimensional.C.

42 {
43  const unsigned elem_dim = _current_elem->dim();
44  if (elem_dim == _mesh.dimension())
45  mooseError("The variable ",
46  _var.name(),
47  " must must be defined on lower-dimensional elements "
48  "only since it employs "
49  "PorousFlowDarcyVelocityComponentLowerDimensional\n");
50 
51  // MOOSE will automatically make grad(P) lie along the element's tangent direction
52  // but we need to project gravity in that direction too
53 
54  // tang_xi is the element's tangent vector in xi direction
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];
58  if (elem_dim == 2)
59  {
60  // tang_eta is the element's tangent vector in eta direction
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];
64  }
65 
66  return -(_permeability[_qp] *
67  (_grad_p[_qp][_ph] - _fluid_density_qp[_qp][_ph] * tangential_gravity) *
69  _aperture[_qp];
70 }
const MaterialProperty< RealTensorValue > & _permeability
Permeability of porous material.
const MaterialProperty< std::vector< RealGradient > > & _grad_p
Gradient of the pore pressure in each phase.
const MaterialProperty< std::vector< Real > > & _relative_permeability
Relative permeability of each phase.
const RealVectorValue _gravity
Gravitational acceleration.
unsigned int _component
Desired spatial component.
const MaterialProperty< std::vector< Real > > & _fluid_viscosity
Viscosity of each component in each phase.
const unsigned int _ph
Index of the fluid phase.
const MaterialProperty< std::vector< Real > > & _fluid_density_qp
Fluid density for each phase (at the qp)

Member Data Documentation

◆ _aperture

const VariableValue& PorousFlowDarcyVelocityComponentLowerDimensional::_aperture
protected

Fracture aperture (width)

Definition at line 40 of file PorousFlowDarcyVelocityComponentLowerDimensional.h.

Referenced by computeValue().

◆ _component

unsigned int PorousFlowDarcyVelocityComponent::_component
protectedinherited

Desired spatial component.

Definition at line 61 of file PorousFlowDarcyVelocityComponent.h.

Referenced by PorousFlowDarcyVelocityComponent::computeValue(), and computeValue().

◆ _dictator

const PorousFlowDictator& PorousFlowDarcyVelocityComponent::_dictator
protectedinherited

PorousFlowDicatator UserObject.

Definition at line 55 of file PorousFlowDarcyVelocityComponent.h.

Referenced by PorousFlowDarcyVelocityComponent::PorousFlowDarcyVelocityComponent().

◆ _fluid_density_qp

const MaterialProperty<std::vector<Real> >& PorousFlowDarcyVelocityComponent::_fluid_density_qp
protectedinherited

Fluid density for each phase (at the qp)

Definition at line 52 of file PorousFlowDarcyVelocityComponent.h.

Referenced by PorousFlowDarcyVelocityComponent::computeValue(), and computeValue().

◆ _fluid_viscosity

const MaterialProperty<std::vector<Real> >& PorousFlowDarcyVelocityComponent::_fluid_viscosity
protectedinherited

Viscosity of each component in each phase.

Definition at line 43 of file PorousFlowDarcyVelocityComponent.h.

Referenced by PorousFlowDarcyVelocityComponent::computeValue(), and computeValue().

◆ _grad_p

const MaterialProperty<std::vector<RealGradient> >& PorousFlowDarcyVelocityComponent::_grad_p
protectedinherited

Gradient of the pore pressure in each phase.

Definition at line 49 of file PorousFlowDarcyVelocityComponent.h.

Referenced by PorousFlowDarcyVelocityComponent::computeValue(), and computeValue().

◆ _gravity

const RealVectorValue PorousFlowDarcyVelocityComponent::_gravity
protectedinherited

Gravitational acceleration.

Definition at line 64 of file PorousFlowDarcyVelocityComponent.h.

Referenced by PorousFlowDarcyVelocityComponent::computeValue(), and computeValue().

◆ _permeability

const MaterialProperty<RealTensorValue>& PorousFlowDarcyVelocityComponent::_permeability
protectedinherited

Permeability of porous material.

Definition at line 46 of file PorousFlowDarcyVelocityComponent.h.

Referenced by PorousFlowDarcyVelocityComponent::computeValue(), and computeValue().

◆ _ph

const unsigned int PorousFlowDarcyVelocityComponent::_ph
protectedinherited

◆ _relative_permeability

const MaterialProperty<std::vector<Real> >& PorousFlowDarcyVelocityComponent::_relative_permeability
protectedinherited

Relative permeability of each phase.

Definition at line 40 of file PorousFlowDarcyVelocityComponent.h.

Referenced by PorousFlowDarcyVelocityComponent::computeValue(), and computeValue().


The documentation for this class was generated from the following files: