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

Applies a flux sink to a boundary. More...

#include <PorousFlowSink.h>

Inheritance diagram for PorousFlowSink:
[legend]

Public Member Functions

 PorousFlowSink (const InputParameters &parameters)
 

Protected Member Functions

virtual Real computeQpResidual () override
 
virtual Real computeQpJacobian () override
 
virtual Real computeQpOffDiagJacobian (unsigned int jvar) override
 
Real jac (unsigned int jvar) const
 Derivative of residual with respect to the jvar variable. More...
 
virtual Real multiplier () const
 The flux gets multiplied by this quantity. More...
 
virtual Real dmultiplier_dvar (unsigned int pvar) const
 d(multiplier)/d(Porous flow variable pvar) More...
 

Protected Attributes

const PorousFlowDictator_dictator
 PorousFlowDictator UserObject. More...
 
const bool _involves_fluid
 Whether this BC involves fluid (whether the user has supplied a fluid phase number) More...
 
const unsigned int _ph
 The phase number. More...
 
const bool _use_mass_fraction
 Whether the flux will be multiplied by the mass fraction. More...
 
const bool _has_mass_fraction
 Whether there is a "mass_fraction" Material. This is just for error checking. More...
 
const unsigned int _sp
 The component number (only used if _use_mass_fraction==true) More...
 
const bool _use_mobility
 Whether to multiply the sink flux by permeability*density/viscosity. More...
 
const bool _has_mobility
 Whether there are Materials that can form "mobility". This is just for error checking. More...
 
const bool _use_relperm
 Whether to multiply the sink flux by relative permeability. More...
 
const bool _has_relperm
 Whether there is a "relperm" Material. This is just for error checking. More...
 
const bool _use_enthalpy
 Whether to multiply the sink flux by enthalpy. More...
 
const bool _has_enthalpy
 Whether there is an "enthalpy" Material. This is just for error checking. More...
 
const bool _use_internal_energy
 Whether to multiply the sink flux by internal_energy. More...
 
const bool _has_internal_energy
 Whether there is an "internal_energy" Material. This is just for error checking. More...
 
const bool _use_thermal_conductivity
 Whether to multiply the sink flux by thermal_conductivity. More...
 
const bool _has_thermal_conductivity
 Whether there is an "thermal_conductivity" Material. This is just for error checking. More...
 
const Function & _m_func
 The flux. More...
 
const MaterialProperty< RealTensorValue > *const _permeability
 Permeability of porous material. More...
 
const MaterialProperty< std::vector< RealTensorValue > > *const _dpermeability_dvar
 d(Permeability)/d(PorousFlow variable) More...
 
const MaterialProperty< std::vector< std::vector< RealTensorValue > > > *const _dpermeability_dgradvar
 d(Permeability)/d(grad(PorousFlow variable)) More...
 
const MaterialProperty< std::vector< Real > > *const _fluid_density_node
 Fluid density for each phase (at the node) More...
 
const MaterialProperty< std::vector< std::vector< Real > > > *const _dfluid_density_node_dvar
 d(Fluid density for each phase (at the node))/d(PorousFlow variable) More...
 
const MaterialProperty< std::vector< Real > > *const _fluid_viscosity
 Viscosity of each component in each phase. More...
 
const MaterialProperty< std::vector< std::vector< Real > > > *const _dfluid_viscosity_dvar
 d(Viscosity of each component in each phase)/d(PorousFlow variable) More...
 
const MaterialProperty< std::vector< Real > > *const _relative_permeability
 Relative permeability of each phase. More...
 
const MaterialProperty< std::vector< std::vector< Real > > > *const _drelative_permeability_dvar
 d(Relative permeability of each phase)/d(PorousFlow variable) More...
 
const MaterialProperty< std::vector< std::vector< Real > > > *const _mass_fractions
 Mass fraction of each component in each phase. More...
 
const MaterialProperty< std::vector< std::vector< std::vector< Real > > > > *const _dmass_fractions_dvar
 d(Mass fraction of each component in each phase)/d(PorousFlow variable) More...
 
const MaterialProperty< std::vector< Real > > *const _enthalpy
 Enthalpy of each phase. More...
 
const MaterialProperty< std::vector< std::vector< Real > > > *const _denthalpy_dvar
 d(enthalpy of each phase)/d(PorousFlow variable) More...
 
const MaterialProperty< std::vector< Real > > *const _internal_energy
 Internal_Energy of each phase. More...
 
const MaterialProperty< std::vector< std::vector< Real > > > *const _dinternal_energy_dvar
 d(internal_energy of each phase)/d(PorousFlow variable) More...
 
