BELFEM 0.9.0
Berkeley Lab Finite Element Framework
Loading...
Searching...
No Matches
cl_GM_EoS.hpp
Go to the documentation of this file.
1/*
2 * BELFEM -- The Berkeley Lab Finite Element Framework
3 * Copyright (c) 2026, The Regents of the University of California,
4 * through Lawrence Berkeley National Laboratory (subject to receipt of any required
5 * approvals from the U.S. Dept. of Energy). All rights reserved.
6 *
7 * Developers: Christian Messe, Gregory Giard
8 *
9 * See the top-level LICENSE file for the complete license and disclaimer.
10 */
11
12#ifndef BELFEM_CL_GM_EOS_HPP
13#define BELFEM_CL_GM_EOS_HPP
14
15#include "typedefs.hpp"
16
17namespace belfem
18{
19 // forward declaration for parent
20 class Gas;
21
22 namespace gasmodels
23 {
24 // forward declaration for statevals
25 class Statevals;
26
33 class EoS
34 {
35//------------------------------------------------------------------------------
36 protected:
37//------------------------------------------------------------------------------
38
43
48
52 const real & mR;
53
57 const real & mM;
58
59
60//------------------------------------------------------------------------------
61 public:
62//------------------------------------------------------------------------------
63
64 EoS( Gas & aParent );
65
66//------------------------------------------------------------------------------
67
68 virtual ~EoS() = default;
69
70//------------------------------------------------------------------------------
71
75 virtual void
76 remix() ;
77
78//------------------------------------------------------------------------------
79// Thermodynamic States
80//------------------------------------------------------------------------------
81
85 virtual real
86 p( const real T, const real v ) const = 0;
87
88//------------------------------------------------------------------------------
89
93 virtual real
94 v( const real T, const real p ) const = 0;
95
96//------------------------------------------------------------------------------
97
101 virtual real
102 T( const real p, const real v ) const = 0;
103
104//------------------------------------------------------------------------------
105// State Derivatives
106//------------------------------------------------------------------------------
107
108 virtual real
109 dpdT( const real T, const real v ) const = 0;
110
111//------------------------------------------------------------------------------
112
113 virtual real
114 d2pdT2( const real T, const real v ) const;
115
116//------------------------------------------------------------------------------
117
118 virtual real
119 dpdv( const real T, const real v ) const = 0;
120
121//------------------------------------------------------------------------------
122
123 virtual real
124 d2pdv2( const real T, const real v ) const;
125
126//------------------------------------------------------------------------------
127
128 virtual real
129 dvdT( const real T, const real v ) const;
130
131//------------------------------------------------------------------------------
132// Thermodynamic Coefficients
133//------------------------------------------------------------------------------
134
140 virtual real
141 alpha( const real T, const real p ) const;
142
143//------------------------------------------------------------------------------
144
145
151 virtual real
152 beta( const real T, const real p ) const;
153
154//------------------------------------------------------------------------------
155
161 virtual real
162 kappa( const real T, const real p ) const;
163
164//------------------------------------------------------------------------------
165// Caloric Functions ( only for special fluid models )
166//------------------------------------------------------------------------------
167
168 virtual real
169 h( const real T, const real p ) const;
170
171//------------------------------------------------------------------------------
172
173 virtual real
174 hvap( const real T, const real p ) const;
175
176//------------------------------------------------------------------------------
177
178 virtual real
179 cv( const real T, const real p ) const;
180
181//------------------------------------------------------------------------------
182
183 virtual real
184 cp( const real T, const real p ) const;
185
186//------------------------------------------------------------------------------
187
188 virtual real
189 s( const real T, const real p ) const;
190
191//------------------------------------------------------------------------------
192
193 virtual real
194 dsdT( const real T, const real p ) const;
195
196//------------------------------------------------------------------------------
197
198 virtual real
199 dsdp( const real T, const real p ) const;
200
201//------------------------------------------------------------------------------
202
209 virtual real
210 w( const real T, const real p ) const;
211
212//------------------------------------------------------------------------------
213// Departure Functions
214//------------------------------------------------------------------------------
215
216 virtual real
217 hdep( const real T, const real p ) const;
218
219//------------------------------------------------------------------------------
220
221 virtual real
222 cpdep( const real T, const real p ) const;
223
224//------------------------------------------------------------------------------
225
226 virtual real
227 sdep( const real T, const real p ) const;
228
229//------------------------------------------------------------------------------
230
231 virtual real
232 dhdepdp( const real T, const real p ) const;
233
234//------------------------------------------------------------------------------
235
236 // temperature derivative of entropy departure
237 virtual real
238 dsdepdT( const real T, const real p ) const;
239
240//------------------------------------------------------------------------------
241
242 // pressure derivative of entropy departure
243 virtual real
244 dsdepdp( const real T, const real p ) const;
245
246//------------------------------------------------------------------------------
247
248 virtual real
249 hdep0( const real T ) const;
250
251//------------------------------------------------------------------------------
252
253 virtual real
254 cpdep0( const real T ) const;
255
256//------------------------------------------------------------------------------
257
258 virtual real
259 sdep0( const real T ) const;
260
261//------------------------------------------------------------------------------
262
263 // temperature derivative of entropy departure
264 virtual real
265 dsdepdT0( const real T ) const;
266
267//------------------------------------------------------------------------------
268
269 virtual void
270 eval_critical_point( real & T, real & p, real & v ) const = 0;
271
272//------------------------------------------------------------------------------
273// Component Volume and Departure Functions
274//------------------------------------------------------------------------------
275
276 virtual real
277 v( const uint aIndex, const real T, const real p ) const ;
278
279 virtual real
280 hdep( const uint aIndex, const real T, const real p ) const ;
281
282 virtual real
283 cpdep( const uint aIndex, const real T, const real p ) const ;
284
285//------------------------------------------------------------------------------
286
287 // special function for tablegas
288 virtual real
289 pi( const real T, const real p ) const;
290
291 // special function for tablegas
292 virtual real
293 dpidp( const real T, const real p ) const;
294
295//------------------------------------------------------------------------------
296// vaporization curve
297//----------------------------------------------------------------------------
298
303 virtual real
304 p_vap( const real T ) const;
305
306//----------------------------------------------------------------------------
307
312 virtual real
313 T_vap( const real p ) const;
314
315//------------------------------------------------------------------------------
316
320 Gas *
321 parent();
322
323//----------------------------------------------------------------------------
324 };
325
326//----------------------------------------------------------------------------
327
328 inline Gas *
330 {
331 return & mParent ;
332 }
333
334//----------------------------------------------------------------------------
335 } /* namespace gasmodels */
336} /* namespace belfem */
337#endif //BELFEM_CL_GM_EOS_HPP
The gas class that provides the fluid model.
Definition cl_Gas.hpp:81
virtual void remix()
call the remix function of the equation of state
Definition cl_GM_EoS.cpp:34
virtual real v(const real T, const real p) const =0
specific volume in m^3/kg
virtual real cp(const real T, const real p) const
Definition cl_GM_EoS.cpp:104
virtual real dpidp(const real T, const real p) const
Definition cl_GM_EoS.cpp:159
virtual real dsdT(const real T, const real p) const
Definition cl_GM_EoS.cpp:131
virtual real alpha(const real T, const real p) const
thermal expansion coefficient
Definition cl_GM_EoS.cpp:42
virtual real hdep(const real T, const real p) const
Definition cl_GM_EoS.cpp:189
virtual real sdep0(const real T) const
Definition cl_GM_EoS.cpp:263
virtual real dsdepdT0(const real T) const
Definition cl_GM_EoS.cpp:273
Gas * parent()
expose the parent of this EoS
Definition cl_GM_EoS.hpp:329
virtual real p(const real T, const real v) const =0
pressure in Pa
virtual real cv(const real T, const real p) const
Definition cl_GM_EoS.cpp:95
virtual real cpdep0(const real T) const
Definition cl_GM_EoS.cpp:254
virtual void eval_critical_point(real &T, real &p, real &v) const =0
virtual real beta(const real T, const real p) const
isochoric stress coefficient
Definition cl_GM_EoS.cpp:51
virtual real dvdT(const real T, const real v) const
Definition cl_GM_EoS.cpp:69
virtual real dsdepdT(const real T, const real p) const
Definition cl_GM_EoS.cpp:226
virtual real sdep(const real T, const real p) const
Definition cl_GM_EoS.cpp:207
virtual ~EoS()=default
virtual real T(const real p, const real v) const =0
temperature in K
virtual real dsdepdp(const real T, const real p) const
Definition cl_GM_EoS.cpp:236
virtual real p_vap(const real T) const
Definition cl_GM_EoS.cpp:307
virtual real hdep0(const real T) const
Definition cl_GM_EoS.cpp:245
virtual real dhdepdp(const real T, const real p) const
Definition cl_GM_EoS.cpp:216
virtual real hvap(const real T, const real p) const
Definition cl_GM_EoS.cpp:86
virtual real dsdp(const real T, const real p) const
Definition cl_GM_EoS.cpp:140
const real & mR
specific gas constant
Definition cl_GM_EoS.hpp:52
Gas & mParent
gas object that owns this class
Definition cl_GM_EoS.hpp:42
virtual real cpdep(const real T, const real p) const
Definition cl_GM_EoS.cpp:198
virtual real s(const real T, const real p) const
Definition cl_GM_EoS.cpp:122
EoS(Gas &aParent)
Definition cl_GM_EoS.cpp:22
virtual real dpdv(const real T, const real v) const =0
virtual real pi(const real T, const real p) const
Definition cl_GM_EoS.cpp:150
virtual real h(const real T, const real p) const
Definition cl_GM_EoS.cpp:77
virtual real dpdT(const real T, const real v) const =0
virtual real kappa(const real T, const real p) const
isothermal compressibility coefficient
Definition cl_GM_EoS.cpp:60
virtual real d2pdT2(const real T, const real v) const
Definition cl_GM_EoS.cpp:168
const real & mM
molar mass in kg/Mol
Definition cl_GM_EoS.hpp:57
virtual real d2pdv2(const real T, const real v) const
Definition cl_GM_EoS.cpp:178
virtual real T_vap(const real p) const
Definition cl_GM_EoS.cpp:315
virtual real w(const real T, const real p) const
speed of sound in m/s ( helmholtz only )
Definition cl_GM_EoS.cpp:113
Statevals & mStatevals
statevals object
Definition cl_GM_EoS.hpp:47
The per state property cache of a Gas.
Definition cl_GM_Statevals.hpp:87
Definition cl_Gas.hpp:42
USER GUIDES:
Definition cl_Capacitor.cpp:16
unsigned int uint
Definition typedefs.hpp:30
double real
Definition typedefs.hpp:36