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
21{
22public:
24
25 PorousFlowPorosity(const InputParameters & parameters);
26
27protected:
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
55 const Real _exp_coeff;
56
60
62 const Real _coeff;
63
66
69
71 const unsigned _num_c_ref;
72
74 std::vector<const VariableValue *> _c_reference;
75
77 const unsigned _num_initial_c;
78
80 std::vector<const VariableValue *> _initial_c;
81
83 std::vector<Real> _c_weights;
84
87
90
93
96
99
102
105
108
111
114
116 const unsigned int _aq_ph;
117
120
123};
Base class Material designed to provide the porosity.
Material designed to provide the porosity in PorousFlow simulations chemistry + biot + (phi0 - refere...
const bool _chemical
Porosity is a function of chemistry.
const MaterialProperty< std::vector< Real > > *const _dpf_dvar
d(effective porepressure)/(d porflow variable)
const Moose::Functor< Real > * _solid_bulk
Drained bulk modulus of the porous skeleton (as a functor; can be variable, function,...
const MaterialProperty< Real > *const _porosity_old
Old value of porosity.
std::vector< const VariableValue * > _c_reference
Reference mineral concentrations.
virtual Real datNegInfinityQp(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)
std::vector< Real > _c_weights
Weights for the mineral concentrations.
const VariableValue & _t_reference
Reference temperature.
const Real _exp_coeff
Thermal expansion coefficient of the solid porous skeleton.
const MaterialProperty< std::vector< std::vector< Real > > > *const _dsaturation_dvar
d(saturation)/d(PorousFlow var)
virtual Real atZeroQp() const override
Returns "b" at the quadpoint (porosity = a + (b - a) * exp(decay))
const MaterialProperty< Real > *const _temperature
Temperature at the quadpoints or nodes.
const unsigned _num_c_ref
Number of reference mineral concentrations provided by user.
virtual Real datZeroQp(unsigned pvar) const override
d(a)/d(PorousFlow variable pvar)
const unsigned _num_initial_c
Number of reference mineral concentrations provided by user.
const MaterialProperty< std::vector< Real > > *const _reaction_rate
Reaction rate of mineralisation.
const MaterialProperty< std::vector< Real > > *const _mineral_conc_old
Old value of mineral concentration at the quadpoints or nodes.
const bool _fluid
Porosity is a function of effective porepressure.
const MaterialProperty< std::vector< Real > > *const _dtemperature_dvar
d(temperature)/(d porflow variable)
virtual Real ddecayQp_dvar(unsigned pvar) const override
d(decay)/d(PorousFlow variable pvar)
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,...
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...
const VariableValue & _phi0
Porosity at zero strain and zero porepressure and zero temperature.
const MaterialProperty< Real > *const _pf
Effective porepressure at the quadpoints or nodes.
std::vector< const VariableValue * > _initial_c
Reference mineral concentrations.
static InputParameters validParams()
virtual Real atNegInfinityQp() const override
Returns "a" at the quadpoint (porosity = a + (b - a) * exp(decay))
const Real _biot
Biot coefficient.
const Real _coeff
Short-hand number (biot-1). Please note: this variable is not yet divided by solid_bulk.
virtual RealGradient ddecayQp_dgradvar(unsigned pvar) const override
d(decay)/d(grad(PorousFlow variable pvar))
const bool _mechanical
Porosity is a function of volumetric strain.
virtual Real decayQp() const override
Returns "decay" at the quadpoint (porosity = a + (b - a) * exp(decay))
const VariableValue & _p_reference
Reference porepressure.
const bool _thermal
Porosity is a function of temperature.
const MaterialProperty< std::vector< Real > > *const _saturation
Saturation.
const unsigned int _aq_ph
Aqueous phase number.
VariableValueTempl< false > VariableValue