const MaterialProperty< RealTensorValue > *const _thermal_conductivity
 Thermal_Conductivity of porous material. More...
 
const MaterialProperty< std::vector< RealTensorValue > > *const _dthermal_conductivity_dvar
 d(Thermal_Conductivity)/d(PorousFlow variable) More...
 
const bool _perm_derivs
 Flag to check whether permeabiity derivatives are non-zero. More...
 

Detailed Description

Applies a flux sink to a boundary.

The strength of the flux is specified by flux_function. In addition, this sink can be multiplied by: (1) the relative permeability of the fluid at the nodes (2) perm_nn*density/viscosity (the so-called mobility) where perm_nn is the permeability tensor projected to the normal direction. (3) the mass_fraction of a component at the nodes (4) the enthalpy of the phase (5) the internal energy of the phase (6) the thermal conductivity of the medium

Definition at line 34 of file PorousFlowSink.h.

Constructor & Destructor Documentation

◆ PorousFlowSink()

PorousFlowSink::PorousFlowSink ( const InputParameters &  parameters)

Definition at line 80 of file PorousFlowSink.C.

81  : IntegratedBC(parameters),
82  _dictator(getUserObject<PorousFlowDictator>("PorousFlowDictator")),
83  _involves_fluid(isParamValid("fluid_phase")),
84  _ph(_involves_fluid ? getParam<unsigned int>("fluid_phase") : 0),
85  _use_mass_fraction(isParamValid("mass_fraction_component")),
87  hasMaterialProperty<std::vector<std::vector<Real>>>("PorousFlow_mass_frac_nodal") &&
88  hasMaterialProperty<std::vector<std::vector<std::vector<Real>>>>(
89  "dPorousFlow_mass_frac_nodal_dvar")),
90  _sp(_use_mass_fraction ? getParam<unsigned int>("mass_fraction_component") : 0),
91  _use_mobility(getParam<bool>("use_mobility")),
93  hasMaterialProperty<RealTensorValue>("PorousFlow_permeability_qp") &&
94  hasMaterialProperty<std::vector<RealTensorValue>>("dPorousFlow_permeability_qp_dvar") &&
95  hasMaterialProperty<std::vector<Real>>("PorousFlow_fluid_phase_density_nodal") &&
96  hasMaterialProperty<std::vector<std::vector<Real>>>(
97  "dPorousFlow_fluid_phase_density_nodal_dvar") &&
98  hasMaterialProperty<std::vector<Real>>("PorousFlow_viscosity_nodal") &&
99  hasMaterialProperty<std::vector<std::vector<Real>>>("dPorousFlow_viscosity_nodal_dvar")),
100  _use_relperm(getParam<bool>("use_relperm")),
101  _has_relperm(hasMaterialProperty<std::vector<Real>>("PorousFlow_relative_permeability_nodal") &&
102  hasMaterialProperty<std::vector<std::vector<Real>>>(
103  "dPorousFlow_relative_permeability_nodal_dvar")),
104  _use_enthalpy(getParam<bool>("use_enthalpy")),
105  _has_enthalpy(hasMaterialProperty<std::vector<Real>>("PorousFlow_fluid_phase_enthalpy_nodal") &&
106  hasMaterialProperty<std::vector<std::vector<Real>>>(
107  "dPorousFlow_fluid_phase_enthalpy_nodal_dvar")),
108  _use_internal_energy(getParam<bool>("use_internal_energy")),
110  hasMaterialProperty<std::vector<Real>>("PorousFlow_fluid_phase_internal_energy_nodal") &&
111  hasMaterialProperty<std::vector<std::vector<Real>>>(
112  "dPorousFlow_fluid_phase_internal_energy_nodal_dvar")),
113  _use_thermal_conductivity(getParam<bool>("use_thermal_conductivity")),
115  hasMaterialProperty<RealTensorValue>("PorousFlow_thermal_conductivity_qp") &&
116  hasMaterialProperty<std::vector<RealTensorValue>>(
117  "dPorousFlow_thermal_conductivity_qp_dvar")),
118  _m_func(getFunction("flux_function")),
120  ? &getMaterialProperty<RealTensorValue>("PorousFlow_permeability_qp")
121  : nullptr),
122  _dpermeability_dvar(_has_mobility ? &getMaterialProperty<std::vector<RealTensorValue>>(
123  "dPorousFlow_permeability_qp_dvar")
124  : nullptr),
126  ? &getMaterialProperty<std::vector<std::vector<RealTensorValue>>>(
127  "dPorousFlow_permeability_qp_dgradvar")
128  : nullptr),
129  _fluid_density_node(_has_mobility ? &getMaterialProperty<std::vector<Real>>(
130  "PorousFlow_fluid_phase_density_nodal")
131  : nullptr),
132  _dfluid_density_node_dvar(_has_mobility ? &getMaterialProperty<std::vector<std::vector<Real>>>(
133  "dPorousFlow_fluid_phase_density_nodal_dvar")
134  : nullptr),
136  ? &getMaterialProperty<std::vector<Real>>("PorousFlow_viscosity_nodal")
137  : nullptr),
138  _dfluid_viscosity_dvar(_has_mobility ? &getMaterialProperty<std::vector<std::vector<Real>>>(
139  "dPorousFlow_viscosity_nodal_dvar")
140  : nullptr),
141  _relative_permeability(_has_relperm ? &getMaterialProperty<std::vector<Real>>(
142  "PorousFlow_relative_permeability_nodal")
143  : nullptr),
145  ? &getMaterialProperty<std::vector<std::vector<Real>>>(
146  "dPorousFlow_relative_permeability_nodal_dvar")
147  : nullptr),
148  _mass_fractions(_has_mass_fraction ? &getMaterialProperty<std::vector<std::vector<Real>>>(
149  "PorousFlow_mass_frac_nodal")
150  : nullptr),
152  ? &getMaterialProperty<std::vector<std::vector<std::vector<Real>>>>(
153  "dPorousFlow_mass_frac_nodal_dvar")
154  : nullptr),
155  _enthalpy(_has_enthalpy ? &getMaterialPropertyByName<std::vector<Real>>(
156  "PorousFlow_fluid_phase_enthalpy_nodal")
157  : nullptr),
158  _denthalpy_dvar(_has_enthalpy ? &getMaterialPropertyByName<std::vector<std::vector<Real>>>(
159  "dPorousFlow_fluid_phase_enthalpy_nodal_dvar")
160  : nullptr),
161  _internal_energy(_has_internal_energy ? &getMaterialPropertyByName<std::vector<Real>>(
162  "PorousFlow_fluid_phase_internal_energy_nodal")
163  : nullptr),
165  ? &getMaterialPropertyByName<std::vector<std::vector<Real>>>(
166  "dPorousFlow_fluid_phase_internal_energy_nodal_dvar")
167  : nullptr),
168  _thermal_conductivity(_has_thermal_conductivity ? &getMaterialProperty<RealTensorValue>(
169  "PorousFlow_thermal_conductivity_qp")
170  : nullptr),
172  ? &getMaterialProperty<std::vector<RealTensorValue>>(
173  "dPorousFlow_thermal_conductivity_qp_dvar")
174  : nullptr),
176 {
178  paramError("fluid_phase",
179  "The Dictator proclaims that the maximum phase index in this simulation is ",
180  _dictator.numPhases() - 1,
181  " whereas you have used ",
182  _ph,
183  ". Remember that indexing starts at 0. You must try harder.");
184 
187  mooseError("PorousFlowSink: To use_mass_fraction, use_mobility, use_relperm, use_enthalpy or "
188  "use_internal_energy, you must provide a fluid phase number");
189 
191  paramError("mass_fraction_component",
192  "The Dictator declares that the maximum fluid component index is ",
193  _dictator.numComponents() - 1,
194  ", but you have set mass_fraction_component to ",
195  _sp,
196  ". Remember that indexing starts at 0. Please be assured that the Dictator has "
197  "noted your error.");
198 
200  mooseError("PorousFlowSink: You have used the use_mass_fraction flag, but you have no "
201  "mass_fraction Material");
202 
204  mooseError("PorousFlowSink: You have used the use_mobility flag, but there are not the "
205  "required Materials for this");
206 
207  if (_use_relperm && !_has_relperm)
208  mooseError(
209  "PorousFlowSink: You have used the use_relperm flag, but you have no relperm Material");
210 
212  mooseError(
213  "PorousFlowSink: You have used the use_enthalpy flag, but you have no enthalpy Material");
214 
216  mooseError("PorousFlowSink: You have used the use_internal_energy flag, but you have no "
217  "internal_energy Material");
218 
220  mooseError("PorousFlowSink: You have used the use_thermal_conductivity flag, but you have no "
221  "thermal_conductivity Material");
222 }

