www.mooseframework.org
PorousFlowPorosity.h
Go to the documentation of this file.
1 //* This file is part of the MOOSE framework
2 //* https://www.mooseframework.org
3 //*
4 //* All rights reserved, see COPYRIGHT for full restrictions
5 //* https://github.com/idaholab/moose/blob/master/COPYRIGHT
6 //*
7 //* Licensed under LGPL 2.1, please see LICENSE for details
8 //* https://www.gnu.org/licenses/lgpl-2.1.html
9 
10 #pragma once
11 
13 
21 {
22 public:
24 
25  PorousFlowPorosity(const InputParameters & parameters);
26 
27 protected:
28  virtual Real atNegInfinityQp() const override;
29  virtual Real datNegInfinityQp(unsigned pvar) const override;
30  virtual Real atZeroQp() const override;
31  virtual Real datZeroQp(unsigned pvar) const override;
32  virtual Real decayQp() const override;
33  virtual Real ddecayQp_dvar(unsigned pvar) const override;
34  virtual RealGradient ddecayQp_dgradvar(unsigned pvar) const override;
35 
37  const bool _mechanical;
38 
40  const bool _fluid;
41 
43  const bool _thermal;
44 
46  const bool _chemical;
47 
50 
52  const Real _biot;
53 
56 
59 
61  const Real _coeff;
62 
65 
68 
70  const unsigned _num_c_ref;
71 
73  std::vector<const VariableValue *> _c_reference;
74 
76  const unsigned _num_initial_c;
77 
79  std::vector<const VariableValue *> _initial_c;
80 
82  std::vector<Real> _c_weights;
83 
86 
89 
92 
94  const MaterialProperty<Real> * const _pf;
95 
98 
101 
104 
107 
110 
113 
115  const unsigned int _aq_ph;
116 
119 
122 };
const Real _coeff
Short-hand number (biot-1)/solid_bulk.
const MaterialProperty< std::vector< Real > > *const _dtemperature_dvar
d(temperature)/(d porflow variable)
Base class Material designed to provide the porosity.
const Real _biot
Biot coefficient.
const VariableValue & _t_reference
Reference temperature.
const VariableValue & _phi0
Porosity at zero strain and zero porepressure and zero temperature.
const MaterialProperty< std::vector< Real > > *const _reaction_rate
Reaction rate of mineralisation.
const Real _solid_bulk
Drained bulk modulus of the porous skeleton.
const MaterialProperty< std::vector< Real > > *const _saturation
Saturation.
virtual RealGradient ddecayQp_dgradvar(unsigned pvar) const override
d(decay)/d(grad(PorousFlow variable pvar))
const MaterialProperty< std::vector< Real > > *const _mineral_conc_old
Old value of mineral concentration at the quadpoints or nodes.
const bool _thermal
Porosity is a function of temperature.
std::vector< Real > _c_weights
Weights for the mineral concentrations.
const bool _chemical
Porosity is a function of chemistry.
virtual Real datZeroQp(unsigned pvar) const override
d(a)/d(PorousFlow variable pvar)
const MaterialProperty< std::vector< std::vector< Real > > > *const _dreaction_rate_dvar
d(reaction_rate_conc)/d(porflow variable)
const unsigned _num_c_ref
Number of reference mineral concentrations provided by user.
const MaterialProperty< Real > *const _porosity_old
Old value of porosity.
const unsigned int _aq_ph
Aqueous phase number.
const MaterialProperty< Real > *const _pf
Effective porepressure at the quadpoints or nodes.
std::vector< const VariableValue * > _initial_c
Reference mineral concentrations.
const MaterialProperty< std::vector< std::vector< Real > > > *const _dsaturation_dvar
d(saturation)/d(PorousFlow var)
const MaterialProperty< std::vector< Real > > *const _dpf_dvar
d(effective porepressure)/(d porflow variable)
const MaterialProperty< Real > *const _temperature
Temperature at the quadpoints or nodes.
const Real _exp_coeff
Thermal expansion coefficient of the solid porous skeleton.
const VariableValue & _p_reference
Reference porepressure.
const unsigned _num_initial_c
Number of reference mineral concentrations provided by user.
const bool _fluid
Porosity is a function of effective porepressure.
OutputTools< Real >::VariableValue VariableValue
PorousFlowPorosity(const InputParameters &parameters)
std::vector< const VariableValue * > _c_reference
Reference mineral concentrations.
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
Material designed to provide the porosity in PorousFlow simulations chemistry + biot + (phi0 - refere...
virtual Real atZeroQp() const override
Returns "b" at the quadpoint (porosity = a + (b - a) * exp(decay))
const bool _mechanical
Porosity is a function of volumetric strain.
virtual Real datNegInfinityQp(unsigned pvar) const override
d(a)/d(PorousFlow variable pvar)
virtual Real decayQp() const override
Returns "decay" at the quadpoint (porosity = a + (b - a) * exp(decay))
const MaterialProperty< std::vector< RealGradient > > *const _dvol_strain_qp_dvar
d(strain)/(dvar) (first const means we never want to dereference and change the value, second means we&#39;ll always be pointing to the same address after initialization (like a reference))
virtual Real atNegInfinityQp() const override
Returns "a" at the quadpoint (porosity = a + (b - a) * exp(decay))
const MaterialProperty< Real > *const _vol_strain_qp
Strain (first const means we never want to dereference and change the value, second means we&#39;ll alway...
virtual Real ddecayQp_dvar(unsigned pvar) const override
d(decay)/d(PorousFlow variable pvar)
static InputParameters validParams()