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

Dispersive flux of component k in fluid phase alpha. More...

#include <PorousFlowDispersiveFlux.h>

Inheritance diagram for PorousFlowDispersiveFlux:
[legend]

Public Member Functions

 PorousFlowDispersiveFlux (const InputParameters &parameters)
 

Protected Member Functions

virtual Real computeQpResidual () override
 
virtual Real computeQpJacobian () override
 
virtual Real computeQpOffDiagJacobian (unsigned int jvar) override
 
Real computeQpJac (unsigned int jvar) const
 Derivative of the residual with respect to the PorousFLow Variable with variable number jvar. More...
 

Protected Attributes

const MaterialProperty< std::vector< Real > > & _fluid_density_qp
 Fluid density for each phase (at the qp) More...
 
const MaterialProperty< std::vector< std::vector< Real > > > & _dfluid_density_qp_dvar
 Derivative of the fluid density for each phase wrt PorousFlow variables (at the qp) More...
 
const MaterialProperty< std::vector< std::vector< RealGradient > > > & _grad_mass_frac
 Gradient of mass fraction of each component in each phase. More...
 
const MaterialProperty< std::vector< std::vector< std::vector< Real > > > > & _dmass_frac_dvar
 Derivative of mass fraction wrt PorousFlow variables. More...
 
const MaterialProperty< Real > & _porosity_qp
 Porosity at the qps. More...
 
const MaterialProperty< std::vector< Real > > & _dporosity_qp_dvar
 Derivative of porosity wrt PorousFlow variables (at the qps) More...
 
const MaterialProperty< std::vector< Real > > & _tortuosity
 Tortuosity tau_0 * tau_{alpha} for fluid phase alpha. More...
 
const MaterialProperty< std::vector< std::vector< Real > > > & _dtortuosity_dvar
 Derivative of tortuosity wrt PorousFlow variables. More...
 
const MaterialProperty< std::vector< std::vector< Real > > > & _diffusion_coeff
 Diffusion coefficients of component k in fluid phase alpha. More...
 
const MaterialProperty< std::vector< std::vector< std::vector< Real > > > > & _ddiffusion_coeff_dvar
 Derivative of the diffusion coefficients wrt PorousFlow variables. More...
 
const PorousFlowDictator_dictator
 PorousFlowDictator UserObject. More...
 
const unsigned int _fluid_component
 Index of the fluid component that this kernel acts on. More...
 
const unsigned int _num_phases
 The number of fluid phases. More...
 
const RankTwoTensor _identity_tensor
 Identity tensor. More...
 
const MaterialProperty< std::vector< Real > > & _relative_permeability
 Relative permeability of each phase. More...
 
const MaterialProperty< std::vector< std::vector< Real > > > & _drelative_permeability_dvar
 Derivative of relative permeability wrt PorousFlow variables. More...
 
const MaterialProperty< std::vector< Real > > & _fluid_viscosity
 Viscosity of each component in each phase. More...
 
const MaterialProperty< std::vector< std::vector< Real > > > & _dfluid_viscosity_dvar
 Derivative of viscosity wrt PorousFlow variables. More...
 
const MaterialProperty< RealTensorValue > & _permeability
 Permeability of porous material. More...
 
const MaterialProperty< std::vector< RealTensorValue > > & _dpermeability_dvar
 Derivative of permeability wrt PorousFlow variables. More...
 
const MaterialProperty< std::vector< std::vector< RealTensorValue > > > & _dpermeability_dgradvar
 d(permeabiity)/d(grad(PorousFlow variable)) More...
 
const MaterialProperty< std::vector< RealGradient > > & _grad_p
 Gradient of the pore pressure in each phase. More...
 
const MaterialProperty< std::vector< std::vector< Real > > > & _dgrad_p_dgrad_var
 Derivative of Grad porepressure in each phase wrt grad(PorousFlow variables) More...
 
const MaterialProperty< std::vector< std::vector< RealGradient > > > & _dgrad_p_dvar
 Derivative of Grad porepressure in each phase wrt PorousFlow variables. More...
 
const RealVectorValue _gravity
 Gravitational acceleration. More...
 
const std::vector< Real > _disp_long
 Longitudinal dispersivity for each phase. More...
 
