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 26 of file PoroFullSatMaterial.h.

Constructor & Destructor Documentation

PoroFullSatMaterial::PoroFullSatMaterial ( const InputParameters &  parameters)

Definition at line 41 of file PoroFullSatMaterial.C.

42  : DerivativeMaterialInterface<Material>(parameters),
43 
44  _phi0(getParam<Real>("porosity0")),
45  _alpha(getParam<Real>("biot_coefficient")),
46  _one_over_K(getParam<Real>("solid_bulk_compliance")),
47  _one_over_Kf(getParam<Real>("fluid_bulk_compliance")),
48  _constant_porosity(getParam<bool>("constant_porosity")),
49 
50  _porepressure(coupledValue("porepressure")),
51  _porepressure_name(getVar("porepressure", 0)->name()),
52 
53  _ndisp(coupledComponents("displacements")),
55 
56  _vol_strain(declareProperty<Real>("volumetric_strain")),
57 
58  _biot_coefficient(declareProperty<Real>("biot_coefficient")),
59 
60  _porosity(declareProperty<Real>("porosity")),
61  _dporosity_dP(declarePropertyDerivative<Real>("porosity", _porepressure_name)),
62  _dporosity_dep(declarePropertyDerivative<Real>("porosity", "volumetric_strain")),
63 
64  _one_over_biot_modulus(declareProperty<Real>("one_over_biot_modulus")),
66  declarePropertyDerivative<Real>("one_over_biot_modulus", _porepressure_name)),
68  declarePropertyDerivative<Real>("one_over_biot_modulus", "volumetric_strain"))
69 {
70  for (unsigned int i = 0; i < _ndisp; ++i)
71  _grad_disp[i] = &coupledGradient("displacements", i);
72 }
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

void PoroFullSatMaterial::computeQpProperties ( )
protectedvirtual

Definition at line 81 of file PoroFullSatMaterial.C.

82 {
84 
85  _vol_strain[_qp] = 0;
86  for (unsigned i = 0; i < _ndisp; ++i)
87  _vol_strain[_qp] += (*_grad_disp[i])[_qp](i); // cartesian coordinates?
88 
90  {
91  _porosity[_qp] = _phi0;
92  _dporosity_dP[_qp] = 0;
93  _dporosity_dep[_qp] = 0;
94 
96  (1 - _alpha) * (_alpha - _porosity[_qp]) * _one_over_K + _porosity[_qp] * _one_over_Kf;
99  }
100  else
101  {
102  _porosity[_qp] = _alpha +
103  (_phi0 - _alpha) * std::exp(-(1 - _alpha) * _one_over_K * _porepressure[_qp] -
104  _vol_strain[_qp]);
105  _dporosity_dP[_qp] =
106  (_phi0 - _alpha) * (_alpha - 1) * _one_over_K *
107  std::exp(-(1 - _alpha) * _one_over_K * _porepressure[_qp] - _vol_strain[_qp]);
108  _dporosity_dep[_qp] =
109  -(_phi0 - _alpha) *
110  std::exp(-(1 - _alpha) * _one_over_K * _porepressure[_qp] - _vol_strain[_qp]);
111 
113  (1 - _alpha) * (_alpha - _porosity[_qp]) * _one_over_K + _porosity[_qp] * _one_over_Kf;
115  -(1 - _alpha) * _dporosity_dP[_qp] * _one_over_K + _dporosity_dP[_qp] * _one_over_Kf;
117  -(1 - _alpha) * _dporosity_dep[_qp] * _one_over_K + _dporosity_dep[_qp] * _one_over_Kf;
118  }
119 }
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)
void PoroFullSatMaterial::initQpStatefulProperties ( )
protectedvirtual

Definition at line 75 of file PoroFullSatMaterial.C.

76 {
77  _vol_strain[_qp] = 0.0;
78 }
MaterialProperty< Real > & _vol_strain
volumetric strain = strain_ii

Member Data Documentation

Real PoroFullSatMaterial::_alpha
protected

Biot coefficient.

Definition at line 36 of file PoroFullSatMaterial.h.

Referenced by computeQpProperties().

MaterialProperty<Real>& PoroFullSatMaterial::_biot_coefficient
protected

Biot coefficient.

Definition at line 63 of file PoroFullSatMaterial.h.

Referenced by computeQpProperties().

bool PoroFullSatMaterial::_constant_porosity
protected

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

Definition at line 45 of file PoroFullSatMaterial.h.

Referenced by computeQpProperties().

MaterialProperty<Real>& PoroFullSatMaterial::_done_over_biot_modulus_dep
protected

d(1/M)/d(volumetric_strain)

Definition at line 81 of file PoroFullSatMaterial.h.

Referenced by computeQpProperties().

MaterialProperty<Real>& PoroFullSatMaterial::_done_over_biot_modulus_dP
protected

d(1/M)/d(porepressure)

Definition at line 78 of file PoroFullSatMaterial.h.

Referenced by computeQpProperties().

MaterialProperty<Real>& PoroFullSatMaterial::_dporosity_dep
protected

d(porosity)/d(volumetric_strain)

Definition at line 72 of file PoroFullSatMaterial.h.

Referenced by computeQpProperties().

MaterialProperty<Real>& PoroFullSatMaterial::_dporosity_dP
protected

d(porosity)/d(porepressure)

Definition at line 69 of file PoroFullSatMaterial.h.

Referenced by computeQpProperties().

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

grad(displacement)

Definition at line 57 of file PoroFullSatMaterial.h.

Referenced by computeQpProperties(), and PoroFullSatMaterial().

unsigned int PoroFullSatMaterial::_ndisp
protected

number of displacement variables supplied

Definition at line 54 of file PoroFullSatMaterial.h.

Referenced by computeQpProperties(), and PoroFullSatMaterial().

MaterialProperty<Real>& PoroFullSatMaterial::_one_over_biot_modulus
protected

1/M, where M is the Biot modulus

Definition at line 75 of file PoroFullSatMaterial.h.

Referenced by computeQpProperties().

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 39 of file PoroFullSatMaterial.h.

Referenced by computeQpProperties().

Real PoroFullSatMaterial::_one_over_Kf
protected

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

Definition at line 42 of file PoroFullSatMaterial.h.

Referenced by computeQpProperties().

Real PoroFullSatMaterial::_phi0
protected

porosity at zero porepressure and volumetric strain

Definition at line 33 of file PoroFullSatMaterial.h.

Referenced by computeQpProperties().

const VariableValue& PoroFullSatMaterial::_porepressure
protected

porepressure variable

Definition at line 48 of file PoroFullSatMaterial.h.

Referenced by computeQpProperties().

std::string PoroFullSatMaterial::_porepressure_name
protected

name given by user to the porepressure variable

Definition at line 51 of file PoroFullSatMaterial.h.

MaterialProperty<Real>& PoroFullSatMaterial::_porosity
protected

porosity

Definition at line 66 of file PoroFullSatMaterial.h.

Referenced by computeQpProperties().

MaterialProperty<Real>& PoroFullSatMaterial::_vol_strain
protected

volumetric strain = strain_ii

Definition at line 60 of file PoroFullSatMaterial.h.

Referenced by computeQpProperties(), and initQpStatefulProperties().


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