www.mooseframework.org
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Private Attributes | List of all members
PoroFullSatTimeDerivative Class Reference

Kernel = biot_coefficient*d(volumetric_strain)/dt + (1/biot_modulus)*d(porepressure)/dt this is the time-derivative for poromechanics for a single-phase, fully-saturated fluid with constant bulk modulus. More...

#include <PoroFullSatTimeDerivative.h>

Inheritance diagram for PoroFullSatTimeDerivative:
[legend]

Public Types

typedef DerivativeMaterialPropertyNameInterface::SymbolName SymbolName
 

Public Member Functions

 PoroFullSatTimeDerivative (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

virtual Real computeQpResidual ()
 
virtual Real computeQpJacobian ()
 
virtual Real computeQpOffDiagJacobian (unsigned int jvar)
 

Private Attributes

const VariableValue_u_old
 old value of porepressure More...
 
const MaterialProperty< Real > & _volstrain
 volumetric strain More...
 
const MaterialProperty< Real > & _volstrain_old
 old value of volumetric strain More...
 
unsigned int _ndisp
 number of displacement variables More...
 
std::vector< unsigned int_disp_var_num
 variable number of the displacements variables More...
 
const MaterialProperty< Real > & _alpha
 Biot coefficient. More...
 
const MaterialProperty< Real > & _one_over_biot_modulus
 1/M, where M is the Biot modulus More...
 
const MaterialProperty< Real > & _done_over_biot_modulus_dP
 d(1/M)/d(porepressure) More...
 
const MaterialProperty< Real > & _done_over_biot_modulus_dep
 d(1/M)/d(volumetric strain) More...
 

Detailed Description

Kernel = biot_coefficient*d(volumetric_strain)/dt + (1/biot_modulus)*d(porepressure)/dt this is the time-derivative for poromechanics for a single-phase, fully-saturated fluid with constant bulk modulus.

Definition at line 22 of file PoroFullSatTimeDerivative.h.

Constructor & Destructor Documentation

◆ PoroFullSatTimeDerivative()

PoroFullSatTimeDerivative::PoroFullSatTimeDerivative ( const InputParameters parameters)

Definition at line 28 of file PoroFullSatTimeDerivative.C.

30  _u_old(valueOld()),
31  _volstrain(getMaterialProperty<Real>("volumetric_strain")),
32  _volstrain_old(getMaterialPropertyOld<Real>("volumetric_strain")),
33 
34  _ndisp(coupledComponents("displacements")),
36 
37  _alpha(getMaterialProperty<Real>("biot_coefficient")),
38 
39  _one_over_biot_modulus(getMaterialProperty<Real>("one_over_biot_modulus")),
41  getMaterialPropertyDerivative<Real>("one_over_biot_modulus", _var.name())),
43  getMaterialPropertyDerivative<Real>("one_over_biot_modulus", "volumetric_strain"))
44 {
45  for (unsigned i = 0; i < _ndisp; ++i)
46  _disp_var_num[i] = coupled("displacements", i);
47 }
const MaterialProperty< Real > & _done_over_biot_modulus_dep
d(1/M)/d(volumetric strain)
const VariableValue & _u_old
old value of porepressure
std::vector< unsigned int > _disp_var_num
variable number of the displacements variables
const MaterialProperty< Real > & _volstrain
volumetric strain
const MaterialProperty< Real > & _alpha
Biot coefficient.
const MaterialProperty< Real > & _volstrain_old
old value of volumetric strain
const MaterialProperty< Real > & _one_over_biot_modulus
1/M, where M is the Biot modulus
const MaterialProperty< Real > & _done_over_biot_modulus_dP
d(1/M)/d(porepressure)
unsigned int _ndisp
number of displacement variables

Member Function Documentation

◆ computeQpJacobian()

Real PoroFullSatTimeDerivative::computeQpJacobian ( )
protectedvirtual

Definition at line 59 of file PoroFullSatTimeDerivative.C.

60 {
61  Real jac = _one_over_biot_modulus[_qp] * _phi[_j][_qp];
62  jac += _done_over_biot_modulus_dP[_qp] * _phi[_j][_qp] * (_u[_qp] - _u_old[_qp]);
63  return _test[_i][_qp] * jac / _dt;
64 }
const VariableValue & _u_old
old value of porepressure
const MaterialProperty< Real > & _one_over_biot_modulus
1/M, where M is the Biot modulus
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
const MaterialProperty< Real > & _done_over_biot_modulus_dP
d(1/M)/d(porepressure)

◆ computeQpOffDiagJacobian()

Real PoroFullSatTimeDerivative::computeQpOffDiagJacobian ( unsigned int  jvar)
protectedvirtual

Definition at line 67 of file PoroFullSatTimeDerivative.C.

