https://mooseframework.inl.gov
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
PorousFlowPermeabilityConstFromVarTempl< is_ad > Class Template Reference

Material to provide permeability taken from a variable. More...

#include <PorousFlowPermeabilityConstFromVar.h>

Inheritance diagram for PorousFlowPermeabilityConstFromVarTempl< is_ad >:
[legend]

Public Types

typedef DerivativeMaterialPropertyNameInterface::SymbolName SymbolName
 

Public Member Functions

 PorousFlowPermeabilityConstFromVarTempl (const InputParameters &parameters)
 
const GenericMaterialProperty< U, is_ad > & getDefaultMaterialProperty (const std::string &name)
 
const GenericMaterialProperty< U, is_ad > & getDefaultMaterialPropertyByName (const std::string &name)
 
void validateDerivativeMaterialPropertyBase (const std::string &base)
 
const MaterialPropertyName derivativePropertyName (const MaterialPropertyName &base, const std::vector< SymbolName > &c) const
 
const MaterialPropertyName derivativePropertyNameFirst (const MaterialPropertyName &base, const SymbolName &c1) const
 
const MaterialPropertyName derivativePropertyNameSecond (const MaterialPropertyName &base, const SymbolName &c1, const SymbolName &c2) const
 
const MaterialPropertyName derivativePropertyNameThird (const MaterialPropertyName &base, const SymbolName &c1, const SymbolName &c2, const SymbolName &c3) const
 
GenericMaterialProperty< U, is_ad > & declarePropertyDerivative (const std::string &base, const std::vector< VariableName > &c)
 
GenericMaterialProperty< U, is_ad > & declarePropertyDerivative (const std::string &base, const std::vector< SymbolName > &c)
 
GenericMaterialProperty< U, is_ad > & declarePropertyDerivative (const std::string &base, const SymbolName &c1, const SymbolName &c2="", const SymbolName &c3="")
 
GenericMaterialProperty< U, is_ad > & declarePropertyDerivative (const std::string &base, const std::vector< VariableName > &c)
 
GenericMaterialProperty< U, is_ad > & declarePropertyDerivative (const std::string &base, const std::vector< SymbolName > &c)
 
GenericMaterialProperty< U, is_ad > & declarePropertyDerivative (const std::string &base, const SymbolName &c1, const SymbolName &c2="", const SymbolName &c3="")
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivative (const std::string &base, const std::vector< VariableName > &c)
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivative (const std::string &base, const std::vector< SymbolName > &c)
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivative (const std::string &base, const SymbolName &c1, const SymbolName &c2="", const SymbolName &c3="")
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivative (const std::string &base, const SymbolName &c1, unsigned int v2, unsigned int v3=libMesh::invalid_uint)
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivative (const std::string &base, unsigned int v1, unsigned int v2=libMesh::invalid_uint, unsigned int v3=libMesh::invalid_uint)
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivative (const std::string &base, const std::vector< VariableName > &c)
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivative (const std::string &base, const std::vector< SymbolName > &c)
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivative (const std::string &base, const SymbolName &c1, const SymbolName &c2="", const SymbolName &c3="")
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivative (const std::string &base, const SymbolName &c1, unsigned int v2, unsigned int v3=libMesh::invalid_uint)
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivative (const std::string &base, unsigned int v1, unsigned int v2=libMesh::invalid_uint, unsigned int v3=libMesh::invalid_uint)
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivativeByName (const MaterialPropertyName &base, const std::vector< VariableName > &c)
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivativeByName (const MaterialPropertyName &base, const std::vector< SymbolName > &c)
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivativeByName (const MaterialPropertyName &base, const SymbolName &c1, const SymbolName &c2="", const SymbolName &c3="")
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivativeByName (const MaterialPropertyName &base, const std::vector< VariableName > &c)
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivativeByName (const MaterialPropertyName &base, const std::vector< SymbolName > &c)
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivativeByName (const MaterialPropertyName &base, const SymbolName &c1, const SymbolName &c2="", const SymbolName &c3="")
 
