www.mooseframework.org
DarcyFluxComponent.C
Go to the documentation of this file.
1 //* This file is part of the MOOSE framework
2 //* https://www.mooseframework.org
3 //*
4 //* All rights reserved, see COPYRIGHT for full restrictions
5 //* https://github.com/idaholab/moose/blob/master/COPYRIGHT
6 //*
7 //* Licensed under LGPL 2.1, please see LICENSE for details
8 //* https://www.gnu.org/licenses/lgpl-2.1.html
9 
10 #include "DarcyFluxComponent.h"
11 
13 
14 template <>
15 InputParameters
17 {
18  MooseEnum component("x=0 y=1 z=2");
19  InputParameters params = validParams<AuxKernel>();
20  params.addRequiredParam<RealVectorValue>(
21  "fluid_weight",
22  "Fluid weight (gravity*density) as a vector pointing downwards (usually "
23  "measured in kg.m^-2.s^-2 = Pa/m). Eg '0 0 -10000'");
24  params.addRequiredParam<Real>("fluid_viscosity",
25  "Fluid dynamic viscosity (usually measured in Pa.s)");
26  params.addClassDescription("Darcy flux (in m^3.s^-1.m^-2, or m.s^-1) -(k_ij/mu (nabla_j P - "
27  "w_j)), where k_ij is the permeability tensor, mu is the fluid "
28  "viscosity, P is the fluid pressure, and w_j is the fluid weight. If "
29  "velocity_scaling is used then -(k_ij/mu (nabla_j P - "
30  "w_j))/velocity_scaling is returned");
31  params.addParam<MooseEnum>("component", component, "The component of the Darcy flux to return");
32  params.addParam<Real>(
33  "velocity_scaling",
34  1,
35  "Scale the result by (1/velocity_scaling). Usually velocity_scaling = porosity.");
36  params.addRequiredCoupledVar("porepressure", "The variable representing the porepressure");
37  return params;
38 }
39 
40 DarcyFluxComponent::DarcyFluxComponent(const InputParameters & parameters)
41  : AuxKernel(parameters),
42  _grad_pp(coupledGradient("porepressure")),
43  _fluid_weight(getParam<RealVectorValue>("fluid_weight")),
44  _fluid_viscosity(getParam<Real>("fluid_viscosity")),
45  _poro_recip(1.0 / getParam<Real>("velocity_scaling")),
46  _permeability(getMaterialProperty<RealTensorValue>("permeability")),
47  _component(getParam<MooseEnum>("component"))
48 {
49 }
50 
51 Real
53 {
54  return -_poro_recip *
56 }
DarcyFluxComponent::_poro_recip
Real _poro_recip
(1/velocity_scaling)
Definition: DarcyFluxComponent.h:53
DarcyFluxComponent::_grad_pp
const VariableGradient & _grad_pp
gradient of the pressure
Definition: DarcyFluxComponent.h:44
DarcyFluxComponent
Computes a component of the Darcy flux: -k_ij/mu (nabla_j P - w_j) where k_ij is the permeability ten...
Definition: DarcyFluxComponent.h:35
validParams< DarcyFluxComponent >
InputParameters validParams< DarcyFluxComponent >()
Definition: DarcyFluxComponent.C:16
DarcyFluxComponent::_fluid_viscosity
Real _fluid_viscosity
fluid dynamic viscosity
Definition: DarcyFluxComponent.h:50
DarcyFluxComponent::_component
unsigned int _component
Desired component.
Definition: DarcyFluxComponent.h:59
DarcyFluxComponent::computeValue
virtual Real computeValue()
Definition: DarcyFluxComponent.C:52
DarcyFluxComponent::DarcyFluxComponent
DarcyFluxComponent(const InputParameters &parameters)
Definition: DarcyFluxComponent.C:40
MaterialTensorCalculatorTools::component
Real component(const SymmTensor &symm_tensor, unsigned int index)
Definition: MaterialTensorCalculatorTools.C:16
DarcyFluxComponent::_permeability
const MaterialProperty< RealTensorValue > & _permeability
Material permeability.
Definition: DarcyFluxComponent.h:56
registerMooseObject
registerMooseObject("RichardsApp", DarcyFluxComponent)
DarcyFluxComponent.h
DarcyFluxComponent::_fluid_weight
RealVectorValue _fluid_weight
fluid weight (gravity*density) as a vector pointing downwards, eg '0 0 -10000'
Definition: DarcyFluxComponent.h:47