www.mooseframework.org
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
PoroFullSatMaterial Class Reference

Material designed to calculate and store all the quantities needed for the fluid-flow part of poromechanics, assuming a fully-saturated, single-phase fluid with constant bulk modulus. More...

#include <PoroFullSatMaterial.h>

Inheritance diagram for PoroFullSatMaterial:
[legend]

Public Member Functions

 PoroFullSatMaterial (const InputParameters &parameters)
 

Protected Member Functions

virtual void initQpStatefulProperties ()
 
virtual void computeQpProperties ()
 

Protected Attributes

Real _phi0
 porosity at zero porepressure and volumetric strain More...
 
Real _alpha
 Biot coefficient. More...
 
Real _one_over_K
 1/K, where K is the solid bulk modulus. Usually 1/K = C_iijj, where C is the compliance matrix: strain_ij = C_ijkl stress_kl More...
 
Real _one_over_Kf
 1/Kf, where Kf is the fluid bulk modulus. More...
 
bool _constant_porosity
 whether to use constant porosity (set _porosity = _phi0 always) More...
 
const VariableValue & _porepressure
 porepressure variable More...
 
std::string _porepressure_name
 name given by user to the porepressure variable More...
 
unsigned int _ndisp
 number of displacement variables supplied More...
 
std::vector< const VariableGradient * > _grad_disp
 grad(displacement) More...
 
MaterialProperty< Real > & _vol_strain
 volumetric strain = strain_ii More...
 
MaterialProperty< Real > & _biot_coefficient
 Biot coefficient. More...
 
MaterialProperty< Real > & _porosity
 porosity More...
 
MaterialProperty< Real > & _dporosity_dP
 d(porosity)/d(porepressure) More...
 
MaterialProperty< Real > & _dporosity_dep
 d(porosity)/d(volumetric_strain) More...
 
MaterialProperty< Real > & _one_over_biot_modulus
 1/M, where M is the Biot modulus More...
 
MaterialProperty< Real > & _done_over_biot_modulus_dP
 d(1/M)/d(porepressure) More...
 
MaterialProperty< Real > & _done_over_biot_modulus_dep
 d(1/M)/d(volumetric_strain) More...
 

Detailed Description

Material designed to calculate and store all the quantities needed for the fluid-flow part of poromechanics, assuming a fully-saturated, single-phase fluid with constant bulk modulus.

Definition at line 28 of file PoroFullSatMaterial.h.

Constructor & Destructor Documentation

◆ PoroFullSatMaterial()

PoroFullSatMaterial::PoroFullSatMaterial ( const InputParameters &  parameters)

Definition at line 45 of file PoroFullSatMaterial.C.

46  : DerivativeMaterialInterface<Material>(parameters),
47 
48  _phi0(getParam<Real>("porosity0")),
49  _alpha(getParam<Real>("biot_coefficient")),
50  _one_over_K(getParam<Real>("solid_bulk_compliance")),
51  _one_over_Kf(getParam<Real>("fluid_bulk_compliance")),
52  _constant_porosity(getParam<bool>("constant_porosity")),
53 
54  _porepressure(coupledValue("porepressure")),
55  _porepressure_name(getVar("porepressure", 0)->name()),
56 
57  _ndisp(coupledComponents("displacements")),
59 
60  _vol_strain(declareProperty<Real>("volumetric_strain")),
61 
62  _biot_coefficient(declareProperty<Real>("biot_coefficient")),
63 
64  _porosity(declareProperty<Real>("porosity")),
65  _dporosity_dP(declarePropertyDerivative<Real>("porosity", _porepressure_name)),
66  _dporosity_dep(declarePropertyDerivative<Real>("porosity", "volumetric_strain")),
67 
68  _one_over_biot_modulus(declareProperty<Real>("one_over_biot_modulus")),
70  declarePropertyDerivative<Real>("one_over_biot_modulus", _porepressure_name)),
72  declarePropertyDerivative<Real>("one_over_biot_modulus", "volumetric_strain"))
73 {
74  for (unsigned int i = 0; i < _ndisp; ++i)
75  _grad_disp[i] = &coupledGradient("displacements", i);
76 }
unsigned int _ndisp
number of displacement variables supplied
Real _one_over_K
1/K, where K is the solid bulk modulus. Usually 1/K = C_iijj, where C is the compliance matrix: strai...
MaterialProperty< Real > & _one_over_biot_modulus
1/M, where M is the Biot modulus
bool _constant_porosity
whether to use constant porosity (set _porosity = _phi0 always)
MaterialProperty< Real > & _biot_coefficient
Biot coefficient.
std::string _porepressure_name
name given by user to the porepressure variable
MaterialProperty< Real > & _done_over_biot_modulus_dep
d(1/M)/d(volumetric_strain)
Real _alpha
Biot coefficient.
std::vector< const VariableGradient * > _grad_disp
grad(displacement)
const VariableValue & _porepressure
porepressure variable
Real _one_over_Kf
1/Kf, where Kf is the fluid bulk modulus.
MaterialProperty< Real > & _vol_strain
volumetric strain = strain_ii
Real _phi0
porosity at zero porepressure and volumetric strain
MaterialProperty< Real > & _porosity
porosity
MaterialProperty< Real > & _dporosity_dep
d(porosity)/d(volumetric_strain)
MaterialProperty< Real > & _dporosity_dP
d(porosity)/d(porepressure)
MaterialProperty< Real > & _done_over_biot_modulus_dP
d(1/M)/d(porepressure)