void validateCoupling (const MaterialPropertyName &base, const std::vector< VariableName > &c, bool validate_aux=true)
 
void validateCoupling (const MaterialPropertyName &base, const VariableName &c1="", const VariableName &c2="", const VariableName &c3="")
 
void validateCoupling (const MaterialPropertyName &base, const std::vector< VariableName > &c, bool validate_aux=true)
 
void validateCoupling (const MaterialPropertyName &base, const VariableName &c1="", const VariableName &c2="", const VariableName &c3="")
 
void validateNonlinearCoupling (const MaterialPropertyName &base, const VariableName &c1="", const VariableName &c2="", const VariableName &c3="")
 
void validateNonlinearCoupling (const MaterialPropertyName &base, const VariableName &c1="", const VariableName &c2="", const VariableName &c3="")
 
const MaterialPropertyName propertyName (const MaterialPropertyName &base, const std::vector< SymbolName > &c) const
 
const MaterialPropertyName propertyName (const MaterialPropertyName &base, const std::vector< SymbolName > &c) const
 
const MaterialPropertyName propertyNameFirst (const MaterialPropertyName &base, const SymbolName &c1) const
 
const MaterialPropertyName propertyNameFirst (const MaterialPropertyName &base, const SymbolName &c1) const
 
const MaterialPropertyName propertyNameSecond (const MaterialPropertyName &base, const SymbolName &c1, const SymbolName &c2) const
 
const MaterialPropertyName propertyNameSecond (const MaterialPropertyName &base, const SymbolName &c1, const SymbolName &c2) const
 
const MaterialPropertyName propertyNameThird (const MaterialPropertyName &base, const SymbolName &c1, const SymbolName &c2, const SymbolName &c3) const
 
const MaterialPropertyName propertyNameThird (const MaterialPropertyName &base, const SymbolName &c1, const SymbolName &c2, const SymbolName &c3) const
 

Static Public Member Functions

static InputParameters validParams ()
 

Protected Member Functions

void computeQpProperties () override
 

Protected Attributes

const VariableValue_perm_xx
 Permeability components Note: these can only be constant (Real constant Monomial auxvariables) so no AD version. More...
 
const VariableValue_perm_xy
 
const VariableValue_perm_xz
 
const VariableValue_perm_yx
 
const VariableValue_perm_yy
 
const VariableValue_perm_yz
 
const VariableValue_perm_zx
 
const VariableValue_perm_zy
 
const VariableValue_perm_zz
 
 usingPorousFlowPermeabilityBaseMembers
 
GenericMaterialProperty< RealTensorValue, is_ad > & _permeability_qp
 Quadpoint permeability. More...
 
MaterialProperty< std::vector< RealTensorValue > > *const _dpermeability_qp_dvar
 d(quadpoint permeability)/d(PorousFlow variable) More...
 
MaterialProperty< std::vector< std::vector< RealTensorValue > > > *const _dpermeability_qp_dgradvar
 d(quadpoint permeability)/d(grad(PorousFlow variable)) More...
 
const unsigned int _num_phases
 Number of phases. More...
 
const unsigned int _num_components
 Number of fluid components. More...
 
const unsigned int _num_var
 Number of PorousFlow variables. More...
 

Detailed Description

template<bool is_ad>
class PorousFlowPermeabilityConstFromVarTempl< is_ad >

Material to provide permeability taken from a variable.

This material is primarily designed for use with heterogeneous reservoir models where the components of the permeability tensor are provided by an elemental aux variables that do not change. The three diagonal entries corresponding to the x, y, and z directions must be given. Optionally, the off-diagonal components of the full permeability tensor can be given. If they are not provided, they will be initialised to zero.

Definition at line 25 of file PorousFlowPermeabilityConstFromVar.h.

Constructor & Destructor Documentation