const std::vector< Real > _disp_trans
 Transverse dispersivity for each phase. More...
 
const bool _perm_derivs
 Flag to check whether permeabiity derivatives are non-zero. More...
 

Detailed Description

Dispersive flux of component k in fluid phase alpha.

Includes the effects of both molecular diffusion and hydrodynamic dispersion.

Definition at line 25 of file PorousFlowDispersiveFlux.h.

Constructor & Destructor Documentation

◆ PorousFlowDispersiveFlux()

PorousFlowDispersiveFlux::PorousFlowDispersiveFlux ( const InputParameters &  parameters)

Definition at line 36 of file PorousFlowDispersiveFlux.C.

37  : Kernel(parameters),
38 
39  _fluid_density_qp(getMaterialProperty<std::vector<Real>>("PorousFlow_fluid_phase_density_qp")),
40  _dfluid_density_qp_dvar(getMaterialProperty<std::vector<std::vector<Real>>>(
41  "dPorousFlow_fluid_phase_density_qp_dvar")),
42  _grad_mass_frac(getMaterialProperty<std::vector<std::vector<RealGradient>>>(
43  "PorousFlow_grad_mass_frac_qp")),
44  _dmass_frac_dvar(getMaterialProperty<std::vector<std::vector<std::vector<Real>>>>(
45  "dPorousFlow_mass_frac_qp_dvar")),
46  _porosity_qp(getMaterialProperty<Real>("PorousFlow_porosity_qp")),
47  _dporosity_qp_dvar(getMaterialProperty<std::vector<Real>>("dPorousFlow_porosity_qp_dvar")),
48  _tortuosity(getMaterialProperty<std::vector<Real>>("PorousFlow_tortuosity_qp")),
50  getMaterialProperty<std::vector<std::vector<Real>>>("dPorousFlow_tortuosity_qp_dvar")),
52  getMaterialProperty<std::vector<std::vector<Real>>>("PorousFlow_diffusion_coeff_qp")),
53  _ddiffusion_coeff_dvar(getMaterialProperty<std::vector<std::vector<std::vector<Real>>>>(
54  "dPorousFlow_diffusion_coeff_qp_dvar")),
55  _dictator(getUserObject<PorousFlowDictator>("PorousFlowDictator")),
56  _fluid_component(getParam<unsigned int>("fluid_component")),
58  _identity_tensor(RankTwoTensor::initIdentity),
60  getMaterialProperty<std::vector<Real>>("PorousFlow_relative_permeability_qp")),
61  _drelative_permeability_dvar(getMaterialProperty<std::vector<std::vector<Real>>>(
62  "dPorousFlow_relative_permeability_qp_dvar")),
63  _fluid_viscosity(getMaterialProperty<std::vector<Real>>("PorousFlow_viscosity_qp")),
65  getMaterialProperty<std::vector<std::vector<Real>>>("dPorousFlow_viscosity_qp_dvar")),
66  _permeability(getMaterialProperty<RealTensorValue>("PorousFlow_permeability_qp")),
68  getMaterialProperty<std::vector<RealTensorValue>>("dPorousFlow_permeability_qp_dvar")),
69  _dpermeability_dgradvar(getMaterialProperty<std::vector<std::vector<RealTensorValue>>>(
70  "dPorousFlow_permeability_qp_dgradvar")),
71  _grad_p(getMaterialProperty<std::vector<RealGradient>>("PorousFlow_grad_porepressure_qp")),
72  _dgrad_p_dgrad_var(getMaterialProperty<std::vector<std::vector<Real>>>(
73  "dPorousFlow_grad_porepressure_qp_dgradvar")),
74  _dgrad_p_dvar(getMaterialProperty<std::vector<std::vector<RealGradient>>>(
75  "dPorousFlow_grad_porepressure_qp_dvar")),
76  _gravity(getParam<RealVectorValue>("gravity")),
77  _disp_long(getParam<std::vector<Real>>("disp_long")),
78  _disp_trans(getParam<std::vector<Real>>("disp_trans")),
80 {
81  // Check that sufficient values of the dispersion coefficients have been entered
82  if (_disp_long.size() != _num_phases)
83  paramError(
84  "disp_long",
85  "The number of longitudinal dispersion coefficients is not equal to the number of phases");
86 
87  if (_disp_trans.size() != _num_phases)
88  paramError("disp_trans",
89  "The number of transverse dispersion coefficients disp_trans in is not equal to the "
90  "number of phases");
91 }

