https://mooseframework.inl.gov
Loading...
Searching...
No Matches
PorousFlowPorosity.h
Go to the documentation of this file.
1//* This file is part of the MOOSE framework
2//* https://mooseframework.inl.gov
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
20template <bool is_ad>
22{
23public:
25
26 PorousFlowPorosityTempl(const InputParameters & parameters);
27
28protected:
29 virtual GenericReal<is_ad> atNegInfinityQp() const override;
30 virtual Real datNegInfinityQp(unsigned pvar) const override;
31 virtual GenericReal<is_ad> atZeroQp() const override;
32 virtual Real datZeroQp(unsigned pvar) const override;
33 virtual GenericReal<is_ad> decayQp() const override;
34 virtual Real ddecayQp_dvar(unsigned pvar) const override;
35 virtual RealGradient ddecayQp_dgradvar(unsigned pvar) const override;
36
38 const bool _mechanical;
39
41 const bool _fluid;
42
44 const bool _thermal;
45
47 const bool _chemical;
48
51
53 const Real _biot;
54
56 const Real _exp_coeff;
57
61
63 const Real _coeff;
64
67
70
72 const unsigned _num_c_ref;
73
75 std::vector<const VariableValue *> _c_reference;
76
78 const unsigned _num_initial_c;
79
81 std::vector<const VariableValue *> _initial_c;
82
84 std::vector<Real> _c_weights;
85
88
91
94
97
100
103
106
109
112
115
117 const unsigned int _aq_ph;
118
121
124
126};
127
typename GenericMaterialPropertyStruct< T, is_ad >::type GenericMaterialProperty
Moose::GenericType< Real, is_ad > GenericReal
PorousFlowPorosityTempl< true > ADPorousFlowPorosity
PorousFlowPorosityTempl< false > PorousFlowPorosity
Base class Material designed to provide the porosity.
Material designed to provide the porosity in PorousFlow simulations chemistry + biot + (phi0 - refere...
const Real _exp_coeff
Thermal expansion coefficient of the solid porous skeleton.
const MaterialProperty< Real > *const _porosity_old
Old value of porosity.
const MaterialProperty< std::vector< Real > > *const _saturation
Saturation.
const bool _chemical
Porosity is a function of chemistry.
const VariableValue & _phi0
Porosity at zero strain and zero porepressure and zero temperature.
virtual GenericReal< is_ad > 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 GenericReal< is_ad > decayQp() const override
Returns "decay" at the quadpoint (porosity = a + (b - a) * exp(decay))
const GenericMaterialProperty< Real, is_ad > *const _vol_strain_qp
Strain.
const Real _coeff
Short-hand number (biot-1). Please note: this variable is not yet divided by solid_bulk.
const MaterialProperty< std::vector< Real > > *const _dtemperature_dvar
d(temperature)/(d porflow variable)
const Real _biot
Biot coefficient.
const unsigned _num_c_ref
Number of reference mineral concentrations provided by user.
const bool _fluid
Porosity is a function of effective porepressure.
const bool _thermal
Porosity is a function of temperature.
std::vector< Real > _c_weights
Weights for the mineral concentrations.
const unsigned _num_initial_c
Number of reference mineral concentrations provided by user.
const VariableValue & _p_reference
Reference porepressure.
static InputParameters validParams()
const MaterialProperty< std::vector< Real > > *const _dpf_dvar
d(effective porepressure)/(d porflow variable)
virtual GenericReal< is_ad > atNegInfinityQp() const override
Returns "a" at the quadpoint (porosity = a + (b - a) * exp(decay))
const GenericMaterialProperty< Real, is_ad > *const _pf
Effective porepressure at the quadpoints or nodes.
const MaterialProperty< std::vector< Real > > *const _mineral_conc_old
Old value of mineral concentration at the quadpoints or nodes.
virtual Real datZeroQp(unsigned pvar) const override
d(b)/d(PorousFlow variable pvar)
const MaterialProperty< std::vector< std::vector< Real > > > *const _dreaction_rate_dvar
d(reaction_rate_conc)/d(porflow variable)
std::vector< const VariableValue * > _c_reference
Reference mineral concentrations.
const VariableValue & _t_reference
Reference temperature.
const Moose::Functor< Real > * _solid_bulk
Drained bulk modulus of the porous skeleton (as a functor; can be variable, function,...
const unsigned int _aq_ph
Aqueous phase number.
const MaterialProperty< std::vector< Real > > *const _reaction_rate
Reaction rate of mineralisation.
const GenericMaterialProperty< Real, is_ad > *const _temperature
Temperature at the quadpoints or nodes.
virtual RealGradient ddecayQp_dgradvar(unsigned pvar) const override
d(decay)/d(grad(PorousFlow variable pvar))
const MaterialProperty< std::vector< RealGradient > > *const _dvol_strain_qp_dvar
d(strain)/(dvar)
const MaterialProperty< std::vector< std::vector< Real > > > *const _dsaturation_dvar
d(saturation)/d(PorousFlow var)
virtual Real ddecayQp_dvar(unsigned pvar) const override
d(decay)/d(PorousFlow variable pvar)
virtual Real datNegInfinityQp(unsigned pvar) const override
d(a)/d(PorousFlow variable pvar)
std::vector< const VariableValue * > _initial_c
Reference mineral concentrations.
VariableValueTempl< false > VariableValue