◆ PorousFlowPermeabilityConstFromVarTempl()

Definition at line 35 of file PorousFlowPermeabilityConstFromVar.C.

38  _perm_xx(coupledValue("perm_xx")),
39  _perm_xy(coupledValue("perm_xy")),
40  _perm_xz(coupledValue("perm_xz")),
41  _perm_yx(coupledValue("perm_yx")),
42  _perm_yy(coupledValue("perm_yy")),
43  _perm_yz(coupledValue("perm_yz")),
44  _perm_zx(coupledValue("perm_zx")),
45  _perm_zy(coupledValue("perm_zy")),
46  _perm_zz(coupledValue("perm_zz"))
47 {
48 }
Base class Material designed to provide the permeability tensor.
const VariableValue & _perm_xx
Permeability components Note: these can only be constant (Real constant Monomial auxvariables) so no ...

Member Function Documentation

◆ computeQpProperties()

template<bool is_ad>
void PorousFlowPermeabilityConstFromVarTempl< is_ad >::computeQpProperties ( )
overrideprotected

Definition at line 52 of file PorousFlowPermeabilityConstFromVar.C.

53 {
54  const RealTensorValue permeability(_perm_xx[_qp],
55  _perm_xy[_qp],
56  _perm_xz[_qp],
57  _perm_yx[_qp],
58  _perm_yy[_qp],
59  _perm_yz[_qp],
60  _perm_zx[_qp],
61  _perm_zy[_qp],
62  _perm_zz[_qp]);
63 
64  _permeability_qp[_qp] = permeability;
65 
66  if (!is_ad)
67  {
68  (*_dpermeability_qp_dvar)[_qp].resize(_num_var, RealTensorValue());
69  (*_dpermeability_qp_dgradvar)[_qp].resize(LIBMESH_DIM);
70 
71  for (const auto i : make_range(Moose::dim))
72  (*_dpermeability_qp_dgradvar)[_qp][i].resize(_num_var, RealTensorValue());
73  }
74 }
static constexpr std::size_t dim
TensorValue< Real > RealTensorValue
const VariableValue & _perm_xx
Permeability components Note: these can only be constant (Real constant Monomial auxvariables) so no ...
const unsigned int _num_var
Number of PorousFlow variables.
GenericMaterialProperty< RealTensorValue, is_ad > & _permeability_qp
Quadpoint permeability.
IntRange< T > make_range(T beg, T end)

◆ validParams()

template<bool is_ad>
InputParameters PorousFlowPermeabilityConstFromVarTempl< is_ad >::validParams ( )
static

Definition at line 17 of file PorousFlowPermeabilityConstFromVar.C.

18 {
20  params.addRequiredCoupledVar("perm_xx", "The xx component of the permeability tensor");
21  params.addRequiredCoupledVar("perm_yy", "The yy component of the permeability tensor");
22  params.addRequiredCoupledVar("perm_zz", "The zz component of the permeability tensor");
23  params.addCoupledVar("perm_xy", 0.0, "The xy component of the permeability tensor");
24  params.addCoupledVar("perm_xz", 0.0, "The xz component of the permeability tensor");
25  params.addCoupledVar("perm_yx", 0.0, "The yx component of the permeability tensor");
26  params.addCoupledVar("perm_yz", 0.0, "The yz component of the permeability tensor");
27  params.addCoupledVar("perm_zx", 0.0, "The zx component of the permeability tensor");
28  params.addCoupledVar("perm_zy", 0.0, "The zy component of the permeability tensor");
29  params.addClassDescription(
30  "This Material calculates the permeability tensor given by the input variables");
31  return params;
32 }
void addCoupledVar(const std::string &name, const std::string &doc_string)
void addRequiredCoupledVar(const std::string &name, const std::string &doc_string)
void addClassDescription(const std::string &doc_string)

Member Data Documentation

◆ _dpermeability_qp_dgradvar