Member Function Documentation

◆ computeQpJac()

Real PorousFlowDispersiveFlux::computeQpJac ( unsigned int  jvar) const
protected

Derivative of the residual with respect to the PorousFLow Variable with variable number jvar.

This is used by both computeQpJacobian and computeQpOffDiagJacobian

Parameters
jvartake the derivative wrt this variable number
Returns
dResidual_dVar

Definition at line 143 of file PorousFlowDispersiveFlux.C.

144 {
145  // If the variable is not a valid PorousFlow variable, set the Jacobian to 0
147  return 0.0;
148 
149  const unsigned int pvar = _dictator.porousFlowVariableNum(jvar);
150 
151  RealVectorValue velocity;
152  Real velocity_abs;
153  RankTwoTensor v2;
154  RankTwoTensor dispersion;
155  dispersion.zero();
156  Real diffusion;
157  RealVectorValue flux = 0.0;
158  RealVectorValue dflux = 0.0;
159 
160  for (unsigned int ph = 0; ph < _num_phases; ++ph)
161  {
162  // Diffusive component
163  diffusion =
164  _porosity_qp[_qp] * _tortuosity[_qp][ph] * _diffusion_coeff[_qp][ph][_fluid_component];
165 
166  // Calculate Darcy velocity
167  velocity = (_permeability[_qp] * (_grad_p[_qp][ph] - _fluid_density_qp[_qp][ph] * _gravity) *
168  _relative_permeability[_qp][ph] / _fluid_viscosity[_qp][ph]);
169  velocity_abs = std::sqrt(velocity * velocity);
170 
171  if (velocity_abs > 0.0)
172  {
173  v2.vectorOuterProduct(velocity, velocity);
174 
175  // Add longitudinal dispersion to diffusive component
176  diffusion += _disp_trans[ph] * velocity_abs;
177  dispersion = (_disp_long[ph] - _disp_trans[ph]) * v2 / velocity_abs;
178  }
179 
180  // Derivative of Darcy velocity
181  RealVectorValue dvelocity =
182  _permeability[_qp] * (_grad_phi[_j][_qp] * _dgrad_p_dgrad_var[_qp][ph][pvar] -
183  _phi[_j][_qp] * _dfluid_density_qp_dvar[_qp][ph][pvar] * _gravity);
184  dvelocity += _permeability[_qp] * (_dgrad_p_dvar[_qp][ph][pvar] * _phi[_j][_qp]);
185 
186  if (_perm_derivs)
187  {
188  dvelocity += _dpermeability_dvar[_qp][pvar] * _phi[_j][_qp] *
189  (_grad_p[_qp][ph] - _fluid_density_qp[_qp][ph] * _gravity);
190 
191  for (unsigned int i = 0; i < LIBMESH_DIM; ++i)
192  dvelocity += _dpermeability_dgradvar[_qp][i][pvar] * _grad_phi[_j][_qp](i) *
193  (_grad_p[_qp][ph] - _fluid_density_qp[_qp][ph] * _gravity);
194  }
195 
196  dvelocity = dvelocity * _relative_permeability[_qp][ph] / _fluid_viscosity[_qp][ph] +
197  (_permeability[_qp] * (_grad_p[_qp][ph] - _fluid_density_qp[_qp][ph] * _gravity)) *
198  (_drelative_permeability_dvar[_qp][ph][pvar] / _fluid_viscosity[_qp][ph] -
199  _relative_permeability[_qp][ph] * _dfluid_viscosity_dvar[_qp][ph][pvar] /
200  std::pow(_fluid_viscosity[_qp][ph], 2)) *
201  _phi[_j][_qp];
202 
203  Real dvelocity_abs = 0.0;
204  if (velocity_abs > 0.0)
205  dvelocity_abs = velocity * dvelocity / velocity_abs;
206 
207  // Derivative of diffusion term (note: dispersivity is assumed constant)
208  Real ddiffusion = _phi[_j][_qp] * _dporosity_qp_dvar[_qp][pvar] * _tortuosity[_qp][ph] *
210  ddiffusion += _phi[_j][_qp] * _porosity_qp[_qp] * _dtortuosity_dvar[_qp][ph][pvar] *
212  ddiffusion += _phi[_j][_qp] * _porosity_qp[_qp] * _tortuosity[_qp][ph] *
214  ddiffusion += _disp_trans[ph] * dvelocity_abs;
215 
216  // Derivative of dispersion term (note: dispersivity is assumed constant)
217  RankTwoTensor ddispersion;
218  ddispersion.zero();
219  if (velocity_abs > 0.0)
220  {
221  RankTwoTensor dv2a, dv2b;
222  dv2a.vectorOuterProduct(velocity, dvelocity);
223  dv2b.vectorOuterProduct(dvelocity, velocity);
224  ddispersion = (_disp_long[ph] - _disp_trans[ph]) * (dv2a + dv2b) / velocity_abs;
225  ddispersion -=
226  (_disp_long[ph] - _disp_trans[ph]) * v2 * dvelocity_abs / velocity_abs / velocity_abs;
227  }
228 
229  dflux += _phi[_j][_qp] * _dfluid_density_qp_dvar[_qp][ph][pvar] *
230  (diffusion * _identity_tensor + dispersion) *
232  dflux += _fluid_density_qp[_qp][ph] * (ddiffusion * _identity_tensor + ddispersion) *
234 
235  // NOTE: Here we assume that d(grad_mass_frac)/d(var) = d(mass_frac)/d(var) * grad_phi
236  // This is true for most PorousFlow scenarios, but not for chemical reactions
237  // where mass_frac is a nonlinear function of the primary MOOSE Variables
238  dflux += _fluid_density_qp[_qp][ph] * (diffusion * _identity_tensor + dispersion) *
239  _dmass_frac_dvar[_qp][ph][_fluid_component][pvar] * _grad_phi[_j][_qp];
240  }
241 
242  return _grad_test[_i][_qp] * dflux;
243 }