Member Function Documentation

◆ computeQpProperties()

void PoroFullSatMaterial::computeQpProperties ( )
protectedvirtual

Definition at line 85 of file PoroFullSatMaterial.C.

86 {
88 
89  _vol_strain[_qp] = 0;
90  for (unsigned i = 0; i < _ndisp; ++i)
91  _vol_strain[_qp] += (*_grad_disp[i])[_qp](i); // cartesian coordinates?
92 
94  {
95  _porosity[_qp] = _phi0;
96  _dporosity_dP[_qp] = 0;
97  _dporosity_dep[_qp] = 0;
98 
100  (1 - _alpha) * (_alpha - _porosity[_qp]) * _one_over_K + _porosity[_qp] * _one_over_Kf;
103  }
104  else
105  {
106  _porosity[_qp] = _alpha +
107  (_phi0 - _alpha) * std::exp(-(1 - _alpha) * _one_over_K * _porepressure[_qp] -
108  _vol_strain[_qp]);
109  _dporosity_dP[_qp] =
110  (_phi0 - _alpha) * (_alpha - 1) * _one_over_K *
111  std::exp(-(1 - _alpha) * _one_over_K * _porepressure[_qp] - _vol_strain[_qp]);
112  _dporosity_dep[_qp] =
113  -(_phi0 - _alpha) *
114  std::exp(-(1 - _alpha) * _one_over_K * _porepressure[_qp] - _vol_strain[_qp]);
115 
117  (1 - _alpha) * (_alpha - _porosity[_qp]) * _one_over_K + _porosity[_qp] * _one_over_Kf;
119  -(1 - _alpha) * _dporosity_dP[_qp] * _one_over_K + _dporosity_dP[_qp] * _one_over_Kf;
122  }
123 }
unsigned int _ndisp
number of displacement variables supplied
Real _one_over_K
1/K, where K is the solid bulk modulus. Usually 1/K = C_iijj, where C is the compliance matrix: strai...
MaterialProperty< Real > & _one_over_biot_modulus
1/M, where M is the Biot modulus
bool _constant_porosity
whether to use constant porosity (set _porosity = _phi0 always)
MaterialProperty< Real > & _biot_coefficient
Biot coefficient.
MaterialProperty< Real > & _done_over_biot_modulus_dep
d(1/M)/d(volumetric_strain)
Real _alpha
Biot coefficient.
std::vector< const VariableGradient * > _grad_disp
grad(displacement)
const VariableValue & _porepressure
porepressure variable
Real _one_over_Kf
1/Kf, where Kf is the fluid bulk modulus.
MaterialProperty< Real > & _vol_strain
volumetric strain = strain_ii
Real _phi0
porosity at zero porepressure and volumetric strain
MaterialProperty< Real > & _porosity
porosity
MaterialProperty< Real > & _dporosity_dep
d(porosity)/d(volumetric_strain)
MaterialProperty< Real > & _dporosity_dP
d(porosity)/d(porepressure)
MaterialProperty< Real > & _done_over_biot_modulus_dP
d(1/M)/d(porepressure)

◆ initQpStatefulProperties()

void PoroFullSatMaterial::initQpStatefulProperties ( )
protectedvirtual

Definition at line 79 of file PoroFullSatMaterial.C.