Member Function Documentation

◆ computeQpJacobian()

Real PorousFlowSink::computeQpJacobian ( )
overrideprotectedvirtual

Definition at line 250 of file PorousFlowSink.C.

251 {
252  return jac(_var.number());
253 }

◆ computeQpOffDiagJacobian()

Real PorousFlowSink::computeQpOffDiagJacobian ( unsigned int  jvar)
overrideprotectedvirtual

Definition at line 256 of file PorousFlowSink.C.

257 {
258  return jac(jvar);
259 }

◆ computeQpResidual()

Real PorousFlowSink::computeQpResidual ( )
overrideprotectedvirtual

Definition at line 225 of file PorousFlowSink.C.

226 {
227  Real flux = _test[_i][_qp] * multiplier();
228  if (_use_mobility)
229  {
230  const Real k =
231  ((*_permeability)[_qp] * _normals[_qp]) * _normals[_qp]; // do not upwind permeability
232  flux *= (*_fluid_density_node)[_i][_ph] * k / (*_fluid_viscosity)[_i][_ph];
233  }
234  if (_use_relperm)
235  flux *= (*_relative_permeability)[_i][_ph];
236  if (_use_mass_fraction)
237  flux *= (*_mass_fractions)[_i][_ph][_sp];
238  if (_use_enthalpy)
239  flux *= (*_enthalpy)[_i][_ph];
241  flux *= (*_internal_energy)[_i][_ph];
243  flux *= ((*_thermal_conductivity)[_qp] * _normals[_qp]) *
244  _normals[_qp]; // do not upwind thermal_conductivity
245 
246  return flux;
247 }

