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

PorousFlowEffectiveStressCoupling computes -coefficient*effective_porepressure*grad_component(test) where component is the spatial component (not a fluid component!) More...

#include <PorousFlowEffectiveStressCoupling.h>

Inheritance diagram for PorousFlowEffectiveStressCoupling:
[legend]

Public Member Functions

 PorousFlowEffectiveStressCoupling (const InputParameters &parameters)
 

Protected Member Functions

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

Protected Attributes

const PorousFlowDictator_dictator
 The Porous-Flow dictator that holds global info about the simulation. More...
 
const Real _coefficient
 Biot coefficient. More...
 
const unsigned int _component
 the spatial component More...
 
const MaterialProperty< Real > & _pf
 effective porepressure More...
 
const MaterialProperty< std::vector< Real > > & _dpf_dvar
 d(effective porepressure)/(d porflow variable) More...
 
const bool _rz
 Whether an RZ coordinate system is being used. More...
 

Detailed Description

PorousFlowEffectiveStressCoupling computes -coefficient*effective_porepressure*grad_component(test) where component is the spatial component (not a fluid component!)

Definition at line 25 of file PorousFlowEffectiveStressCoupling.h.

Constructor & Destructor Documentation

PorousFlowEffectiveStressCoupling::PorousFlowEffectiveStressCoupling ( const InputParameters &  parameters)

Definition at line 30 of file PorousFlowEffectiveStressCoupling.C.

32  : Kernel(parameters),
33  _dictator(getUserObject<PorousFlowDictator>("PorousFlowDictator")),
34  _coefficient(getParam<Real>("biot_coefficient")),
35  _component(getParam<unsigned int>("component")),
36  _pf(getMaterialProperty<Real>("PorousFlow_effective_fluid_pressure_qp")),
37  _dpf_dvar(
38  getMaterialProperty<std::vector<Real>>("dPorousFlow_effective_fluid_pressure_qp_dvar")),
39  _rz(getBlockCoordSystem() == Moose::COORD_RZ)
40 {
41  if (_component >= _mesh.dimension())
42  mooseError("PorousFlowEffectiveStressCoupling: component should not be greater than the mesh "
43  "dimension");
44 }
const MaterialProperty< Real > & _pf
effective porepressure
const PorousFlowDictator & _dictator
The Porous-Flow dictator that holds global info about the simulation.
const unsigned int _component
the spatial component
const MaterialProperty< std::vector< Real > > & _dpf_dvar
d(effective porepressure)/(d porflow variable)
const bool _rz
Whether an RZ coordinate system is being used.

Member Function Documentation

Real PorousFlowEffectiveStressCoupling::computeQpJacobian ( )
overrideprotectedvirtual

Definition at line 55 of file PorousFlowEffectiveStressCoupling.C.

56 {
57  if (_dictator.notPorousFlowVariable(_var.number()))
58  return 0.0;
59  const unsigned int pvar = _dictator.porousFlowVariableNum(_var.number());
60  if (_rz && _component == 0)
61  return -_coefficient * _phi[_j][_qp] * _dpf_dvar[_qp][pvar] *
62  (_grad_test[_i][_qp](0) + _test[_i][_qp] / _q_point[_qp](0));
63  return -_coefficient * _phi[_j][_qp] * _dpf_dvar[_qp][pvar] * _grad_test[_i][_qp](_component);
64 }
const PorousFlowDictator & _dictator
The Porous-Flow dictator that holds global info about the simulation.
bool notPorousFlowVariable(unsigned int moose_var_num) const
returns true if moose_var_num is not a porous flow variabe
const unsigned int _component
the spatial component
unsigned int porousFlowVariableNum(unsigned int moose_var_num) const
the PorousFlow variable number
const MaterialProperty< std::vector< Real > > & _dpf_dvar
d(effective porepressure)/(d porflow variable)
const bool _rz
Whether an RZ coordinate system is being used.
Real PorousFlowEffectiveStressCoupling::computeQpOffDiagJacobian ( unsigned int  jvar)
overrideprotectedvirtual

Definition at line 67 of file PorousFlowEffectiveStressCoupling.C.

68 {
70  return 0.0;
71  const unsigned int pvar = _dictator.porousFlowVariableNum(jvar);
72  if (_rz && _component == 0)
73  return -_coefficient * _phi[_j][_qp] * _dpf_dvar[_qp][pvar] *
74  (_grad_test[_i][_qp](0) + _test[_i][_qp] / _q_point[_qp](0));
75  return -_coefficient * _phi[_j][_qp] * _dpf_dvar[_qp][pvar] * _grad_test[_i][_qp](_component);
76 }
const PorousFlowDictator & _dictator
The Porous-Flow dictator that holds global info about the simulation.
bool notPorousFlowVariable(unsigned int moose_var_num) const
returns true if moose_var_num is not a porous flow variabe
const unsigned int _component
the spatial component
unsigned int porousFlowVariableNum(unsigned int moose_var_num) const
the PorousFlow variable number
const MaterialProperty< std::vector< Real > > & _dpf_dvar
d(effective porepressure)/(d porflow variable)
const bool _rz
Whether an RZ coordinate system is being used.
Real PorousFlowEffectiveStressCoupling::computeQpResidual ( )
overrideprotectedvirtual

Definition at line 47 of file PorousFlowEffectiveStressCoupling.C.

48 {
49  if (_rz && _component == 0)
50  return -_coefficient * _pf[_qp] * (_grad_test[_i][_qp](0) + _test[_i][_qp] / _q_point[_qp](0));
51  return -_coefficient * _pf[_qp] * _grad_test[_i][_qp](_component);
52 }
const MaterialProperty< Real > & _pf
effective porepressure
const unsigned int _component
the spatial component
const bool _rz
Whether an RZ coordinate system is being used.

Member Data Documentation

const Real PorousFlowEffectiveStressCoupling::_coefficient
protected

Biot coefficient.

Definition at line 39 of file PorousFlowEffectiveStressCoupling.h.

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

const unsigned int PorousFlowEffectiveStressCoupling::_component
protected
const PorousFlowDictator& PorousFlowEffectiveStressCoupling::_dictator
protected

The Porous-Flow dictator that holds global info about the simulation.

Definition at line 36 of file PorousFlowEffectiveStressCoupling.h.

Referenced by computeQpJacobian(), and computeQpOffDiagJacobian().

const MaterialProperty<std::vector<Real> >& PorousFlowEffectiveStressCoupling::_dpf_dvar
protected

d(effective porepressure)/(d porflow variable)

Definition at line 48 of file PorousFlowEffectiveStressCoupling.h.

Referenced by computeQpJacobian(), and computeQpOffDiagJacobian().

const MaterialProperty<Real>& PorousFlowEffectiveStressCoupling::_pf
protected

effective porepressure

Definition at line 45 of file PorousFlowEffectiveStressCoupling.h.

Referenced by computeQpResidual().

const bool PorousFlowEffectiveStressCoupling::_rz
protected

Whether an RZ coordinate system is being used.

Definition at line 51 of file PorousFlowEffectiveStressCoupling.h.

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


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