80 {
81  _vol_strain[_qp] = 0.0;
82 }
MaterialProperty< Real > & _vol_strain
volumetric strain = strain_ii

Member Data Documentation

◆ _alpha

Real PoroFullSatMaterial::_alpha
protected

Biot coefficient.

Definition at line 38 of file PoroFullSatMaterial.h.

Referenced by computeQpProperties().

◆ _biot_coefficient

MaterialProperty<Real>& PoroFullSatMaterial::_biot_coefficient
protected

Biot coefficient.

Definition at line 65 of file PoroFullSatMaterial.h.

Referenced by computeQpProperties().

◆ _constant_porosity

bool PoroFullSatMaterial::_constant_porosity
protected

whether to use constant porosity (set _porosity = _phi0 always)

Definition at line 47 of file PoroFullSatMaterial.h.

Referenced by computeQpProperties().

◆ _done_over_biot_modulus_dep

MaterialProperty<Real>& PoroFullSatMaterial::_done_over_biot_modulus_dep
protected

d(1/M)/d(volumetric_strain)

Definition at line 83 of file PoroFullSatMaterial.h.

Referenced by computeQpProperties().

◆ _done_over_biot_modulus_dP

MaterialProperty<Real>& PoroFullSatMaterial::_done_over_biot_modulus_dP
protected

d(1/M)/d(porepressure)

Definition at line 80 of file PoroFullSatMaterial.h.

Referenced by computeQpProperties().

◆ _dporosity_dep

MaterialProperty<Real>& PoroFullSatMaterial::_dporosity_dep
protected

d(porosity)/d(volumetric_strain)

Definition at line 74 of file PoroFullSatMaterial.h.

Referenced by computeQpProperties().

◆ _dporosity_dP

MaterialProperty<Real>& PoroFullSatMaterial::_dporosity_dP
protected

d(porosity)/d(porepressure)

Definition at line 71 of file PoroFullSatMaterial.h.

Referenced by computeQpProperties().

◆ _grad_disp

std::vector<const VariableGradient *> PoroFullSatMaterial::_grad_disp
protected

grad(displacement)

Definition at line 59 of file PoroFullSatMaterial.h.

Referenced by computeQpProperties(), and PoroFullSatMaterial().

◆ _ndisp

unsigned int PoroFullSatMaterial::_ndisp
protected

number of displacement variables supplied

Definition at line 56 of file PoroFullSatMaterial.h.

Referenced by computeQpProperties(), and PoroFullSatMaterial().

◆ _one_over_biot_modulus

MaterialProperty<Real>& PoroFullSatMaterial::_one_over_biot_modulus
protected

1/M, where M is the Biot modulus

Definition at line 77 of file PoroFullSatMaterial.h.

Referenced by computeQpProperties().

◆ _one_over_K

Real PoroFullSatMaterial::_one_over_K
protected

1/K, where K is the solid bulk modulus. Usually 1/K = C_iijj, where C is the compliance matrix: strain_ij = C_ijkl stress_kl

Definition at line 41 of file PoroFullSatMaterial.h.

Referenced by computeQpProperties().

◆ _one_over_Kf

Real PoroFullSatMaterial::_one_over_Kf
protected

1/Kf, where Kf is the fluid bulk modulus.

Definition at line 44 of file PoroFullSatMaterial.h.

Referenced by computeQpProperties().

◆ _phi0

Real PoroFullSatMaterial::_phi0
protected

porosity at zero porepressure and volumetric strain

Definition at line 35 of file PoroFullSatMaterial.h.

Referenced by computeQpProperties().

◆ _porepressure

const VariableValue& PoroFullSatMaterial::_porepressure
protected

porepressure variable

Definition at line 50 of file PoroFullSatMaterial.h.

Referenced by computeQpProperties().

◆ _porepressure_name

std::string PoroFullSatMaterial::_porepressure_name
protected

name given by user to the porepressure variable

Definition at line 53 of file PoroFullSatMaterial.h.

◆ _porosity

MaterialProperty<Real>& PoroFullSatMaterial::_porosity
protected

porosity

Definition at line 68 of file PoroFullSatMaterial.h.

Referenced by computeQpProperties().

◆ _vol_strain

MaterialProperty<Real>& PoroFullSatMaterial::_vol_strain
protected

volumetric strain = strain_ii

Definition at line 62 of file PoroFullSatMaterial.h.

Referenced by computeQpProperties(), and initQpStatefulProperties().


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