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

Constructor & Destructor Documentation

PoroFullSatTimeDerivative::PoroFullSatTimeDerivative ( const InputParameters &  parameters)

Definition at line 25 of file PoroFullSatTimeDerivative.C.

26  : DerivativeMaterialInterface<TimeDerivative>(parameters),
27  _u_old(valueOld()),
28  _volstrain(getMaterialProperty<Real>("volumetric_strain")),
29  _volstrain_old(getMaterialPropertyOld<Real>("volumetric_strain")),
30 
31  _ndisp(coupledComponents("displacements")),
33 
34  _alpha(getMaterialProperty<Real>("biot_coefficient")),
35 
36  _one_over_biot_modulus(getMaterialProperty<Real>("one_over_biot_modulus")),
38  getMaterialPropertyDerivative<Real>("one_over_biot_modulus", _var.name())),
40  getMaterialPropertyDerivative<Real>("one_over_biot_modulus", "volumetric_strain"))
41 {
42  for (unsigned i = 0; i < _ndisp; ++i)
43  _disp_var_num[i] = coupled("displacements", i);
44 }
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

Real PoroFullSatTimeDerivative::computeQpJacobian ( )
protectedvirtual

Definition at line 56 of file PoroFullSatTimeDerivative.C.

57 {
58  Real jac = _one_over_biot_modulus[_qp] * _phi[_j][_qp];
59  jac += _done_over_biot_modulus_dP[_qp] * _phi[_j][_qp] * (_u[_qp] - _u_old[_qp]);
60  return _test[_i][_qp] * jac / _dt;
61 }
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)
Real PoroFullSatTimeDerivative::computeQpOffDiagJacobian ( unsigned int  jvar)
protectedvirtual

Definition at line 64 of file PoroFullSatTimeDerivative.C.

65 {
66  Real jac = 0;
67  for (unsigned i = 0; i < _ndisp; ++i)
68  if (jvar == _disp_var_num[i])
69  jac = _grad_phi[_j][_qp](i);
70 
71  jac *= _done_over_biot_modulus_dep[_qp] * (_u[_qp] - _u_old[_qp]) + _alpha[_qp];
72 
73  return _test[_i][_qp] * jac / _dt;
74 }
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
Real PoroFullSatTimeDerivative::computeQpResidual ( )
protectedvirtual

Definition at line 47 of file PoroFullSatTimeDerivative.C.

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

const MaterialProperty<Real>& PoroFullSatTimeDerivative::_alpha
private

Biot coefficient.

Definition at line 54 of file PoroFullSatTimeDerivative.h.

Referenced by computeQpOffDiagJacobian(), and computeQpResidual().

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

variable number of the displacements variables

Definition at line 51 of file PoroFullSatTimeDerivative.h.

Referenced by computeQpOffDiagJacobian(), and PoroFullSatTimeDerivative().

const MaterialProperty<Real>& PoroFullSatTimeDerivative::_done_over_biot_modulus_dep
private

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

Definition at line 63 of file PoroFullSatTimeDerivative.h.

Referenced by computeQpOffDiagJacobian().

const MaterialProperty<Real>& PoroFullSatTimeDerivative::_done_over_biot_modulus_dP
private

d(1/M)/d(porepressure)

Definition at line 60 of file PoroFullSatTimeDerivative.h.

Referenced by computeQpJacobian().

unsigned int PoroFullSatTimeDerivative::_ndisp
private

number of displacement variables

Definition at line 48 of file PoroFullSatTimeDerivative.h.

Referenced by computeQpOffDiagJacobian(), and PoroFullSatTimeDerivative().

const MaterialProperty<Real>& PoroFullSatTimeDerivative::_one_over_biot_modulus
private

1/M, where M is the Biot modulus

Definition at line 57 of file PoroFullSatTimeDerivative.h.

Referenced by computeQpJacobian(), and computeQpResidual().

const VariableValue& PoroFullSatTimeDerivative::_u_old
private

old value of porepressure

Definition at line 39 of file PoroFullSatTimeDerivative.h.

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

const MaterialProperty<Real>& PoroFullSatTimeDerivative::_volstrain
private

volumetric strain

Definition at line 42 of file PoroFullSatTimeDerivative.h.

Referenced by computeQpResidual().

const MaterialProperty<Real>& PoroFullSatTimeDerivative::_volstrain_old
private

old value of volumetric strain

Definition at line 45 of file PoroFullSatTimeDerivative.h.

Referenced by computeQpResidual().


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