68 {
69  Real jac = 0;
70  for (unsigned i = 0; i < _ndisp; ++i)
71  if (jvar == _disp_var_num[i])
72  jac = _grad_phi[_j][_qp](i);
73 
74  jac *= _done_over_biot_modulus_dep[_qp] * (_u[_qp] - _u_old[_qp]) + _alpha[_qp];
75 
76  return _test[_i][_qp] * jac / _dt;
77 }
const MaterialProperty< Real > & _done_over_biot_modulus_dep
d(1/M)/d(volumetric strain)
const VariableValue & _u_old
old value of porepressure
std::vector< unsigned int > _disp_var_num
variable number of the displacements variables
const MaterialProperty< Real > & _alpha
Biot coefficient.
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
unsigned int _ndisp
number of displacement variables

◆ computeQpResidual()

Real PoroFullSatTimeDerivative::computeQpResidual ( )
protectedvirtual

Definition at line 50 of file PoroFullSatTimeDerivative.C.

51 {
52  // here, "_u" is the porepressure
53  Real res = _one_over_biot_modulus[_qp] * (_u[_qp] - _u_old[_qp]);
54  res += _alpha[_qp] * (_volstrain[_qp] - _volstrain_old[_qp]);
55  return _test[_i][_qp] * res / _dt;
56 }
const VariableValue & _u_old
old value of porepressure
const MaterialProperty< Real > & _volstrain
volumetric strain
const MaterialProperty< Real > & _alpha
Biot coefficient.
const MaterialProperty< Real > & _volstrain_old
old value of volumetric strain
const MaterialProperty< Real > & _one_over_biot_modulus
1/M, where M is the Biot modulus
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real

◆ validParams()

InputParameters PoroFullSatTimeDerivative::validParams ( )
static

Definition at line 15 of file PoroFullSatTimeDerivative.C.

16 {
18  params.addRequiredCoupledVar(
19  "displacements",
20  "The displacements appropriate for the simulation geometry and coordinate system");
21  params.addClassDescription("Kernel = biot_coefficient*d(volumetric_strain)/dt + "
22  "(1/biot_modulus)*d(porepressure)/dt. This is the time-derivative "
23  "for poromechanics for a single-phase, fully-saturated fluid with "
24  "constant bulk modulus");
25  return params;
26 }
static InputParameters validParams()
void addRequiredCoupledVar(const std::string &name, const std::string &doc_string)
void addClassDescription(const std::string &doc_string)

Member Data Documentation

◆ _alpha

const MaterialProperty<Real>& PoroFullSatTimeDerivative::_alpha
private

Biot coefficient.

Definition at line 53 of file PoroFullSatTimeDerivative.h.

Referenced by computeQpOffDiagJacobian(), and computeQpResidual().

◆ _disp_var_num

std::vector<unsigned int> PoroFullSatTimeDerivative::_disp_var_num
private

variable number of the displacements variables

Definition at line 50 of file PoroFullSatTimeDerivative.h.

Referenced by computeQpOffDiagJacobian(), and PoroFullSatTimeDerivative().

◆ _done_over_biot_modulus_dep

const MaterialProperty<Real>& PoroFullSatTimeDerivative::_done_over_biot_modulus_dep
private

d(1/M)/d(volumetric strain)

Definition at line 62 of file PoroFullSatTimeDerivative.h.

Referenced by computeQpOffDiagJacobian().

◆ _done_over_biot_modulus_dP

const MaterialProperty<Real>& PoroFullSatTimeDerivative::_done_over_biot_modulus_dP
private

d(1/M)/d(porepressure)

Definition at line 59 of file PoroFullSatTimeDerivative.h.

Referenced by computeQpJacobian().

◆ _ndisp

unsigned int PoroFullSatTimeDerivative::_ndisp
private

number of displacement variables

Definition at line 47 of file PoroFullSatTimeDerivative.h.

Referenced by computeQpOffDiagJacobian(), and PoroFullSatTimeDerivative().

◆ _one_over_biot_modulus

const MaterialProperty<Real>& PoroFullSatTimeDerivative::_one_over_biot_modulus
private

1/M, where M is the Biot modulus

Definition at line 56 of file PoroFullSatTimeDerivative.h.

Referenced by computeQpJacobian(), and computeQpResidual().

◆ _u_old

const VariableValue& PoroFullSatTimeDerivative::_u_old
private

old value of porepressure

Definition at line 38 of file PoroFullSatTimeDerivative.h.

Referenced by computeQpJacobian(), computeQpOffDiagJacobian(), and computeQpResidual().

◆ _volstrain

const MaterialProperty<Real>& PoroFullSatTimeDerivative::_volstrain
private

volumetric strain

Definition at line 41 of file PoroFullSatTimeDerivative.h.

Referenced by computeQpResidual().

◆ _volstrain_old

const MaterialProperty<Real>& PoroFullSatTimeDerivative::_volstrain_old
private

old value of volumetric strain

Definition at line 44 of file PoroFullSatTimeDerivative.h.

Referenced by computeQpResidual().


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