◆ dmultiplier_dvar()

Real PorousFlowSink::dmultiplier_dvar ( unsigned int  pvar) const
protectedvirtual

◆ jac()

Real PorousFlowSink::jac ( unsigned int  jvar) const
protected

Derivative of residual with respect to the jvar variable.

Definition at line 262 of file PorousFlowSink.C.

263 {
265  return 0.0;
266  const unsigned int pvar = _dictator.porousFlowVariableNum(jvar);
267 
268  // For _i != _j, note:
269  // since the only non-upwinded contribution to the residual is
270  // from the permeability and thermal_conductivity, the only contribution
271  // of the residual at node _i from changing jvar at node _j is through
272  // the derivative of permeability or thermal_conductivity
273 
274  Real flux = _test[_i][_qp] * multiplier();
275  Real deriv = _test[_i][_qp] * (_i != _j ? 0.0 : dmultiplier_dvar(pvar));
276 
277  if (_use_mobility)
278  {
279  const Real k = ((*_permeability)[_qp] * _normals[_qp]) * _normals[_qp];
280  const Real mob = (*_fluid_density_node)[_i][_ph] * k / (*_fluid_viscosity)[_i][_ph];
281 
282  Real mobprime = 0.0;
283  if (_perm_derivs)
284  {
285  RealTensorValue ktprime = (*_dpermeability_dvar)[_qp][pvar] * _phi[_j][_qp];
286  for (unsigned int i = 0; i < LIBMESH_DIM; ++i)
287  ktprime += (*_dpermeability_dgradvar)[_qp][i][pvar] * _grad_phi[_j][_qp](i);
288  const Real kprime = (ktprime * _normals[_qp]) * _normals[_qp];
289 
290  mobprime += (*_fluid_density_node)[_i][_ph] * kprime / (*_fluid_viscosity)[_i][_ph];
291  }
292 
293  mobprime +=
294  (_i != _j
295  ? 0.0
296  : (*_dfluid_density_node_dvar)[_i][_ph][pvar] * k / (*_fluid_viscosity)[_i][_ph] -
297  (*_fluid_density_node)[_i][_ph] * k * (*_dfluid_viscosity_dvar)[_i][_ph][pvar] /
298  std::pow((*_fluid_viscosity)[_i][_ph], 2));
299  deriv = mob * deriv + mobprime * flux;
300  flux *= mob;
301  }
302  if (_use_relperm)
303  {
304  const Real relperm_prime = (_i != _j ? 0.0 : (*_drelative_permeability_dvar)[_i][_ph][pvar]);
305  deriv = (*_relative_permeability)[_i][_ph] * deriv + relperm_prime * flux;
306  flux *= (*_relative_permeability)[_i][_ph];
307  }
308  if (_use_mass_fraction)
309  {
310  const Real mf_prime = (_i != _j ? 0.0 : (*_dmass_fractions_dvar)[_i][_ph][_sp][pvar]);
311  deriv = (*_mass_fractions)[_i][_ph][_sp] * deriv + mf_prime * flux;
312  flux *= (*_mass_fractions)[_i][_ph][_sp];
313  }
314  if (_use_enthalpy)
315  {
316  const Real en_prime = (_i != _j ? 0.0 : (*_denthalpy_dvar)[_i][_ph][pvar]);
317  deriv = (*_enthalpy)[_i][_ph] * deriv + en_prime * flux;
318  flux *= (*_enthalpy)[_i][_ph];
319  }
321  {
322  const Real ie_prime = (_i != _j ? 0.0 : (*_dinternal_energy_dvar)[_i][_ph][pvar]);
323  deriv = (*_internal_energy)[_i][_ph] * deriv + ie_prime * flux;
324  flux *= (*_internal_energy)[_i][_ph];
325  }
327  {
328  const Real tc = ((*_thermal_conductivity)[_qp] * _normals[_qp]) * _normals[_qp];
329  const RealTensorValue tctprime = (*_dthermal_conductivity_dvar)[_qp][pvar] * _phi[_j][_qp];
330  const Real tcprime = (tctprime * _normals[_qp]) * _normals[_qp];
331  deriv = tc * deriv + tcprime * flux;
332  // don't need this: flux *= tc;
333  }
334  return deriv;
335 }

