Go to the documentation of this file.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 specieThermo_H
00039 #define specieThermo_H
00040 
00041 
00042 
00043 namespace Foam
00044 {
00045 
00046 
00047 
00048 template<class thermo> class specieThermo;
00049 
00050 template<class thermo>
00051 inline specieThermo<thermo> operator+
00052 (
00053     const specieThermo<thermo>&,
00054     const specieThermo<thermo>&
00055 );
00056 
00057 template<class thermo>
00058 inline specieThermo<thermo> operator-
00059 (
00060     const specieThermo<thermo>&,
00061     const specieThermo<thermo>&
00062 );
00063 
00064 template<class thermo>
00065 inline specieThermo<thermo> operator*
00066 (
00067     const scalar,
00068     const specieThermo<thermo>&
00069 );
00070 
00071 template<class thermo>
00072 inline specieThermo<thermo> operator==
00073 (
00074     const specieThermo<thermo>&,
00075     const specieThermo<thermo>&
00076 );
00077 
00078 template<class thermo>
00079 Ostream& operator<<
00080 (
00081     Ostream&,
00082     const specieThermo<thermo>&
00083 );
00084 
00085 
00086 
00087 
00088 
00089 
00090 template<class thermo>
00091 class specieThermo
00092 :
00093     public thermo
00094 {
00095     
00096 
00097         
00098         static const scalar tol_;
00099 
00100         
00101         static const int maxIter_;
00102 
00103 
00104     
00105 
00106         
00107         
00108         inline scalar T
00109         (
00110             scalar f,
00111             scalar T0,
00112             scalar (specieThermo::*F)(const scalar) const,
00113             scalar (specieThermo::*dFdT)(const scalar) const
00114         ) const;
00115 
00116 
00117 public:
00118 
00119     
00120 
00121         
00122         inline specieThermo(const thermo& sp);
00123 
00124         
00125         specieThermo(Istream&);
00126 
00127         
00128         inline specieThermo(const word& name, const specieThermo&);
00129 
00130 
00131     
00132 
00133         
00134         
00135 
00136             
00137             
00138 
00139             
00140             
00141 
00142             
00143             
00144 
00145             
00146             
00147 
00148             
00149             
00150 
00151 
00152         
00153         
00154 
00155             
00156 
00157                 
00158                 inline scalar cv(const scalar T) const;
00159 
00160                 
00161                 inline scalar gamma(const scalar T) const;
00162 
00163                 
00164                 inline scalar e(const scalar T) const;
00165 
00166                 
00167                 inline scalar es(const scalar T) const;
00168 
00169                 
00170                 inline scalar g(const scalar T) const;
00171 
00172                 
00173                 inline scalar a(const scalar T) const;
00174 
00175 
00176             
00177 
00178                 
00179                 inline scalar Cp(const scalar T) const;
00180 
00181                 
00182                 inline scalar Cv(const scalar T) const;
00183 
00184                 
00185                 inline scalar H(const scalar T) const;
00186 
00187                 
00188                 inline scalar Hs(const scalar T) const;
00189 
00190                 
00191                 inline scalar Hc() const;
00192 
00193                 
00194                 inline scalar S(const scalar T) const;
00195 
00196                 
00197                 inline scalar E(const scalar T) const;
00198 
00199                 
00200                 inline scalar G(const scalar T) const;
00201 
00202                 
00203                 inline scalar A(const scalar T) const;
00204 
00205 
00206         
00207 
00208             
00209             
00210             inline scalar K(const scalar T) const;
00211 
00212             
00213             
00214             
00215             inline scalar Kp(const scalar T) const;
00216 
00217             
00218             
00219             
00220             
00221             inline scalar Kc(const scalar T) const;
00222 
00223             
00224             
00225             
00226             inline scalar Kx(const scalar T, const scalar p) const;
00227 
00228             
00229             
00230             
00231             inline scalar Kn
00232             (
00233                 const scalar T,
00234                 const scalar p,
00235                 const scalar n
00236             ) const;
00237 
00238 
00239         
00240 
00241             
00242             inline scalar TH(const scalar H, const scalar T0) const;
00243 
00244             
00245             inline scalar THs(const scalar Hs, const scalar T0) const;
00246 
00247             
00248             inline scalar TE(const scalar E, const scalar T0) const;
00249 
00250 
00251     
00252 
00253         inline void operator+=(const specieThermo&);
00254         inline void operator-=(const specieThermo&);
00255 
00256         inline void operator*=(const scalar);
00257 
00258 
00259     
00260 
00261         friend specieThermo operator+ <thermo>
00262         (
00263             const specieThermo&,
00264             const specieThermo&
00265         );
00266 
00267         friend specieThermo operator- <thermo>
00268         (
00269             const specieThermo&,
00270             const specieThermo&
00271         );
00272 
00273         friend specieThermo operator* <thermo>
00274         (
00275             const scalar s,
00276             const specieThermo&
00277         );
00278 
00279         friend specieThermo operator== <thermo>
00280         (
00281             const specieThermo&,
00282             const specieThermo&
00283         );
00284 
00285 
00286     
00287 
00288         friend Ostream& operator<< <thermo>
00289         (
00290             Ostream&,
00291             const specieThermo&
00292         );
00293 };
00294 
00295 
00296 
00297 
00298 } 
00299 
00300 
00301 
00302 #include <specie/specieThermoI.H>
00303 
00304 #ifdef NoRepository
00305 #   include <specie/specieThermo.C>
00306 #endif
00307 
00308 
00309 
00310 #endif
00311 
00312