Referenced by computeQpJacobian(), and computeQpOffDiagJacobian().

◆ computeQpJacobian()

Real PorousFlowDispersiveFlux::computeQpJacobian ( )
overrideprotectedvirtual

Definition at line 131 of file PorousFlowDispersiveFlux.C.

132 {
133  return computeQpJac(_var.number());
134 }

◆ computeQpOffDiagJacobian()

Real PorousFlowDispersiveFlux::computeQpOffDiagJacobian ( unsigned int  jvar)
overrideprotectedvirtual

Definition at line 137 of file PorousFlowDispersiveFlux.C.

138 {
139  return computeQpJac(jvar);
140 }

◆ computeQpResidual()

Real PorousFlowDispersiveFlux::computeQpResidual ( )
overrideprotectedvirtual

Definition at line 94 of file PorousFlowDispersiveFlux.C.

95 {
96  RealVectorValue flux = 0.0;
97  RealVectorValue velocity;
98  Real velocity_abs;
99  RankTwoTensor v2;
100  RankTwoTensor dispersion;
101  dispersion.zero();
102  Real diffusion;
103 
104  for (unsigned int ph = 0; ph < _num_phases; ++ph)
105  {
106  // Diffusive component
107  diffusion =
108  _porosity_qp[_qp] * _tortuosity[_qp][ph] * _diffusion_coeff[_qp][ph][_fluid_component];
109 
110  // Calculate Darcy velocity
111  velocity = (_permeability[_qp] * (_grad_p[_qp][ph] - _fluid_density_qp[_qp][ph] * _gravity) *
112  _relative_permeability[_qp][ph] / _fluid_viscosity[_qp][ph]);
113  velocity_abs = std::sqrt(velocity * velocity);
114 
115  if (velocity_abs > 0.0)
116  {
117  v2.vectorOuterProduct(velocity, velocity);
118 
119  // Add longitudinal dispersion to diffusive component
120  diffusion += _disp_trans[ph] * velocity_abs;
121  dispersion = (_disp_long[ph] - _disp_trans[ph]) * v2 / velocity_abs;
122  }
123 
124  flux += _fluid_density_qp[_qp][ph] * (diffusion * _identity_tensor + dispersion) *
126  }
127  return _grad_test[_i][_qp] * flux;
128 }

Member Data Documentation