Referenced by computeQpJacobian(), and computeQpOffDiagJacobian().

◆ multiplier()

Real PorousFlowSink::multiplier ( ) const
protectedvirtual

Member Data Documentation

◆ _denthalpy_dvar

const MaterialProperty<std::vector<std::vector<Real> > >* const PorousFlowSink::_denthalpy_dvar
protected

d(enthalpy of each phase)/d(PorousFlow variable)

Definition at line 132 of file PorousFlowSink.h.

◆ _dfluid_density_node_dvar

const MaterialProperty<std::vector<std::vector<Real> > >* const PorousFlowSink::_dfluid_density_node_dvar
protected

d(Fluid density for each phase (at the node))/d(PorousFlow variable)

Definition at line 108 of file PorousFlowSink.h.

◆ _dfluid_viscosity_dvar

const MaterialProperty<std::vector<std::vector<Real> > >* const PorousFlowSink::_dfluid_viscosity_dvar
protected

d(Viscosity of each component in each phase)/d(PorousFlow variable)

Definition at line 114 of file PorousFlowSink.h.

◆ _dictator

const PorousFlowDictator& PorousFlowSink::_dictator
protected

PorousFlowDictator UserObject.

Definition at line 45 of file PorousFlowSink.h.

Referenced by jac(), and PorousFlowSink().

◆ _dinternal_energy_dvar

const MaterialProperty<std::vector<std::vector<Real> > >* const PorousFlowSink::_dinternal_energy_dvar
protected

d(internal_energy of each phase)/d(PorousFlow variable)

Definition at line 138 of file PorousFlowSink.h.

◆ _dmass_fractions_dvar

const MaterialProperty<std::vector<std::vector<std::vector<Real> > > >* const PorousFlowSink::_dmass_fractions_dvar
protected

d(Mass fraction of each component in each phase)/d(PorousFlow variable)

Definition at line 126 of file PorousFlowSink.h.

◆ _dpermeability_dgradvar

const MaterialProperty<std::vector<std::vector<RealTensorValue> > >* const PorousFlowSink::_dpermeability_dgradvar
protected

d(Permeability)/d(grad(PorousFlow variable))

Definition at line 102 of file PorousFlowSink.h.

Referenced by jac().

◆ _dpermeability_dvar

const MaterialProperty<std::vector<RealTensorValue> >* const PorousFlowSink::_dpermeability_dvar
protected

d(Permeability)/d(PorousFlow variable)

Definition at line 99 of file PorousFlowSink.h.

◆ _drelative_permeability_dvar

const MaterialProperty<std::vector<std::vector<Real> > >* const PorousFlowSink::_drelative_permeability_dvar
protected

d(Relative permeability of each phase)/d(PorousFlow variable)

Definition at line 120 of file PorousFlowSink.h.

◆ _dthermal_conductivity_dvar

const MaterialProperty<std::vector<RealTensorValue> >* const PorousFlowSink::_dthermal_conductivity_dvar
protected

d(Thermal_Conductivity)/d(PorousFlow variable)

Definition at line 144 of file PorousFlowSink.h.

◆ _enthalpy

const MaterialProperty<std::vector<Real> >* const PorousFlowSink::_enthalpy
protected

Enthalpy of each phase.

Definition at line 129 of file PorousFlowSink.h.

◆ _fluid_density_node

const MaterialProperty<std::vector<Real> >* const PorousFlowSink::_fluid_density_node
protected

Fluid density for each phase (at the node)

Definition at line 105 of file PorousFlowSink.h.

◆ _fluid_viscosity

const MaterialProperty<std::vector<Real> >* const PorousFlowSink::_fluid_viscosity
protected

