https://mooseframework.inl.gov
Loading...
Searching...
No Matches
PorousFlowHystereticCapillaryPressure.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#include "PorousFlowConstants.h"
15
21{
22public:
24
26
27protected:
28 virtual void initQpStatefulProperties() override;
29 virtual void computeQpProperties() override;
30
36 Real landSat(Real slDel) const;
37
45 void computeTurningPointInfo(unsigned tp_num, Real tp_sat, Real tp_pc);
46
52 Real capillaryPressureQp(Real sat) const;
53
58 Real dcapillaryPressureQp(Real sat) const;
59
64 Real d2capillaryPressureQp(Real sat) const;
65
71 Real liquidSaturationQp(Real pc) const;
72
77 Real dliquidSaturationQp(Real pc) const;
78
83 Real d2liquidSaturationQp(Real pc) const;
84
86 const Real _alpha_d;
88 const Real _alpha_w;
90 const Real _n_d;
92 const Real _n_w;
94 const Real _s_l_min;
96 const Real _s_lr;
98 const Real _s_gr_max;
100 const Real _pc_max;
102 const Real _high_ratio;
106 const Real _s_low_d;
108 const Real _dpc_low_d;
112 const Real _s_low_w;
114 const Real _dpc_low_w;
120 const Real _s_high;
122 const Real _pc_high;
124 const Real _dpc_high;
127
130
133
137
140
143
146
149
153
157
160
161private:
166 Real firstOrderWettingPc(Real sat) const;
167
172 Real dfirstOrderWettingPc(Real sat) const;
173
178 Real d2firstOrderWettingPc(Real sat) const;
179
184 Real secondOrderDryingPc(Real sat) const;
185
190 Real dsecondOrderDryingPc(Real sat) const;
191
196 Real d2secondOrderDryingPc(Real sat) const;
197
202 Real firstOrderWettingSat(Real pc) const;
203
208 Real dfirstOrderWettingSat(Real pc) const;
209
214 Real d2firstOrderWettingSat(Real pc) const;
215
220 Real secondOrderDryingSat(Real pc) const;
221
226 Real dsecondOrderDryingSat(Real pc) const;
227
232 Real d2secondOrderDryingSat(Real pc) const;
233};
Base material designed to calculate and store quantities relevant for hysteretic capillary pressure c...
const Real _dpc_high
d(Pc)/d(S) at the point of high-saturation extension
const Real _pc_high
Pc at the point of high-saturation extension.
const PorousFlowVanGenuchten::LowCapillaryPressureExtension _low_ext_d
Parameters involved in the low-saturation extension of the primary drying curve.
const Real _high_ratio
The high-saturation extension to the wetting will commence at _high_ratio * (1 - _s_gr_del)
MaterialProperty< std::array< Real, PorousFlowConstants::MAX_HYSTERESIS_ORDER > > & _s_d_tps
Computed nodal or quadpoint values of saturation on the drying curve at _pc_tps.
const MaterialProperty< unsigned > & _hys_order
Hysteresis order, as computed by PorousFlowHysteresisOrder.
const PorousFlowVanGenuchten::HighCapillaryPressureExtension::ExtensionStrategy _high_ext_type
Type of high-saturation extension of the wetting curves.
const Real _s_l_min
Minimum liquid saturation for which the van Genuchten expression is valid (Pc(_s_l_min) = infinity)
const PorousFlowVanGenuchten::LowCapillaryPressureExtension _low_ext_w
Parameters involved in the low-saturation extension of the primary wetting curve.
const Real _s_low_w
Saturation on the primary wetting curve where low-saturation extension commences.
MaterialProperty< std::array< Real, PorousFlowConstants::MAX_HYSTERESIS_ORDER > > & _pc_tps
Nodal or quadpoint values of Pc at the turning points.
const Real _dpc_low_w
d(Pc)/dS on the primary wetting curve at S = _s_low_w
const MaterialProperty< std::array< Real, PorousFlowConstants::MAX_HYSTERESIS_ORDER > > & _hys_sat_tps
Saturation values at the turning points, as computed by PorousFlowHysteresisOrder.
const Real _s_gr_max
Residual gas saturation: 1 - _s_gr_max is the maximum saturation for which the van Genuchten expressi...
MaterialProperty< std::array< PorousFlowVanGenuchten::HighCapillaryPressureExtension, PorousFlowConstants::MAX_HYSTERESIS_ORDER > > & _w_high_ext_tps
Nodal or quadpoint values of the high extension of the wetting curve defined by _s_gr_tps.
const Real _n_d
van Genuchten n parameter for the primary drying curve
const Real _s_low_d
Saturation on the primary drying curve where low-saturation extension commences.
const Real _dpc_low_d
d(Pc)/dS on the primary drying curve at S = _s_low_d
void computeTurningPointInfo(unsigned tp_num, Real tp_sat, Real tp_pc)
Compute all relevant quantities at the given turning point.
const Real _s_lr
Liquid saturation below which the liquid relative permeability is zero.
const Real _alpha_w
van Genuchten alpha parameter for the primary wetting curve
MaterialProperty< std::array< Real, PorousFlowConstants::MAX_HYSTERESIS_ORDER > > & _s_gr_tps
Computed nodal or quadpoint values of S_gr_Del, ie, the Land expression, at the turning points.
const Real _pc_max
Maximum capillary pressure: for Pc above this value, a "lower" extension will be used.
const Real _alpha_d
van Genuchten alpha parameter for the primary drying curve
const PorousFlowVanGenuchten::HighCapillaryPressureExtension _high_ext
Parameters involved in the high-saturation extension of the primary wetting curve.
const Real _s_high
Saturation at the point of high-saturation extension.
const MaterialProperty< Real > & _pc_older
Older value of capillary pressure.
const Real _n_w
van Genuchten n parameter for the primary wetting curve
MaterialProperty< std::array< Real, PorousFlowConstants::MAX_HYSTERESIS_ORDER > > & _s_w_tps
Computed nodal or quadpoint values of liquid saturation on the wetting curve defined by _s_gr_del,...
const MaterialProperty< unsigned > & _hys_order_old
Old value of hysteresis order, as computed by PorousFlowHysteresisOrder.
const PorousFlowVanGenuchten::LowCapillaryPressureExtension::ExtensionStrategy _low_ext_type
Type of low-saturation extension.
MaterialProperty< std::array< PorousFlowVanGenuchten::LowCapillaryPressureExtension, PorousFlowConstants::MAX_HYSTERESIS_ORDER > > & _w_low_ext_tps
Nodal or quadpoint values of the low extension of the wetting curve defined by _s_gr_tps.
Base class for thermophysical variable materials, which assemble materials for primary variables such...
constexpr unsigned MAX_HYSTERESIS_ORDER
Parameters associated with the extension of the hysteretic wetting capillary pressure function to hig...
Parameters associated with the extension of the hysteretic capillary pressure function to low saturat...