00001 /* 00002 00003 freesteam - IAPWS-IF97 steam tables library 00004 Copyright (C) 2004-2005 John Pye 00005 00006 This program is free software; you can redistribute it and/or 00007 modify it under the terms of the GNU General Public License 00008 as published by the Free Software Foundation; either version 2 00009 of the License, or (at your option) any later version. 00010 00011 This program is distributed in the hope that it will be useful, 00012 but WITHOUT ANY WARRANTY; without even the implied warranty of 00013 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00014 GNU General Public License for more details. 00015 00016 You should have received a copy of the GNU General Public License 00017 along with this program; if not, write to the Free Software 00018 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 00019 00020 */ 00021 00022 #ifndef REGION1_H 00023 #define REGION1_H 00024 00025 #include "state.h" 00026 #include "region4.h" 00027 #include "units.h" 00028 00029 class Region1:public SteamState { 00030 00031 protected: 00032 friend class SteamCalculator; 00033 friend class Region4; 00034 00035 virtual SpecificVolume specvol(const SteamCalculator &c) const; 00036 virtual SpecificEnergy specienergy(const SteamCalculator &c) const; 00037 virtual SpecificEntropy specentropy(const SteamCalculator &c) const; 00038 virtual SpecificEnergy specenthalpy(const SteamCalculator &c) const; 00039 virtual SpecHeatCap speccp(const SteamCalculator &c) const; 00040 virtual SpecHeatCap speccv(const SteamCalculator &c) const; 00041 00042 virtual Temperature temp(const SteamCalculator &c) const; 00043 virtual Pressure pres(const SteamCalculator &c) const; 00044 virtual Density dens(const SteamCalculator &c) const; 00045 00046 static SteamState *Instance(); 00047 int getRegion() const; 00048 virtual void set_pT(SteamCalculator &c, const Pressure &p, const Temperature &T, Num x); 00049 00050 private: 00051 Region1(); 00052 static Region1 *_instance; 00053 00054 Num gam(const SteamCalculator &c) const; 00055 Num gampi(const SteamCalculator &c) const; 00056 Num gampipi(const SteamCalculator &c) const; 00057 Num gamtau(const SteamCalculator &c) const; 00058 Num gamtautau(const SteamCalculator &c) const; 00059 Num gampitau(const SteamCalculator &c) const; 00060 00061 Num pitau_iaps85(const SteamCalculator &c) const; 00062 Num delpi_iaps85(const SteamCalculator &c) const; 00063 00064 }; 00065 00066 #endif