◆ _ddiffusion_coeff_dvar

const MaterialProperty<std::vector<std::vector<std::vector<Real> > > >& PorousFlowDispersiveFlux::_ddiffusion_coeff_dvar
protected

Derivative of the diffusion coefficients wrt PorousFlow variables.

Definition at line 74 of file PorousFlowDispersiveFlux.h.

Referenced by computeQpJac().

◆ _dfluid_density_qp_dvar

const MaterialProperty<std::vector<std::vector<Real> > >& PorousFlowDispersiveFlux::_dfluid_density_qp_dvar
protected

Derivative of the fluid density for each phase wrt PorousFlow variables (at the qp)

Definition at line 50 of file PorousFlowDispersiveFlux.h.

Referenced by computeQpJac().

◆ _dfluid_viscosity_dvar

const MaterialProperty<std::vector<std::vector<Real> > >& PorousFlowDispersiveFlux::_dfluid_viscosity_dvar
protected

Derivative of viscosity wrt PorousFlow variables.

Definition at line 98 of file PorousFlowDispersiveFlux.h.

Referenced by computeQpJac().

◆ _dgrad_p_dgrad_var

const MaterialProperty<std::vector<std::vector<Real> > >& PorousFlowDispersiveFlux::_dgrad_p_dgrad_var
protected

Derivative of Grad porepressure in each phase wrt grad(PorousFlow variables)

Definition at line 113 of file PorousFlowDispersiveFlux.h.

Referenced by computeQpJac().

◆ _dgrad_p_dvar

const MaterialProperty<std::vector<std::vector<RealGradient> > >& PorousFlowDispersiveFlux::_dgrad_p_dvar
protected

Derivative of Grad porepressure in each phase wrt PorousFlow variables.

Definition at line 116 of file PorousFlowDispersiveFlux.h.

Referenced by computeQpJac().

◆ _dictator

const PorousFlowDictator& PorousFlowDispersiveFlux::_dictator
protected

PorousFlowDictator UserObject.

Definition at line 77 of file PorousFlowDispersiveFlux.h.

Referenced by computeQpJac().

◆ _diffusion_coeff

const MaterialProperty<std::vector<std::vector<Real> > >& PorousFlowDispersiveFlux::_diffusion_coeff
protected

Diffusion coefficients of component k in fluid phase alpha.

Definition at line 71 of file PorousFlowDispersiveFlux.h.

Referenced by computeQpJac(), and computeQpResidual().

◆ _disp_long

const std::vector<Real> PorousFlowDispersiveFlux::_disp_long
protected

Longitudinal dispersivity for each phase.

Definition at line 122 of file PorousFlowDispersiveFlux.h.

Referenced by computeQpJac(), computeQpResidual(), and PorousFlowDispersiveFlux().

◆ _disp_trans

const std::vector<Real> PorousFlowDispersiveFlux::_disp_trans
protected

Transverse dispersivity for each phase.

Definition at line 125 of file PorousFlowDispersiveFlux.h.

Referenced by computeQpJac(), computeQpResidual(), and PorousFlowDispersiveFlux().

◆ _dmass_frac_dvar

const MaterialProperty<std::vector<std::vector<std::vector<Real> > > >& PorousFlowDispersiveFlux::_dmass_frac_dvar
protected

Derivative of mass fraction wrt PorousFlow variables.

Definition at line 56 of file PorousFlowDispersiveFlux.h.

Referenced by computeQpJac().

◆ _dpermeability_dgradvar

const MaterialProperty<std::vector<std::vector<RealTensorValue> > >& PorousFlowDispersiveFlux::_dpermeability_dgradvar
protected

d(permeabiity)/d(grad(PorousFlow variable))

Definition at line 107 of file PorousFlowDispersiveFlux.h.

Referenced by computeQpJac().

◆ _dpermeability_dvar

const MaterialProperty<std::vector<RealTensorValue> >& PorousFlowDispersiveFlux::_dpermeability_dvar
protected

Derivative of permeability wrt PorousFlow variables.

Definition at line 104 of file PorousFlowDispersiveFlux.h.

Referenced by computeQpJac().

◆ _dporosity_qp_dvar

const MaterialProperty<std::vector<Real> >& PorousFlowDispersiveFlux::_dporosity_qp_dvar
protected

