BELFEM 0.9.0
Berkeley Lab Finite Element Framework
Loading...
Searching...
No Matches
cl_GM_Helmholtz.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_HELMHOLTZ_HPP
13#define BELFEM_CL_GM_HELMHOLTZ_HPP
14
15#include "typedefs.hpp"
16#include "assert.hpp"
17#include "cl_Bitset.hpp"
18#include "cl_Vector.hpp"
19#include "cl_GM_EoS.hpp"
20#include "cl_GM_EoS_Cubic.hpp"
21
22#define BELFEM_HELMHOLTZ_T 0
23#define BELFEM_HELMHOLTZ_P 1
24#define BELFEM_HELMHOLTZ_V 2
25#define BELFEM_HELMHOLTZ_TAU 3
26#define BELFEM_HELMHOLTZ_DELTA 4
27#define BELFEM_HELMHOLTZ_PHI0 5
28#define BELFEM_HELMHOLTZ_PHI0_T 6
29#define BELFEM_HELMHOLTZ_PHI0_TT 7
30#define BELFEM_HELMHOLTZ_PHIR 8
31#define BELFEM_HELMHOLTZ_PHIR_T 9
32#define BELFEM_HELMHOLTZ_PHIR_D 10
33#define BELFEM_HELMHOLTZ_PHIR_TT 11
34#define BELFEM_HELMHOLTZ_PHIR_DD 12
35#define BELFEM_HELMHOLTZ_PHIR_DT 13
36#define BELFEM_HELMHOLTZ_DPDV 14
37#define BELFEM_HELMHOLTZ_DPDT 15
38#define BELFEM_HELMHOLTZ_DVDT 16
39#define BELFEM_HELMHOLTZ_NUMVALS 17
40
41namespace belfem
42{
43 // forward declaration for parent
44 class Gas;
45
46 namespace gasmodels
47 {
48 // forward declaration for statevals
49 class Statevals;
50
51//----------------------------------------------------------------------------
59 class Helmholtz : public EoS
60 {
61//----------------------------------------------------------------------------
62 protected:
63//----------------------------------------------------------------------------
64
65 //Gas & mParent ;
66 //Statevals & mStatevals ;
67
68 //const real & mR ;
69 //const real & mM ;
70
71 const string mLabel ;
72
73 // help model to find initial solution
74 EoS_Cubic * mCubicEoS = nullptr ;
75
79
80 // initial guess for specific volume in liquid state
82
83 // enthalpy offset
84 real mH0 = 0.0 ;
85
86 // entropy offset
87 real mS0 = 0.0 ;
88
89 // inner energy offset
90 real mU0 = 0.0 ;
91
92 friend void deriv_test( Helmholtz &, Vector< real > & aR2 );
93
94//----------------------------------------------------------------------------
95 private:
96//----------------------------------------------------------------------------
97
107 mutable real mHelmholtzVals[ BELFEM_HELMHOLTZ_NUMVALS ] = { 0.0 };
108 mutable Bitset< BELFEM_HELMHOLTZ_NUMVALS > mHelmholtzBits;
109
110//----------------------------------------------------------------------------
111 protected:
112//----------------------------------------------------------------------------
113
114 // shortcuts
115 const real & mTau = mHelmholtzVals[ BELFEM_HELMHOLTZ_TAU ];
116 const real & mDelta = mHelmholtzVals[ BELFEM_HELMHOLTZ_DELTA ];
117
120
123
126
129
132
135
136 // upper pressure bound of the published validity range, set by
137 // the child EoS; enforced with BELFEM_ERROR in Helmholtz::v()
139
140//----------------------------------------------------------------------------
141 public:
142//----------------------------------------------------------------------------
143
144 Helmholtz( Gas & aParent, const string & aLabel );
145
146 virtual ~Helmholtz() = default ;
147
148//----------------------------------------------------------------------------
149
153 const real &
154 T_min() const ;
155
156//----------------------------------------------------------------------------
157
161 const real &
162 T_max() const ;
163
164//----------------------------------------------------------------------------
165
169 const real &
170 T_crit() const ;
171
172//----------------------------------------------------------------------------
173
177 const real &
178 v_crit() const ;
179
180//----------------------------------------------------------------------------
181
186 virtual real
187 p_vap( const real T ) const;
188
189//----------------------------------------------------------------------------
190
195 virtual real
196 T_vap( const real p ) const;
197
198//----------------------------------------------------------------------------
199
206 real
207 hvap( const real T, const real p ) const ;
208
209//----------------------------------------------------------------------------
210
218 real
219 phi( const real T, const real v ) const;
220
221//----------------------------------------------------------------------------
222
229 real
230 p( const real T, const real v ) const;
231
232//----------------------------------------------------------------------------
233
234 real
235 v( const real T, const real p ) const;
236
237//----------------------------------------------------------------------------
238
239 real
240 T( const real p, const real v ) const;
241
242//----------------------------------------------------------------------------
243
244 real
245 dpdv( const real T, const real v ) const;
246
247//----------------------------------------------------------------------------
248
249 real
250 dpdT( const real T, const real v ) const;
251
252//----------------------------------------------------------------------------
253
254 real
255 dvdT( const real T, const real v ) const;
256
257//----------------------------------------------------------------------------
258// Caloric Functions
259//----------------------------------------------------------------------------
260
261 real
262 u( const real T, const real p ) const;
263
264 real
265 h( const real T, const real p ) const;
266
267 real
268 s( const real T, const real p ) const;
269
270 real
271 cv( const real T, const real p ) const;
272
273 real
274 cp( const real T, const real p ) const;
275
276 real
277 w( const real T, const real p ) const;
278
279 real
280 dsdT( const real T, const real p ) const;
281
282 real
283 dsdp( const real T, const real p ) const;
284
285 real
286 alpha( const real T, const real p ) const;
287
288 real
289 beta( const real T, const real p ) const;
290
291 real
292 kappa( const real T, const real p ) const;
293
294//----------------------------------------------------------------------------
295
299 void
300 remix();
301
302//----------------------------------------------------------------------------
303
310 void
311 eval_critical_point( real & T, real & p, real & v ) const;
312
313
314//----------------------------------------------------------------------------
315
319 void
320 update_Tv( const real T, const real v ) const ;
321
322//----------------------------------------------------------------------------
323
324 void
325 update_Tp( const real T, const real p ) const ;
326
327//----------------------------------------------------------------------------
328
339 const real &
340 phi0() const;
341
342 const real &
343 phi0_t() const;
344
345 const real &
346 phi0_tt() const;
347
349
350//----------------------------------------------------------------------------
351
355 const real &
356 phir() const;
357
358 const real &
359 phir_d() const;
360
361 const real &
362 phir_dd() const;
363
364 const real &
365 phir_t() const;
366
367 const real &
368 phir_tt() const;
369
370 const real &
371 phir_dt() const;
372
373//----------------------------------------------------------------------------
374 private:
375//----------------------------------------------------------------------------
376
380 bool
381 test( const index_t aIndex ) const ;
382
383//----------------------------------------------------------------------------
384
388 const real &
389 get( const index_t aIndex ) const ;
390
391//----------------------------------------------------------------------------
392
396 void
397 set( const index_t aIndex, const real aValue ) const ;
398
399//----------------------------------------------------------------------------
400 protected:
401//----------------------------------------------------------------------------
402
403 // tidy up parent class
404 void
406
407//----------------------------------------------------------------------------
408
409 // make data object consisient
410 void
412
413//----------------------------------------------------------------------------
414
415//----------------------------------------------------------------------------
416
417 // initialize the offsets for enthalpy and entropy
418 // with respect to CEA table
419 void
421
422//----------------------------------------------------------------------------
423 // initialize the offsets for enthalpy and entropy
424 void
425 set_reference_point( const real aTref, const real aPref );
426
427//----------------------------------------------------------------------------
428 // initialize lookup table for initial guess of Tvap
429 void
431
432//----------------------------------------------------------------------------
433
434 // help function for vapor pressure
435 virtual real
436 pi_vap( const real T ) const ;
437
438//----------------------------------------------------------------------------
439
440 // help function for vapor pressure
441 virtual real
442 psi_vap( const real T ) const ;
443
444//----------------------------------------------------------------------------
445
446 // derivative for vapor pressure
447 virtual real
448 dpvap_dT( const real T, const real aPvap, const real aPiVap ) const;
449
450//----------------------------------------------------------------------------
451
452 // check of this state is liquid or gaseous
453 bool
454 is_liquid( const real T, const real p ) const ;
455
456//----------------------------------------------------------------------------
457
458 virtual real
459 compute_phi0() const ;
460
461//----------------------------------------------------------------------------
462
463 virtual real
464 compute_phir() const ;
465
466//----------------------------------------------------------------------------
467
468 virtual real
469 compute_phi0_t() const ;
470
471//----------------------------------------------------------------------------
472
473 virtual real
474 compute_phi0_tt() const ;
475
476//----------------------------------------------------------------------------
477
478 virtual real
479 compute_phir_d() const ;
480
481//----------------------------------------------------------------------------
482
483 virtual real
484 compute_phir_dd() const ;
485
486//----------------------------------------------------------------------------
487
488 virtual real
489 compute_phir_t() const ;
490
491//----------------------------------------------------------------------------
492
493 virtual real
494 compute_phir_tt() const ;
495
496
497//----------------------------------------------------------------------------
498
499 virtual real
500 compute_phir_dt() const ;
501
502//----------------------------------------------------------------------------
503
511 static inline real
512 ipow( real x, uint n )
513 {
514 real r = 1.0 ;
515
516 while( n )
517 {
518 if( n & 1 )
519 {
520 r *= x ;
521 }
522
523 x *= x ;
524 n >>= 1 ;
525 }
526
527 return r ;
528 }
529
530//----------------------------------------------------------------------------
531
537 static inline real
538 hpow( const real x, const real sqrt_x, const int n )
539 {
540 const uint tN = n < 0 ? -n : n ;
541
542 real tValue = ipow( x, tN >> 1 ) ;
543
544 if( tN & 1 )
545 {
546 tValue *= sqrt_x ;
547 }
548
549 return n < 0 ? 1.0 / tValue : tValue ;
550 }
551
552//----------------------------------------------------------------------------
553 };
554//----------------------------------------------------------------------------
555
556//----------------------------------------------------------------------------
557
558 inline const real &
560 {
561 return mTtriple ;
562 }
563
564//----------------------------------------------------------------------------
565
566 inline const real &
568 {
569 return mTmax ;
570 }
571
572//----------------------------------------------------------------------------
573
574 inline const real &
576 {
577 return mTcrit ;
578 }
579
580//----------------------------------------------------------------------------
581
582 inline const real &
584 {
585 return mVcrit ;
586 }
587
588//----------------------------------------------------------------------------
589
590 inline bool
591 Helmholtz::test( const index_t aIndex ) const
592 {
594 "Invalid Helmholtz state index: %u", ( unsigned int ) aIndex );
595
596 return mHelmholtzBits.test( aIndex );
597 }
598
599//----------------------------------------------------------------------------
600
601 inline const real &
602 Helmholtz::get( const index_t aIndex ) const
603 {
605 "Invalid Helmholtz state index: %u", ( unsigned int ) aIndex );
606
607 return mHelmholtzVals[ aIndex ];
608 }
609
610//----------------------------------------------------------------------------
611
612 inline void
613 Helmholtz::set( const index_t aIndex, const real aValue ) const
614 {
616 "Invalid Helmholtz state index %u", ( unsigned int ) aIndex );
617
618 // set value
619 mHelmholtzVals[ aIndex ] = aValue;
620
621 // update flag
622 mHelmholtzBits.set( aIndex );
623 }
624
625//----------------------------------------------------------------------------
626
627 inline void
628 Helmholtz::update_Tv( const real T, const real v ) const
629 {
630 BELFEM_ASSERT( T > 0, "Invalid Temprerature" );
631 BELFEM_ASSERT( v > 0, "Invalid specific volume" );
632 if( T != mHelmholtzVals[ BELFEM_HELMHOLTZ_T ]
633 || v != mHelmholtzVals[ BELFEM_HELMHOLTZ_V ] )
634 {
635 mHelmholtzBits.reset();
636
637 mHelmholtzVals[ BELFEM_HELMHOLTZ_T ] = T ;
638 mHelmholtzVals[ BELFEM_HELMHOLTZ_V ] = v ;
639 mHelmholtzVals[ BELFEM_HELMHOLTZ_TAU ] = mTcrit / T ;
640 mHelmholtzVals[ BELFEM_HELMHOLTZ_DELTA ] = mVcrit / v ;
641
642 mHelmholtzBits.set( BELFEM_HELMHOLTZ_T );
643 mHelmholtzBits.set( BELFEM_HELMHOLTZ_V );
644 mHelmholtzBits.set( BELFEM_HELMHOLTZ_TAU );
645 mHelmholtzBits.set( BELFEM_HELMHOLTZ_DELTA );
646 }
647 }
648
649//----------------------------------------------------------------------------
650
651 inline void
652 Helmholtz::update_Tp( const real T, const real p ) const
653 {
654 BELFEM_ASSERT( T > 0, "Invalid temprerature" );
655 BELFEM_ASSERT( p > 0, "Invalid pressure" );
656 if( T != mHelmholtzVals[ BELFEM_HELMHOLTZ_T ]
657 || p != mHelmholtzVals[ BELFEM_HELMHOLTZ_P ] )
658 {
659 // solve for v first: its Newton iterations set phir bits at
660 // intermediate states, so the reset must come afterwards
661 const real tV = this->v( T, p );
662
663 mHelmholtzBits.reset();
664
665 mHelmholtzVals[ BELFEM_HELMHOLTZ_V ] = tV;
666 mHelmholtzVals[ BELFEM_HELMHOLTZ_T ] = T ;
667 mHelmholtzVals[ BELFEM_HELMHOLTZ_P ] = p ;
668
669 mHelmholtzVals[ BELFEM_HELMHOLTZ_TAU ] = mTcrit / T ;
670 mHelmholtzVals[ BELFEM_HELMHOLTZ_DELTA ] = mVcrit / mHelmholtzVals[ BELFEM_HELMHOLTZ_V ] ;
671
672
673 mHelmholtzBits.set( BELFEM_HELMHOLTZ_T );
674 mHelmholtzBits.set( BELFEM_HELMHOLTZ_P );
675 mHelmholtzBits.set( BELFEM_HELMHOLTZ_V );
676 mHelmholtzBits.set( BELFEM_HELMHOLTZ_TAU );
677 mHelmholtzBits.set( BELFEM_HELMHOLTZ_DELTA );
678 }
679 }
680
681//----------------------------------------------------------------------------
682
683 // help function for vapor pressure
684 inline real
685 Helmholtz::pi_vap( const real T ) const
686 {
687 real tTheta = std::abs( 1.0 - T / mTcrit ) ;
688
689 return ( mNvap( 0 ) * std::pow( tTheta, mKvap( 0 ) )
690 + mNvap( 1 ) * std::pow( tTheta, mKvap( 1 ) )
691 + mNvap( 2 ) * std::pow( tTheta, mKvap( 2 ) )
692 + mNvap( 3 ) * std::pow( tTheta, mKvap( 3 ) ) )
693 * mTcrit / T ;
694 }
695
696//----------------------------------------------------------------------------
697
698 // help function for vapor pressure
699 inline real
700 Helmholtz::psi_vap( const real T ) const
701 {
702 real tTheta = std::abs( 1.0 - T / mTcrit ) ;
703
704 return ( mKvap( 0 ) * mNvap( 0 ) * std::pow( tTheta, mKvap( 0 ) - 1.0 )
705 + mKvap( 1 ) * mNvap( 1 ) * std::pow( tTheta, mKvap( 1 ) - 1.0 )
706 + mKvap( 2 ) * mNvap( 2 ) * std::pow( tTheta, mKvap( 2 ) - 1.0 )
707 + mKvap( 3 ) * mNvap( 3 ) * std::pow( tTheta, mKvap( 3 ) - 1.0 ) ) ;
708 }
709
710//----------------------------------------------------------------------------
711 }
712}
713#endif //BELFEM_CL_GM_HELMHOLTZ_HPP
#define BELFEM_ASSERT(aCheck,...)
Definition assert.hpp:244
#define BELFEM_HELMHOLTZ_P
Definition cl_GM_Helmholtz.hpp:23
#define BELFEM_HELMHOLTZ_TAU
Definition cl_GM_Helmholtz.hpp:25
#define BELFEM_HELMHOLTZ_V
Definition cl_GM_Helmholtz.hpp:24
#define BELFEM_HELMHOLTZ_DELTA
Definition cl_GM_Helmholtz.hpp:26
#define BELFEM_HELMHOLTZ_T
Definition cl_GM_Helmholtz.hpp:22
#define BELFEM_HELMHOLTZ_NUMVALS
Definition cl_GM_Helmholtz.hpp:39
void set(const index_t aIndex)
set a bit to true
Definition cl_Bitset.hpp:92
bool test(const index_t aIndex) const
test if a bit is set
Definition cl_Bitset.hpp:138
The gas class that provides the fluid model.
Definition cl_Gas.hpp:81
cubic equation of state
Definition cl_GM_EoS_Cubic.hpp:38
EoS(Gas &aParent)
Definition cl_GM_EoS.cpp:22
const real & T_crit() const
critical temperature
Definition cl_GM_Helmholtz.hpp:575
const real & v_crit() const
critical volume
Definition cl_GM_Helmholtz.hpp:583
real beta(const real T, const real p) const
isochoric stress coefficient
Definition cl_GM_Helmholtz.cpp:216
void init_Tvap_poly()
Definition cl_GM_Helmholtz.cpp:119
void set_critical_point_in_data_object()
Definition cl_GM_Helmholtz.cpp:67
real s(const real T, const real p) const
Definition cl_GM_Helmholtz.cpp:371
real cp(const real T, const real p) const
Definition cl_GM_Helmholtz.cpp:392
real mPmax
Definition cl_GM_Helmholtz.hpp:138
Helmholtz(Gas &aParent, const string &aLabel)
Definition cl_GM_Helmholtz.cpp:25
real alpha(const real T, const real p) const
thermal expansion coefficient
Definition cl_GM_Helmholtz.cpp:207
void set_reference_point()
Definition cl_GM_Helmholtz.cpp:44
virtual real compute_phir_d() const
Definition cl_GM_Helmholtz.cpp:596
virtual real compute_phir() const
Definition cl_GM_Helmholtz.cpp:561
void eval_critical_point(real &T, real &p, real &v) const
return the critical point data
Definition cl_GM_Helmholtz.cpp:110
real mS0
Definition cl_GM_Helmholtz.hpp:87
real hvap(const real T, const real p) const
vaporization enthalpy in J/kg
Definition cl_GM_Helmholtz.cpp:692
virtual real compute_phi0_tt() const
Definition cl_GM_Helmholtz.cpp:584
virtual real p_vap(const real T) const
Definition cl_GM_Helmholtz.cpp:656
Vector< real > mTvap
Definition cl_GM_Helmholtz.hpp:78
Vector< real > mVliq
initial solution for inversion of pvap
Definition cl_GM_Helmholtz.hpp:81
virtual real dpvap_dT(const real T, const real aPvap, const real aPiVap) const
Definition cl_GM_Helmholtz.cpp:710
bool is_liquid(const real T, const real p) const
Definition cl_GM_Helmholtz.cpp:720
void remix()
this function remixes the cubic help gas
Definition cl_GM_Helmholtz.cpp:102
real p(const real T, const real v) const
pressure in Pa
Definition cl_GM_Helmholtz.cpp:148
virtual real psi_vap(const real T) const
Definition cl_GM_Helmholtz.hpp:700
real phi(const real T, const real v) const
the main energy function, where phi = f / ( R * T )
Definition cl_GM_Helmholtz.cpp:138
real u(const real T, const real p) const
Definition cl_GM_Helmholtz.cpp:350
real mTtriple
triple point in K
Definition cl_GM_Helmholtz.hpp:131
void delete_cubic_eos()
Definition cl_GM_Helmholtz.cpp:36
real mPcrit
critical pressure in Pa
Definition cl_GM_Helmholtz.hpp:122
real T(const real p, const real v) const
temperature in K
Definition cl_GM_Helmholtz.cpp:300
EoS_Cubic * mCubicEoS
Definition cl_GM_Helmholtz.hpp:74
real mU0
Definition cl_GM_Helmholtz.hpp:90
const real & T_min() const
minumum temperature for gas model ( triple point )
Definition cl_GM_Helmholtz.hpp:559
real kappa(const real T, const real p) const
isothermal compressibility coefficient
Definition cl_GM_Helmholtz.cpp:227
real mTmax
maximum temperature of gas model in K
Definition cl_GM_Helmholtz.hpp:134
const real & mTau
Definition cl_GM_Helmholtz.hpp:115
void update_Tv(const real T, const real v) const
reset all state variales
Definition cl_GM_Helmholtz.hpp:628
const real & phir_dd() const
Definition cl_GM_Helmholtz.cpp:502
const real & phir_t() const
Definition cl_GM_Helmholtz.cpp:514
const real & phi0() const
Definition cl_GM_Helmholtz.cpp:435
real dvdT(const real T, const real v) const
Definition cl_GM_Helmholtz.cpp:193
virtual ~Helmholtz()=default
Vector< real > mNvap
Definition cl_GM_Helmholtz.hpp:76
static real ipow(real x, uint n)
integer power by binary exponentiation, for the coefficient tables of the residual functions.
Definition cl_GM_Helmholtz.hpp:512
const real & T_max() const
maximum temperature for gas model
Definition cl_GM_Helmholtz.hpp:567
virtual real compute_phir_t() const
Definition cl_GM_Helmholtz.cpp:620
virtual real T_vap(const real p) const
Definition cl_GM_Helmholtz.cpp:664
const real & phir_tt() const
Definition cl_GM_Helmholtz.cpp:526
real dpdT(const real T, const real v) const
Definition cl_GM_Helmholtz.cpp:176
void update_Tp(const real T, const real p) const
Definition cl_GM_Helmholtz.hpp:652
real cv(const real T, const real p) const
Definition cl_GM_Helmholtz.cpp:383
virtual real compute_phir_tt() const
Definition cl_GM_Helmholtz.cpp:632
real mTcrit
critical temperature in K
Definition cl_GM_Helmholtz.hpp:119
static real hpow(const real x, const real sqrt_x, const int n)
x^( n / 2 ) for a signed half integer exponent given as n = 2j.
Definition cl_GM_Helmholtz.hpp:538
virtual real pi_vap(const real T) const
Definition cl_GM_Helmholtz.hpp:685
const real & mDelta
Definition cl_GM_Helmholtz.hpp:116
Vector< real > mKvap
Definition cl_GM_Helmholtz.hpp:77
real h(const real T, const real p) const
Definition cl_GM_Helmholtz.cpp:360
const real & phi0_t() const
Definition cl_GM_Helmholtz.cpp:450
real dsdT(const real T, const real p) const
Definition cl_GM_Helmholtz.cpp:417
real dsdp(const real T, const real p) const
Definition cl_GM_Helmholtz.cpp:425
real mH0
Definition cl_GM_Helmholtz.hpp:84
const real & phir_d() const
Definition cl_GM_Helmholtz.cpp:490
const real & phir_dt() const
Definition cl_GM_Helmholtz.cpp:538
const real & phir() const
the main energy function, real gas contribution
Definition cl_GM_Helmholtz.cpp:478
virtual real compute_phi0_t() const
Definition cl_GM_Helmholtz.cpp:572
const real & phi0_tt() const
Definition cl_GM_Helmholtz.cpp:464
real mRhocrit
critical density in kg/m^3
Definition cl_GM_Helmholtz.hpp:125
virtual real compute_phi0() const
Definition cl_GM_Helmholtz.cpp:550
const string mLabel
Definition cl_GM_Helmholtz.hpp:71
friend void deriv_test(Helmholtz &, Vector< real > &aR2)
virtual real compute_phir_dt() const
Definition cl_GM_Helmholtz.cpp:644
virtual real compute_phir_dd() const
Definition cl_GM_Helmholtz.cpp:608
real dpdv(const real T, const real v) const
Definition cl_GM_Helmholtz.cpp:158
real mVcrit
critical specific volume in m^3/kg
Definition cl_GM_Helmholtz.hpp:128
real v(const real T, const real p) const
specific volume in m^3/kg
Definition cl_GM_Helmholtz.cpp:237
real w(const real T, const real p) const
speed of sound in m/s ( helmholtz only )
Definition cl_GM_Helmholtz.cpp:404
USER GUIDES:
Definition cl_Capacitor.cpp:16
unsigned int uint
Definition typedefs.hpp:30
uint32_t index_t
Definition typedefs.hpp:52
double real
Definition typedefs.hpp:36
#define BELFEM_REAL_MAX
Definition typedefs.hpp:81
#define BELFEM_QUIET_NAN
Definition typedefs.hpp:87