Viscosity of each component in each phase.

Definition at line 111 of file PorousFlowSink.h.

Referenced by jac().

◆ _has_enthalpy

const bool PorousFlowSink::_has_enthalpy
protected

Whether there is an "enthalpy" Material. This is just for error checking.

Definition at line 78 of file PorousFlowSink.h.

Referenced by PorousFlowSink().

◆ _has_internal_energy

const bool PorousFlowSink::_has_internal_energy
protected

Whether there is an "internal_energy" Material. This is just for error checking.

Definition at line 84 of file PorousFlowSink.h.

Referenced by PorousFlowSink().

◆ _has_mass_fraction

const bool PorousFlowSink::_has_mass_fraction
protected

Whether there is a "mass_fraction" Material. This is just for error checking.

Definition at line 57 of file PorousFlowSink.h.

Referenced by PorousFlowSink().

◆ _has_mobility

const bool PorousFlowSink::_has_mobility
protected

Whether there are Materials that can form "mobility". This is just for error checking.

Definition at line 66 of file PorousFlowSink.h.

Referenced by PorousFlowSink().

◆ _has_relperm

const bool PorousFlowSink::_has_relperm
protected

Whether there is a "relperm" Material. This is just for error checking.

Definition at line 72 of file PorousFlowSink.h.

Referenced by PorousFlowSink().

◆ _has_thermal_conductivity

const bool PorousFlowSink::_has_thermal_conductivity
protected

Whether there is an "thermal_conductivity" Material. This is just for error checking.

Definition at line 90 of file PorousFlowSink.h.

Referenced by PorousFlowSink().

◆ _internal_energy

const MaterialProperty<std::vector<Real> >* const PorousFlowSink::_internal_energy
protected

Internal_Energy of each phase.

Definition at line 135 of file PorousFlowSink.h.

◆ _involves_fluid

const bool PorousFlowSink::_involves_fluid
protected

Whether this BC involves fluid (whether the user has supplied a fluid phase number)

Definition at line 48 of file PorousFlowSink.h.

Referenced by PorousFlowSinkPTDefiner::dptVar(), PorousFlowSink(), PorousFlowSinkPTDefiner::PorousFlowSinkPTDefiner(), and PorousFlowSinkPTDefiner::ptVar().

◆ _m_func

const Function& PorousFlowSink::_m_func
protected

The flux.

Definition at line 93 of file PorousFlowSink.h.

Referenced by multiplier().

◆ _mass_fractions

const MaterialProperty<std::vector<std::vector<Real> > >* const PorousFlowSink::_mass_fractions
protected

Mass fraction of each component in each phase.

Definition at line 123 of file PorousFlowSink.h.

◆ _perm_derivs

const bool PorousFlowSink::_perm_derivs
protected

Flag to check whether permeabiity derivatives are non-zero.

Definition at line 156 of file PorousFlowSink.h.

Referenced by jac().

◆ _permeability

const MaterialProperty<RealTensorValue>* const PorousFlowSink::_permeability
protected

Permeability of porous material.

Definition at line 96 of file PorousFlowSink.h.

◆ _ph

const unsigned int PorousFlowSink::_ph
protected

◆ _relative_permeability

const MaterialProperty<std::vector<Real> >* const PorousFlowSink::_relative_permeability
protected

Relative permeability of each phase.

Definition at line 117 of file PorousFlowSink.h.

◆ _sp

const unsigned int PorousFlowSink::_sp
protected

The component number (only used if _use_mass_fraction==true)

Definition at line 60 of file PorousFlowSink.h.

Referenced by computeQpResidual(), jac(), and PorousFlowSink().

◆ _thermal_conductivity

const MaterialProperty<RealTensorValue>* const PorousFlowSink::_thermal_conductivity
protected

Thermal_Conductivity of porous material.

Definition at line 141 of file PorousFlowSink.h.

◆ _use_enthalpy

const bool PorousFlowSink::_use_enthalpy
protected

Whether to multiply the sink flux by enthalpy.

Definition at line 75 of file PorousFlowSink.h.

Referenced by computeQpResidual(), jac(), and PorousFlowSink().

◆ _use_internal_energy

const bool PorousFlowSink::_use_internal_energy
protected

Whether to multiply the sink flux by internal_energy.

Definition at line 81 of file PorousFlowSink.h.

Referenced by computeQpResidual(), jac(), and PorousFlowSink().

◆ _use_mass_fraction

const bool PorousFlowSink::_use_mass_fraction
protected

Whether the flux will be multiplied by the mass fraction.

Definition at line 54 of file PorousFlowSink.h.

