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

Constructor & Destructor Documentation

◆ PorousFlowEffectiveStressCoupling()

PorousFlowEffectiveStressCoupling::PorousFlowEffectiveStressCoupling ( const InputParameters &  parameters)

Definition at line 34 of file PorousFlowEffectiveStressCoupling.C.

36  : Kernel(parameters),
37  _dictator(getUserObject<PorousFlowDictator>("PorousFlowDictator")),
38  _coefficient(getParam<Real>("biot_coefficient")),
39  _component(getParam<unsigned int>("component")),
40  _pf(getMaterialProperty<Real>("PorousFlow_effective_fluid_pressure_qp")),
41  _dpf_dvar(
42  getMaterialProperty<std::vector<Real>>("dPorousFlow_effective_fluid_pressure_qp_dvar")),
43  _rz(getBlockCoordSystem() == Moose::COORD_RZ)
44 {
45  if (_component >= _mesh.dimension())
46  paramError("component", "The component cannot be greater than the mesh dimension");
47 }
const MaterialProperty< Real > & _pf
Effective porepressure.
const PorousFlowDictator & _dictator
The PorousFlow 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

◆ computeQpJacobian()

Real PorousFlowEffectiveStressCoupling::computeQpJacobian ( )
overrideprotectedvirtual

Definition at line 58 of file PorousFlowEffectiveStressCoupling.C.

59 {
60  if (_dictator.notPorousFlowVariable(_var.number()))
61  return 0.0;
62  const unsigned int pvar = _dictator.porousFlowVariableNum(_var.number());
63  if (_rz && _component == 0)
64  return -_coefficient * _phi[_j][_qp] * _dpf_dvar[_qp][pvar] *
65  (_grad_test[_i][_qp](0) + _test[_i][_qp] / _q_point[_qp](0));
66  return -_coefficient * _phi[_j][_qp] * _dpf_dvar[_qp][pvar] * _grad_test[_i][_qp](_component);
67 }
bool notPorousFlowVariable(unsigned int moose_var_num) const
Returns true if moose_var_num is not a porous flow variabe.
const PorousFlowDictator & _dictator
The PorousFlow dictator that holds global info about the simulation.
unsigned int porousFlowVariableNum(unsigned int moose_var_num) const
The PorousFlow variable number.
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.

◆ computeQpOffDiagJacobian()

Real PorousFlowEffectiveStressCoupling::computeQpOffDiagJacobian ( unsigned int  jvar)
overrideprotectedvirtual

Definition at line 70 of file PorousFlowEffectiveStressCoupling.C.

71 {
73  return 0.0;
74  const unsigned int pvar = _dictator.porousFlowVariableNum(jvar);
75  if (_rz && _component == 0)
76  return -_coefficient * _phi[_j][_qp] * _dpf_dvar[_qp][pvar] *
77  (_grad_test[_i][_qp](0) + _test[_i][_qp] / _q_point[_qp](0));
78  return -_coefficient * _phi[_j][_qp] * _dpf_dvar[_qp][pvar] * _grad_test[_i][_qp](_component);
79 }
bool notPorousFlowVariable(unsigned int moose_var_num) const
Returns true if moose_var_num is not a porous flow variabe.
const PorousFlowDictator & _dictator
The PorousFlow dictator that holds global info about the simulation.
unsigned int porousFlowVariableNum(unsigned int moose_var_num) const
The PorousFlow variable number.
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.

◆ computeQpResidual()

Real PorousFlowEffectiveStressCoupling::computeQpResidual ( )
overrideprotectedvirtual

Definition at line 50 of file PorousFlowEffectiveStressCoupling.C.

51 {
52  if (_rz && _component == 0)
53  return -_coefficient * _pf[_qp] * (_grad_test[_i][_qp](0) + _test[_i][_qp] / _q_point[_qp](0));
54  return -_coefficient * _pf[_qp] * _grad_test[_i][_qp](_component);
55 }
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

◆ _coefficient

const Real PorousFlowEffectiveStressCoupling::_coefficient
protected

Biot coefficient.

Definition at line 41 of file PorousFlowEffectiveStressCoupling.h.

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

◆ _component

const unsigned int PorousFlowEffectiveStressCoupling::_component
protected

◆ _dictator

const PorousFlowDictator& PorousFlowEffectiveStressCoupling::_dictator
protected

The PorousFlow dictator that holds global info about the simulation.

Definition at line 38 of file PorousFlowEffectiveStressCoupling.h.

Referenced by computeQpJacobian(), and computeQpOffDiagJacobian().

◆ _dpf_dvar

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

d(effective porepressure)/(d porflow variable)

Definition at line 50 of file PorousFlowEffectiveStressCoupling.h.

Referenced by computeQpJacobian(), and computeQpOffDiagJacobian().

◆ _pf

const MaterialProperty<Real>& PorousFlowEffectiveStressCoupling::_pf
protected

Effective porepressure.

Definition at line 47 of file PorousFlowEffectiveStressCoupling.h.

Referenced by computeQpResidual().

◆ _rz

const bool PorousFlowEffectiveStressCoupling::_rz
protected

Whether an RZ coordinate system is being used.

Definition at line 53 of file PorousFlowEffectiveStressCoupling.h.

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


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