proteus 1.9.0
C/C++/Fortran libraries
Loading...
Searching...
No Matches
densityRelations.h
Go to the documentation of this file.
1#ifndef DENSITYRELATIONS_H
2#define DENSITYRELATIONS_H
3
9
21{
22public:
23 double rho,drho;
24};
25
27{
28public:
29 double rho_0;
30 inline ConstantDensity(const double* rwork):
31 rho_0(rwork[0])
32 {
33 rho=rho_0;
34 drho=0.0;
35 }
36 inline void calc(const double& psi)
37 {
38 rho=rho_0;
39 drho=0.0;
40 }
41};
42
56{
57public:
59 inline LinearDensity(const double* rwork):
60 rho_0(rwork[0]),
61 psi_0(rwork[1]),
62 beta(rwork[2])
63 {}
64
65 inline void calc(const double& psi)
66 {
67 rho = rho_0*(1.0+beta*(psi - psi_0));
68 drho = beta*rho_0;
69 }
70};
71
85{
86public:
87 inline ExponentialDensity(const double* rwork):
88 LinearDensity(rwork)
89 {}
90 inline void calc(const double& psi)
91 {
92 rho = rho_0*exp(beta*(psi-psi_0));
93 drho = beta*rho;
94 }
95};
96
108{
109public:
111 inline RealGasDensity(const double *rwork):
112 psi_0(rwork[0]),
113 oneOverZRT(rwork[1])
114 {}
115 inline void calc(const double& psi)
116 {
119 }
120};
121
137{
138public:
140 inline IdealGasDensity(const double *rwork):
141 T(rwork[0]),
142 W(rwork[1]),
143 R(rwork[2]),
144 convFactor(rwork[3]),
145 rho0(rwork[4]),
146 psi0(rwork[5])
147 {
148 WoverRT = convFactor*W/(R*T);
149 }
150 inline void calc(const double& psi)
151 {
152 rho = rho0 + (psi-psi0)*WoverRT;
153 drho = WoverRT;
154 }
155};
156
157
159#endif
Double psi
Definition Headers.h:78
ConstantDensity(const double *rwork)
void calc(const double &psi)
void calc(const double &psi)
ExponentialDensity(const double *rwork)
void calc(const double &psi)
IdealGasDensity(const double *rwork)
LinearDensity(const double *rwork)
void calc(const double &psi)
RealGasDensity(const double *rwork)
void calc(const double &psi)