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 
14 class PorousFlowPorosity;
15 
16 template <>
17 InputParameters validParams<PorousFlowPorosity>();
18 
26 {
27 public:
28  PorousFlowPorosity(const InputParameters & parameters);
29 
30 protected:
31  virtual Real atNegInfinityQp() const override;
32  virtual Real datNegInfinityQp(unsigned pvar) const override;
33  virtual Real atZeroQp() const override;
34  virtual Real datZeroQp(unsigned pvar) const override;
35  virtual Real decayQp() const override;
36  virtual Real ddecayQp_dvar(unsigned pvar) const override;
37  virtual RealGradient ddecayQp_dgradvar(unsigned pvar) const override;
38 
40  const bool _mechanical;
41 
43  const bool _fluid;
44 
46  const bool _thermal;
47 
49  const bool _chemical;
50 
52  const VariableValue & _phi0;
53 
55  const Real _biot;
56 
58  const Real _exp_coeff;
59 
61  const Real _solid_bulk;
62 
64  const Real _coeff;
65 
67  const VariableValue & _t_reference;
68 
70  const VariableValue & _p_reference;
71 
73  const unsigned _num_c_ref;
74 
76  std::vector<const VariableValue *> _c_reference;
77 
79  const unsigned _num_initial_c;
80 
82  std::vector<const VariableValue *> _initial_c;
83 
85  std::vector<Real> _c_weights;
86 
88  const MaterialProperty<Real> * const _porosity_old;
89 
91  const MaterialProperty<Real> * const _vol_strain_qp;
92 
94  const MaterialProperty<std::vector<RealGradient>> * const _dvol_strain_qp_dvar;
95 
97  const MaterialProperty<Real> * const _pf;
98 
100  const MaterialProperty<std::vector<Real>> * const _dpf_dvar;
101 
103  const MaterialProperty<Real> * const _temperature;
104 
106  const MaterialProperty<std::vector<Real>> * const _dtemperature_dvar;
107 
109  const MaterialProperty<std::vector<Real>> * const _mineral_conc_old;
110 
112  const MaterialProperty<std::vector<Real>> * const _reaction_rate;
113 
115  const MaterialProperty<std::vector<std::vector<Real>>> * const _dreaction_rate_dvar;
116 
118  const unsigned int _aq_ph;
119 
121  const MaterialProperty<std::vector<Real>> * const _saturation;
122 
124  const MaterialProperty<std::vector<std::vector<Real>>> * const _dsaturation_dvar;
125 };
PorousFlowPorosity::_c_weights
std::vector< Real > _c_weights
Weights for the mineral concentrations.
Definition: PorousFlowPorosity.h:85
PorousFlowPorosity
Material designed to provide the porosity in PorousFlow simulations chemistry + biot + (phi0 - refere...
Definition: PorousFlowPorosity.h:25
PorousFlowPorosity::_chemical
const bool _chemical
Porosity is a function of chemistry.
Definition: PorousFlowPorosity.h:49
PorousFlowPorosity::_dreaction_rate_dvar
const MaterialProperty< std::vector< std::vector< Real > > > *const _dreaction_rate_dvar
d(reaction_rate_conc)/d(porflow variable)
Definition: PorousFlowPorosity.h:115
PorousFlowPorosity::ddecayQp_dvar
virtual Real ddecayQp_dvar(unsigned pvar) const override
d(decay)/d(PorousFlow variable pvar)
Definition: PorousFlowPorosity.C:276
PorousFlowPorosity::decayQp
virtual Real decayQp() const override
Returns "decay" at the quadpoint (porosity = a + (b - a) * exp(decay))
Definition: PorousFlowPorosity.C:251
PorousFlowPorosity::_mineral_conc_old
const MaterialProperty< std::vector< Real > > *const _mineral_conc_old
Old value of mineral concentration at the quadpoints or nodes.
Definition: PorousFlowPorosity.h:109
PorousFlowPorosity::_dvol_strain_qp_dvar
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,...
Definition: PorousFlowPorosity.h:94
libMesh::RealGradient
VectorValue< Real > RealGradient
Definition: GrainForceAndTorqueInterface.h:17
PorousFlowPorosity::_vol_strain_qp
const MaterialProperty< Real > *const _vol_strain_qp
Strain (first const means we never want to dereference and change the value, second means we'll alway...
Definition: PorousFlowPorosity.h:91
PorousFlowPorosity::_dpf_dvar
const MaterialProperty< std::vector< Real > > *const _dpf_dvar
d(effective porepressure)/(d porflow variable)
Definition: PorousFlowPorosity.h:100
PorousFlowPorosity::datZeroQp
virtual Real datZeroQp(unsigned pvar) const override
d(a)/d(PorousFlow variable pvar)
Definition: PorousFlowPorosity.C:239
PorousFlowPorosity::_coeff
const Real _coeff
Short-hand number (biot-1)/solid_bulk.
Definition: PorousFlowPorosity.h:64
PorousFlowPorosity::_solid_bulk
const Real _solid_bulk
Drained bulk modulus of the porous skeleton.
Definition: PorousFlowPorosity.h:61
PorousFlowPorosity::_fluid
const bool _fluid
Porosity is a function of effective porepressure.
Definition: PorousFlowPorosity.h:43
PorousFlowPorosity::datNegInfinityQp
virtual Real datNegInfinityQp(unsigned pvar) const override
d(a)/d(PorousFlow variable pvar)
Definition: PorousFlowPorosity.C:207
PorousFlowPorosity::atZeroQp
virtual Real atZeroQp() const override
Returns "b" at the quadpoint (porosity = a + (b - a) * exp(decay))
Definition: PorousFlowPorosity.C:219
PorousFlowPorosity::_phi0
const VariableValue & _phi0
Porosity at zero strain and zero porepressure and zero temperature.
Definition: PorousFlowPorosity.h:52
PorousFlowPorosity::_t_reference
const VariableValue & _t_reference
Reference temperature.
Definition: PorousFlowPorosity.h:67
PorousFlowPorosity::_p_reference
const VariableValue & _p_reference
Reference porepressure.
Definition: PorousFlowPorosity.h:70
PorousFlowPorosity::_pf
const MaterialProperty< Real > *const _pf
Effective porepressure at the quadpoints or nodes.
Definition: PorousFlowPorosity.h:97
PorousFlowPorosity::_exp_coeff
const Real _exp_coeff
Thermal expansion coefficient of the solid porous skeleton.
Definition: PorousFlowPorosity.h:58
PorousFlowPorosity::_saturation
const MaterialProperty< std::vector< Real > > *const _saturation
Saturation.
Definition: PorousFlowPorosity.h:121
PorousFlowPorosity::_porosity_old
const MaterialProperty< Real > *const _porosity_old
Old value of porosity.
Definition: PorousFlowPorosity.h:88
PorousFlowPorosity::_aq_ph
const unsigned int _aq_ph
Aqueous phase number.
Definition: PorousFlowPorosity.h:118
PorousFlowPorosity::_num_c_ref
const unsigned _num_c_ref
Number of reference mineral concentrations provided by user.
Definition: PorousFlowPorosity.h:73
validParams< PorousFlowPorosity >
InputParameters validParams< PorousFlowPorosity >()
Definition: PorousFlowPorosity.C:16
PorousFlowPorosity::_initial_c
std::vector< const VariableValue * > _initial_c
Reference mineral concentrations.
Definition: PorousFlowPorosity.h:82
PorousFlowPorosity::_thermal
const bool _thermal
Porosity is a function of temperature.
Definition: PorousFlowPorosity.h:46
PorousFlowPorosity::PorousFlowPorosity
PorousFlowPorosity(const InputParameters &parameters)
Definition: PorousFlowPorosity.C:60
PorousFlowPorosity::_dsaturation_dvar
const MaterialProperty< std::vector< std::vector< Real > > > *const _dsaturation_dvar
d(saturation)/d(PorousFlow var)
Definition: PorousFlowPorosity.h:124
PorousFlowPorosityExponentialBase
Base class Material designed to provide the porosity.
Definition: PorousFlowPorosityExponentialBase.h:36
PorousFlowPorosity::_c_reference
std::vector< const VariableValue * > _c_reference
Reference mineral concentrations.
Definition: PorousFlowPorosity.h:76
PorousFlowPorosity::ddecayQp_dgradvar
virtual RealGradient ddecayQp_dgradvar(unsigned pvar) const override
d(decay)/d(grad(PorousFlow variable pvar))
Definition: PorousFlowPorosity.C:290
PorousFlowPorosity::_reaction_rate
const MaterialProperty< std::vector< Real > > *const _reaction_rate
Reaction rate of mineralisation.
Definition: PorousFlowPorosity.h:112
PorousFlowPorosityExponentialBase.h
PorousFlowPorosity::_num_initial_c
const unsigned _num_initial_c
Number of reference mineral concentrations provided by user.
Definition: PorousFlowPorosity.h:79
PorousFlowPorosity::_dtemperature_dvar
const MaterialProperty< std::vector< Real > > *const _dtemperature_dvar
d(temperature)/(d porflow variable)
Definition: PorousFlowPorosity.h:106
PorousFlowPorosity::_biot
const Real _biot
Biot coefficient.
Definition: PorousFlowPorosity.h:55
PorousFlowPorosity::_mechanical
const bool _mechanical
Porosity is a function of volumetric strain.
Definition: PorousFlowPorosity.h:40
PorousFlowPorosity::atNegInfinityQp
virtual Real atNegInfinityQp() const override
Returns "a" at the quadpoint (porosity = a + (b - a) * exp(decay))
Definition: PorousFlowPorosity.C:178
PorousFlowPorosity::_temperature
const MaterialProperty< Real > *const _temperature
Temperature at the quadpoints or nodes.
Definition: PorousFlowPorosity.h:103