Derivative of porosity wrt PorousFlow variables (at the qps)

Definition at line 62 of file PorousFlowDispersiveFlux.h.

Referenced by computeQpJac().

◆ _drelative_permeability_dvar

const MaterialProperty<std::vector<std::vector<Real> > >& PorousFlowDispersiveFlux::_drelative_permeability_dvar
protected

Derivative of relative permeability wrt PorousFlow variables.

Definition at line 92 of file PorousFlowDispersiveFlux.h.

Referenced by computeQpJac().

◆ _dtortuosity_dvar

const MaterialProperty<std::vector<std::vector<Real> > >& PorousFlowDispersiveFlux::_dtortuosity_dvar
protected

Derivative of tortuosity wrt PorousFlow variables.

Definition at line 68 of file PorousFlowDispersiveFlux.h.

Referenced by computeQpJac().

◆ _fluid_component

const unsigned int PorousFlowDispersiveFlux::_fluid_component
protected

Index of the fluid component that this kernel acts on.

Definition at line 80 of file PorousFlowDispersiveFlux.h.

Referenced by computeQpJac(), and computeQpResidual().

◆ _fluid_density_qp

const MaterialProperty<std::vector<Real> >& PorousFlowDispersiveFlux::_fluid_density_qp
protected

Fluid density for each phase (at the qp)

Definition at line 47 of file PorousFlowDispersiveFlux.h.

Referenced by computeQpJac(), and computeQpResidual().

◆ _fluid_viscosity

const MaterialProperty<std::vector<Real> >& PorousFlowDispersiveFlux::_fluid_viscosity
protected

Viscosity of each component in each phase.

Definition at line 95 of file PorousFlowDispersiveFlux.h.

Referenced by computeQpJac(), and computeQpResidual().

◆ _grad_mass_frac

const MaterialProperty<std::vector<std::vector<RealGradient> > >& PorousFlowDispersiveFlux::_grad_mass_frac
protected

Gradient of mass fraction of each component in each phase.

Definition at line 53 of file PorousFlowDispersiveFlux.h.

Referenced by computeQpJac(), and computeQpResidual().

◆ _grad_p

const MaterialProperty<std::vector<RealGradient> >& PorousFlowDispersiveFlux::_grad_p
protected

Gradient of the pore pressure in each phase.

Definition at line 110 of file PorousFlowDispersiveFlux.h.

Referenced by computeQpJac(), and computeQpResidual().

◆ _gravity

const RealVectorValue PorousFlowDispersiveFlux::_gravity
protected

Gravitational acceleration.

Definition at line 119 of file PorousFlowDispersiveFlux.h.

Referenced by computeQpJac(), and computeQpResidual().

◆ _identity_tensor

const RankTwoTensor PorousFlowDispersiveFlux::_identity_tensor
protected

Identity tensor.

Definition at line 86 of file PorousFlowDispersiveFlux.h.

Referenced by computeQpJac(), and computeQpResidual().

◆ _num_phases

const unsigned int PorousFlowDispersiveFlux::_num_phases
protected

The number of fluid phases.

Definition at line 83 of file PorousFlowDispersiveFlux.h.

Referenced by computeQpJac(), computeQpResidual(), and PorousFlowDispersiveFlux().

◆ _perm_derivs

const bool PorousFlowDispersiveFlux::_perm_derivs
protected

Flag to check whether permeabiity derivatives are non-zero.

Definition at line 128 of file PorousFlowDispersiveFlux.h.

Referenced by computeQpJac().

◆ _permeability

const MaterialProperty<RealTensorValue>& PorousFlowDispersiveFlux::_permeability
protected

Permeability of porous material.

Definition at line 101 of file PorousFlowDispersiveFlux.h.

Referenced by computeQpJac(), and computeQpResidual().

◆ _porosity_qp

const MaterialProperty<Real>& PorousFlowDispersiveFlux::_porosity_qp
protected

Porosity at the qps.

Definition at line 59 of file PorousFlowDispersiveFlux.h.

Referenced by computeQpJac(), and computeQpResidual().

◆ _relative_permeability

const MaterialProperty<std::vector<Real> >& PorousFlowDispersiveFlux::_relative_permeability
protected

Relative permeability of each phase.

