00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038 #ifndef eConstThermo_H
00039 #define eConstThermo_H
00040
00041 #include "specieThermo.H"
00042
00043
00044
00045 namespace Foam
00046 {
00047
00048
00049
00050 template<class equationOfState> class eConstThermo;
00051
00052 template<class equationOfState>
00053 inline eConstThermo<equationOfState> operator+
00054 (
00055 const eConstThermo<equationOfState>&,
00056 const eConstThermo<equationOfState>&
00057 );
00058
00059 template<class equationOfState>
00060 inline eConstThermo<equationOfState> operator-
00061 (
00062 const eConstThermo<equationOfState>&,
00063 const eConstThermo<equationOfState>&
00064 );
00065
00066 template<class equationOfState>
00067 inline eConstThermo<equationOfState> operator*
00068 (
00069 const scalar,
00070 const eConstThermo<equationOfState>&
00071 );
00072
00073 template<class equationOfState>
00074 inline eConstThermo<equationOfState> operator==
00075 (
00076 const eConstThermo<equationOfState>&,
00077 const eConstThermo<equationOfState>&
00078 );
00079
00080 template<class equationOfState>
00081 Ostream& operator<<
00082 (
00083 Ostream&,
00084 const eConstThermo<equationOfState>&
00085 );
00086
00087
00088
00089
00090
00091
00092 class eConstThermo
00093 :
00094 public specieThermo
00095 {
00096
00097
00098 scalar CV;
00099 scalar Hf;
00100
00101
00102
00103
00104
00105 inline eConstThermo
00106 (
00107 const specieThermo& st,
00108 const scalar cv,
00109 const scalar hf
00110 );
00111
00112 public:
00113
00114
00115
00116
00117 eConstThermo(Istream&);
00118
00119
00120 inline eConstThermo(const word&, const eConstThermo&);
00121
00122
00123 inline autoPtr<eConstThermo> clone() const;
00124
00125
00126 inline static autoPtr<eConstThermo> New(Istream& is);
00127
00128
00129
00130
00131
00132
00133
00134 inline scalar cp(const scalar T) const;
00135
00136
00137 inline scalar h(const scalar T) const;
00138
00139
00140 inline scalar s(const scalar T) const;
00141
00142
00143
00144
00145
00146
00147 inline scalar TH(const scalar h, const scalar T0) const;
00148
00149
00150 inline scalar TE(const scalar e, const scalar T0) const;
00151
00152
00153
00154
00155 inline eConstThermo& operator=
00156 (
00157 const eConstThermo&
00158 );
00159
00160
00161
00162
00163 friend eConstThermo operator+ <equationOfState>
00164 (
00165 const eConstThermo&,
00166 const eConstThermo&
00167 );
00168
00169 friend eConstThermo operator- <equationOfState>
00170 (
00171 const eConstThermo&,
00172 const eConstThermo&
00173 );
00174
00175 friend eConstThermo operator* <equationOfState>
00176 (
00177 const scalar,
00178 const eConstThermo&
00179 );
00180
00181 friend eConstThermo operator== <equationOfState>
00182 (
00183 const eConstThermo&,
00184 const eConstThermo&
00185 );
00186
00187
00188
00189
00190 friend Ostream& operator<< <equationOfState>
00191 (
00192 Ostream&, const eConstThermo&
00193 );
00194 };
00195
00196
00197
00198
00199 }
00200
00201
00202
00203 #include "eConstThermoI.H"
00204
00205
00206
00207 #endif
00208
00209