template<bool is_ad>
MaterialProperty<std::vector<std::vector<RealTensorValue> > >* const PorousFlowPermeabilityBaseTempl< is_ad >::_dpermeability_qp_dgradvar
protectedinherited

d(quadpoint permeability)/d(grad(PorousFlow variable))

Definition at line 33 of file PorousFlowPermeabilityBase.h.

◆ _dpermeability_qp_dvar

template<bool is_ad>
MaterialProperty<std::vector<RealTensorValue> >* const PorousFlowPermeabilityBaseTempl< is_ad >::_dpermeability_qp_dvar
protectedinherited

d(quadpoint permeability)/d(PorousFlow variable)

Definition at line 30 of file PorousFlowPermeabilityBase.h.

◆ _num_components

const unsigned int PorousFlowMaterialVectorBase::_num_components
protectedinherited

◆ _num_phases

const unsigned int PorousFlowMaterialVectorBase::_num_phases
protectedinherited

◆ _num_var

const unsigned int PorousFlowMaterialVectorBase::_num_var
protectedinherited

◆ _perm_xx

template<bool is_ad>
const VariableValue& PorousFlowPermeabilityConstFromVarTempl< is_ad >::_perm_xx
protected

Permeability components Note: these can only be constant (Real constant Monomial auxvariables) so no AD version.

Definition at line 37 of file PorousFlowPermeabilityConstFromVar.h.

◆ _perm_xy

template<bool is_ad>
const VariableValue& PorousFlowPermeabilityConstFromVarTempl< is_ad >::_perm_xy
protected

Definition at line 38 of file PorousFlowPermeabilityConstFromVar.h.

◆ _perm_xz

template<bool is_ad>
const VariableValue& PorousFlowPermeabilityConstFromVarTempl< is_ad >::_perm_xz
protected

Definition at line 39 of file PorousFlowPermeabilityConstFromVar.h.

◆ _perm_yx

template<bool is_ad>
const VariableValue& PorousFlowPermeabilityConstFromVarTempl< is_ad >::_perm_yx
protected

Definition at line 40 of file PorousFlowPermeabilityConstFromVar.h.

◆ _perm_yy

template<bool is_ad>
const VariableValue& PorousFlowPermeabilityConstFromVarTempl< is_ad >::_perm_yy
protected

Definition at line 41 of file PorousFlowPermeabilityConstFromVar.h.

◆ _perm_yz

template<bool is_ad>
const VariableValue& PorousFlowPermeabilityConstFromVarTempl< is_ad >::_perm_yz
protected

Definition at line 42 of file PorousFlowPermeabilityConstFromVar.h.

◆ _perm_zx

template<bool is_ad>
const VariableValue& PorousFlowPermeabilityConstFromVarTempl< is_ad >::_perm_zx
protected

Definition at line 43 of file PorousFlowPermeabilityConstFromVar.h.

◆ _perm_zy

template<bool is_ad>
const VariableValue& PorousFlowPermeabilityConstFromVarTempl< is_ad >::_perm_zy
protected

Definition at line 44 of file PorousFlowPermeabilityConstFromVar.h.

◆ _perm_zz

template<bool is_ad>
const VariableValue& PorousFlowPermeabilityConstFromVarTempl< is_ad >::_perm_zz
protected

Definition at line 45 of file PorousFlowPermeabilityConstFromVar.h.

◆ _permeability_qp

template<bool is_ad>
GenericMaterialProperty<RealTensorValue, is_ad>& PorousFlowPermeabilityBaseTempl< is_ad >::_permeability_qp
protectedinherited

Quadpoint permeability.

Definition at line 27 of file PorousFlowPermeabilityBase.h.

◆ usingPorousFlowPermeabilityBaseMembers

template<bool is_ad>
PorousFlowPermeabilityConstFromVarTempl< is_ad >::usingPorousFlowPermeabilityBaseMembers
protected

Definition at line 47 of file PorousFlowPermeabilityConstFromVar.h.


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