Definition at line 89 of file PorousFlowDispersiveFlux.h.

Referenced by computeQpJac(), and computeQpResidual().

◆ _tortuosity

const MaterialProperty<std::vector<Real> >& PorousFlowDispersiveFlux::_tortuosity
protected

Tortuosity tau_0 * tau_{alpha} for fluid phase alpha.

Definition at line 65 of file PorousFlowDispersiveFlux.h.

Referenced by computeQpJac(), and computeQpResidual().


The documentation for this class was generated from the following files:
PorousFlowDispersiveFlux::computeQpJac
Real computeQpJac(unsigned int jvar) const
Derivative of the residual with respect to the PorousFLow Variable with variable number jvar.
Definition: PorousFlowDispersiveFlux.C:143
PorousFlowDispersiveFlux::_dgrad_p_dvar
const MaterialProperty< std::vector< std::vector< RealGradient > > > & _dgrad_p_dvar
Derivative of Grad porepressure in each phase wrt PorousFlow variables.
Definition: PorousFlowDispersiveFlux.h:116
PorousFlowDispersiveFlux::_tortuosity
const MaterialProperty< std::vector< Real > > & _tortuosity
Tortuosity tau_0 * tau_{alpha} for fluid phase alpha.
Definition: PorousFlowDispersiveFlux.h:65
PorousFlowDispersiveFlux::_gravity
const RealVectorValue _gravity
Gravitational acceleration.
Definition: PorousFlowDispersiveFlux.h:119
PorousFlowDispersiveFlux::_fluid_component
const unsigned int _fluid_component
Index of the fluid component that this kernel acts on.
Definition: PorousFlowDispersiveFlux.h:80
PorousFlowDispersiveFlux::_dfluid_viscosity_dvar
const MaterialProperty< std::vector< std::vector< Real > > > & _dfluid_viscosity_dvar
Derivative of viscosity wrt PorousFlow variables.
Definition: PorousFlowDispersiveFlux.h:98
PorousFlowDispersiveFlux::_fluid_density_qp
const MaterialProperty< std::vector< Real > > & _fluid_density_qp
Fluid density for each phase (at the qp)
Definition: PorousFlowDispersiveFlux.h:47
PorousFlowDispersiveFlux::_permeability
const MaterialProperty< RealTensorValue > & _permeability
Permeability of porous material.
Definition: PorousFlowDispersiveFlux.h:101
PorousFlowDispersiveFlux::_grad_mass_frac
const MaterialProperty< std::vector< std::vector< RealGradient > > > & _grad_mass_frac
Gradient of mass fraction of each component in each phase.
Definition: PorousFlowDispersiveFlux.h:53
PorousFlowDispersiveFlux::_disp_trans
const std::vector< Real > _disp_trans
Transverse dispersivity for each phase.
Definition: PorousFlowDispersiveFlux.h:125
PorousFlowDispersiveFlux::_dpermeability_dgradvar
const MaterialProperty< std::vector< std::vector< RealTensorValue > > > & _dpermeability_dgradvar
d(permeabiity)/d(grad(PorousFlow variable))
Definition: PorousFlowDispersiveFlux.h:107
pow
ExpressionBuilder::EBTerm pow(const ExpressionBuilder::EBTerm &left, T exponent)
Definition: ExpressionBuilder.h:673
PorousFlowDispersiveFlux::_num_phases
const unsigned int _num_phases
The number of fluid phases.
Definition: PorousFlowDispersiveFlux.h:83
PorousFlowDictator::notPorousFlowVariable
bool notPorousFlowVariable(unsigned int moose_var_num) const
Returns true if moose_var_num is not a porous flow variabe.
Definition: PorousFlowDictator.C:161
PorousFlowDispersiveFlux::_dtortuosity_dvar
const MaterialProperty< std::vector< std::vector< Real > > > & _dtortuosity_dvar
Derivative of tortuosity wrt PorousFlow variables.
Definition: PorousFlowDispersiveFlux.h:68
PorousFlowDispersiveFlux::_perm_derivs
const bool _perm_derivs
Flag to check whether permeabiity derivatives are non-zero.
Definition: PorousFlowDispersiveFlux.h:128
PorousFlowDispersiveFlux::_drelative_permeability_dvar
const MaterialProperty< std::vector< std::vector< Real > > > & _drelative_permeability_dvar
Derivative of relative permeability wrt PorousFlow variables.
Definition: PorousFlowDispersiveFlux.h:92
PorousFlowDispersiveFlux::_relative_permeability
const MaterialProperty< std::vector< Real > > & _relative_permeability
Relative permeability of each phase.
Definition: PorousFlowDispersiveFlux.h:89
PorousFlowDispersiveFlux::_dictator
const PorousFlowDictator & _dictator
PorousFlowDictator UserObject.
Definition: PorousFlowDispersiveFlux.h:77
PorousFlowDispersiveFlux::_dmass_frac_dvar
const MaterialProperty< std::vector< std::vector< std::vector< Real > > > > & _dmass_frac_dvar
Derivative of mass fraction wrt PorousFlow variables.
Definition: PorousFlowDispersiveFlux.h:56
PorousFlowDispersiveFlux::_ddiffusion_coeff_dvar
const MaterialProperty< std::vector< std::vector< std::vector< Real > > > > & _ddiffusion_coeff_dvar
Derivative of the diffusion coefficients wrt PorousFlow variables.
Definition: PorousFlowDispersiveFlux.h:74
PorousFlowDispersiveFlux::_dpermeability_dvar
const MaterialProperty< std::vector< RealTensorValue > > & _dpermeability_dvar
Derivative of permeability wrt PorousFlow variables.
Definition: PorousFlowDispersiveFlux.h:104
PorousFlowDictator::porousFlowVariableNum
unsigned int porousFlowVariableNum(unsigned int moose_var_num) const
The PorousFlow variable number.
Definition: PorousFlowDictator.C:135
PorousFlowDispersiveFlux::_dgrad_p_dgrad_var
const MaterialProperty< std::vector< std::vector< Real > > > & _dgrad_p_dgrad_var
Derivative of Grad porepressure in each phase wrt grad(PorousFlow variables)
Definition: PorousFlowDispersiveFlux.h:113
PorousFlowDispersiveFlux::_dfluid_density_qp_dvar
const MaterialProperty< std::vector< std::vector< Real > > > & _dfluid_density_qp_dvar
Derivative of the fluid density for each phase wrt PorousFlow variables (at the qp)
Definition: PorousFlowDispersiveFlux.h:50
PorousFlowDictator::numPhases
unsigned int numPhases() const
The number of fluid phases.
Definition: PorousFlowDictator.C:105
PorousFlowDispersiveFlux::_fluid_viscosity
const MaterialProperty< std::vector< Real > > & _fluid_viscosity
Viscosity of each component in each phase.
Definition: PorousFlowDispersiveFlux.h:95
PorousFlowDispersiveFlux::_disp_long
const std::vector< Real > _disp_long
Longitudinal dispersivity for each phase.
Definition: PorousFlowDispersiveFlux.h:122
PorousFlowDispersiveFlux::_identity_tensor
const RankTwoTensor _identity_tensor
Identity tensor.
Definition: PorousFlowDispersiveFlux.h:86
PorousFlowDispersiveFlux::_grad_p
const MaterialProperty< std::vector< RealGradient > > & _grad_p
Gradient of the pore pressure in each phase.
Definition: PorousFlowDispersiveFlux.h:110
PorousFlowDispersiveFlux::_porosity_qp
const MaterialProperty< Real > & _porosity_qp
Porosity at the qps.
Definition: PorousFlowDispersiveFlux.h:59
PorousFlowDispersiveFlux::_diffusion_coeff
const MaterialProperty< std::vector< std::vector< Real > > > & _diffusion_coeff
Diffusion coefficients of component k in fluid phase alpha.
Definition: PorousFlowDispersiveFlux.h:71
RankTwoTensorTempl< Real >
PorousFlowDictator::usePermDerivs
bool usePermDerivs() const
Check if the simulation includes derivatives of permeability Note: when the permeability is constant,...
Definition: PorousFlowDictator.h:156
PorousFlowDispersiveFlux::_dporosity_qp_dvar
const MaterialProperty< std::vector< Real > > & _dporosity_qp_dvar
Derivative of porosity wrt PorousFlow variables (at the qps)
Definition: PorousFlowDispersiveFlux.h:62