www.mooseframework.org
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 Member Functions

 PoroFullSatTimeDerivative (const InputParameters &parameters)
 

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 27 of file PoroFullSatTimeDerivative.h.

Constructor & Destructor Documentation

◆ PoroFullSatTimeDerivative()

PoroFullSatTimeDerivative::PoroFullSatTimeDerivative ( const InputParameters &  parameters)

Definition at line 29 of file PoroFullSatTimeDerivative.C.

30  : DerivativeMaterialInterface<TimeDerivative>(parameters),
31  _u_old(valueOld()),
32  _volstrain(getMaterialProperty<Real>("volumetric_strain")),
33  _volstrain_old(getMaterialPropertyOld<Real>("volumetric_strain")),
34 
35  _ndisp(coupledComponents("displacements")),
37 
38  _alpha(getMaterialProperty<Real>("biot_coefficient")),
39 
40  _one_over_biot_modulus(getMaterialProperty<Real>("one_over_biot_modulus")),
42  getMaterialPropertyDerivative<Real>("one_over_biot_modulus", _var.name())),
44  getMaterialPropertyDerivative<Real>("one_over_biot_modulus", "volumetric_strain"))
45 {
46  for (unsigned i = 0; i < _ndisp; ++i)
47  _disp_var_num[i] = coupled("displacements", i);
48 }
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 60 of file PoroFullSatTimeDerivative.C.

61 {
62  Real jac = _one_over_biot_modulus[_qp] * _phi[_j][_qp];
63  jac += _done_over_biot_modulus_dP[_qp] * _phi[_j][_qp] * (_u[_qp] - _u_old[_qp]);
64  return _test[_i][_qp] * jac / _dt;
65 }
const VariableValue & _u_old
old value of porepressure
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)

◆ computeQpOffDiagJacobian()

Real PoroFullSatTimeDerivative::computeQpOffDiagJacobian ( unsigned int  jvar)
protectedvirtual

Definition at line 68 of file PoroFullSatTimeDerivative.C.

69 {
70  Real jac = 0;
71  for (unsigned i = 0; i < _ndisp; ++i)
72  if (jvar == _disp_var_num[i])
73  jac = _grad_phi[_j][_qp](i);
74 
75  jac *= _done_over_biot_modulus_dep[_qp] * (_u[_qp] - _u_old[_qp]) + _alpha[_qp];
76 
77  return _test[_i][_qp] * jac / _dt;
78 }
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.
unsigned int _ndisp
number of displacement variables

◆ computeQpResidual()

Real PoroFullSatTimeDerivative::computeQpResidual ( )
protectedvirtual

Definition at line 51 of file PoroFullSatTimeDerivative.C.

52 {
53  // here, "_u" is the porepressure
54  Real res = _one_over_biot_modulus[_qp] * (_u[_qp] - _u_old[_qp]);
55  res += _alpha[_qp] * (_volstrain[_qp] - _volstrain_old[_qp]);
56  return _test[_i][_qp] * res / _dt;
57 }
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

Member Data Documentation

◆ _alpha

const MaterialProperty<Real>& PoroFullSatTimeDerivative::_alpha
private

Biot coefficient.

Definition at line 56 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 53 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 65 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 62 of file PoroFullSatTimeDerivative.h.

Referenced by computeQpJacobian().

◆ _ndisp

unsigned int PoroFullSatTimeDerivative::_ndisp
private

number of displacement variables

Definition at line 50 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 59 of file PoroFullSatTimeDerivative.h.

Referenced by computeQpJacobian(), and computeQpResidual().

◆ _u_old

const VariableValue& PoroFullSatTimeDerivative::_u_old
private

old value of porepressure

Definition at line 41 of file PoroFullSatTimeDerivative.h.

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

◆ _volstrain

const MaterialProperty<Real>& PoroFullSatTimeDerivative::_volstrain
private

volumetric strain

Definition at line 44 of file PoroFullSatTimeDerivative.h.

Referenced by computeQpResidual().

◆ _volstrain_old

const MaterialProperty<Real>& PoroFullSatTimeDerivative::_volstrain_old
private

old value of volumetric strain

Definition at line 47 of file PoroFullSatTimeDerivative.h.

Referenced by computeQpResidual().


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