Referenced by computeQpResidual(), jac(), and PorousFlowSink().

◆ _use_mobility

const bool PorousFlowSink::_use_mobility
protected

Whether to multiply the sink flux by permeability*density/viscosity.

Definition at line 63 of file PorousFlowSink.h.

Referenced by computeQpResidual(), jac(), and PorousFlowSink().

◆ _use_relperm

const bool PorousFlowSink::_use_relperm
protected

Whether to multiply the sink flux by relative permeability.

Definition at line 69 of file PorousFlowSink.h.

Referenced by computeQpResidual(), jac(), and PorousFlowSink().

◆ _use_thermal_conductivity

const bool PorousFlowSink::_use_thermal_conductivity
protected

Whether to multiply the sink flux by thermal_conductivity.

Definition at line 87 of file PorousFlowSink.h.

Referenced by computeQpResidual(), jac(), and PorousFlowSink().


The documentation for this class was generated from the following files:
PorousFlowSink::_use_mass_fraction
const bool _use_mass_fraction
Whether the flux will be multiplied by the mass fraction.
Definition: PorousFlowSink.h:54
PorousFlowSink::_has_internal_energy
const bool _has_internal_energy
Whether there is an "internal_energy" Material. This is just for error checking.
Definition: PorousFlowSink.h:84
PorousFlowSink::_dpermeability_dvar
const MaterialProperty< std::vector< RealTensorValue > > *const _dpermeability_dvar
d(Permeability)/d(PorousFlow variable)
Definition: PorousFlowSink.h:99
PorousFlowSink::_dictator
const PorousFlowDictator & _dictator
PorousFlowDictator UserObject.
Definition: PorousFlowSink.h:45
PorousFlowSink::_drelative_permeability_dvar
const MaterialProperty< std::vector< std::vector< Real > > > *const _drelative_permeability_dvar
d(Relative permeability of each phase)/d(PorousFlow variable)
Definition: PorousFlowSink.h:120
pow
ExpressionBuilder::EBTerm pow(const ExpressionBuilder::EBTerm &left, T exponent)
Definition: ExpressionBuilder.h:673
PorousFlowSink::_denthalpy_dvar
const MaterialProperty< std::vector< std::vector< Real > > > *const _denthalpy_dvar
d(enthalpy of each phase)/d(PorousFlow variable)
Definition: PorousFlowSink.h:132
PorousFlowSink::_dmass_fractions_dvar
const MaterialProperty< std::vector< std::vector< std::vector< Real > > > > *const _dmass_fractions_dvar
d(Mass fraction of each component in each phase)/d(PorousFlow variable)
Definition: PorousFlowSink.h:126
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
PorousFlowSink::_m_func
const Function & _m_func
The flux.
Definition: PorousFlowSink.h:93
PorousFlowSink::_has_mobility
const bool _has_mobility
Whether there are Materials that can form "mobility". This is just for error checking.
Definition: PorousFlowSink.h:66
PorousFlowSink::_use_relperm
const bool _use_relperm
Whether to multiply the sink flux by relative permeability.
Definition: PorousFlowSink.h:69
PorousFlowSink::_dfluid_viscosity_dvar
const MaterialProperty< std::vector< std::vector< Real > > > *const _dfluid_viscosity_dvar
d(Viscosity of each component in each phase)/d(PorousFlow variable)
Definition: PorousFlowSink.h:114
PorousFlowSink::_mass_fractions
const MaterialProperty< std::vector< std::vector< Real > > > *const _mass_fractions
Mass fraction of each component in each phase.
Definition: PorousFlowSink.h:123
PorousFlowSink::_has_relperm
const bool _has_relperm
Whether there is a "relperm" Material. This is just for error checking.
Definition: PorousFlowSink.h:72
PorousFlowSink::_fluid_viscosity
const MaterialProperty< std::vector< Real > > *const _fluid_viscosity
Viscosity of each component in each phase.
Definition: PorousFlowSink.h:111
PorousFlowSink::_involves_fluid
const bool _involves_fluid
Whether this BC involves fluid (whether the user has supplied a fluid phase number)
Definition: PorousFlowSink.h:48
PorousFlowSink::_has_thermal_conductivity
const bool _has_thermal_conductivity
Whether there is an "thermal_conductivity" Material. This is just for error checking.
Definition: PorousFlowSink.h:90
PorousFlowDictator::porousFlowVariableNum
unsigned int porousFlowVariableNum(unsigned int moose_var_num) const
The PorousFlow variable number.
Definition: PorousFlowDictator.C:135
PorousFlowDictator::numPhases
unsigned int numPhases() const
The number of fluid phases.
Definition: PorousFlowDictator.C:105
PorousFlowSink::dmultiplier_dvar
virtual Real dmultiplier_dvar(unsigned int pvar) const
d(multiplier)/d(Porous flow variable pvar)
Definition: PorousFlowSink.C:344
PorousFlowSink::_use_mobility
const bool _use_mobility
Whether to multiply the sink flux by permeability*density/viscosity.
Definition: PorousFlowSink.h:63
PorousFlowSink::_perm_derivs
const bool _perm_derivs
Flag to check whether permeabiity derivatives are non-zero.
Definition: PorousFlowSink.h:156
PorousFlowSink::_dfluid_density_node_dvar
const MaterialProperty< std::vector< std::vector< Real > > > *const _dfluid_density_node_dvar
d(Fluid density for each phase (at the node))/d(PorousFlow variable)
Definition: PorousFlowSink.h:108
PorousFlowSink::_internal_energy
const MaterialProperty< std::vector< Real > > *const _internal_energy
Internal_Energy of each phase.
Definition: PorousFlowSink.h:135
PorousFlowSink::multiplier
virtual Real multiplier() const
The flux gets multiplied by this quantity.
Definition: PorousFlowSink.C:338
PorousFlowSink::_enthalpy
const MaterialProperty< std::vector< Real > > *const _enthalpy
Enthalpy of each phase.
Definition: PorousFlowSink.h:129
PorousFlowSink::_dthermal_conductivity_dvar
const MaterialProperty< std::vector< RealTensorValue > > *const _dthermal_conductivity_dvar
d(Thermal_Conductivity)/d(PorousFlow variable)
Definition: PorousFlowSink.h:144
PorousFlowSink::_has_mass_fraction
const bool _has_mass_fraction
Whether there is a "mass_fraction" Material. This is just for error checking.
Definition: PorousFlowSink.h:57
PorousFlowSink::_thermal_conductivity
const MaterialProperty< RealTensorValue > *const _thermal_conductivity
Thermal_Conductivity of porous material.
Definition: PorousFlowSink.h:141
PorousFlowSink::_use_enthalpy
const bool _use_enthalpy
Whether to multiply the sink flux by enthalpy.
Definition: PorousFlowSink.h:75
PorousFlowSink::jac
Real jac(unsigned int jvar) const
Derivative of residual with respect to the jvar variable.
Definition: PorousFlowSink.C:262
PorousFlowSink::_fluid_density_node
const MaterialProperty< std::vector< Real > > *const _fluid_density_node
Fluid density for each phase (at the node)
Definition: PorousFlowSink.h:105
PorousFlowSink::_dpermeability_dgradvar
const MaterialProperty< std::vector< std::vector< RealTensorValue > > > *const _dpermeability_dgradvar
d(Permeability)/d(grad(PorousFlow variable))
Definition: PorousFlowSink.h:102
PorousFlowDictator::numComponents
unsigned int numComponents() const
The number of fluid components.
Definition: PorousFlowDictator.C:111
PorousFlowSink::_relative_permeability
const MaterialProperty< std::vector< Real > > *const _relative_permeability
Relative permeability of each phase.
Definition: PorousFlowSink.h:117
PorousFlowSink::_sp
const unsigned int _sp
The component number (only used if _use_mass_fraction==true)
Definition: PorousFlowSink.h:60
PorousFlowSink::_permeability
const MaterialProperty< RealTensorValue > *const _permeability
Permeability of porous material.
Definition: PorousFlowSink.h:96
PorousFlowSink::_has_enthalpy
const bool _has_enthalpy
Whether there is an "enthalpy" Material. This is just for error checking.
Definition: PorousFlowSink.h:78
PorousFlowSink::_ph
const unsigned int _ph
The phase number.
Definition: PorousFlowSink.h:51
PorousFlowDictator::usePermDerivs
bool usePermDerivs() const
Check if the simulation includes derivatives of permeability Note: when the permeability is constant,...
Definition: PorousFlowDictator.h:156
PorousFlowSink::_use_internal_energy
const bool _use_internal_energy
Whether to multiply the sink flux by internal_energy.
Definition: PorousFlowSink.h:81
PorousFlowSink::_use_thermal_conductivity
const bool _use_thermal_conductivity
Whether to multiply the sink flux by thermal_conductivity.
Definition: PorousFlowSink.h:87
PorousFlowSink::_dinternal_energy_dvar
const MaterialProperty< std::vector< std::vector< Real > > > *const _dinternal_energy_dvar
d(internal_energy of each phase)/d(PorousFlow variable)
Definition: PorousFlowSink.h:138