00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00027 #ifndef OPM_COMPONENT_HPP
00028 #define OPM_COMPONENT_HPP
00029
00030 #include <opm/common/ErrorMacros.hpp>
00031 #include <opm/common/Exceptions.hpp>
00032
00033 namespace Opm {
00034
00042 template <class ScalarT, class Implementation>
00043 class Component
00044 {
00045 public:
00046 typedef ScalarT Scalar;
00047
00048 static const bool isTabulated = false;
00049
00062 static void init(Scalar , Scalar , unsigned ,
00063 Scalar , Scalar , unsigned )
00064 { }
00065
00069 static bool gasIsCompressible()
00070 { OPM_THROW(std::runtime_error, "Not implemented: Component::gasIsCompressible()"); }
00071
00075 static bool gasIsIdeal()
00076 { OPM_THROW(std::runtime_error, "Not implemented: Component::gasIsIdeal()"); }
00077
00081 static bool liquidIsCompressible()
00082 { OPM_THROW(std::runtime_error, "Not implemented: Component::liquidIsCompressible()"); }
00083
00087 static const char* name()
00088 { OPM_THROW(std::runtime_error, "Not implemented: Component::name()"); }
00089
00093 static Scalar molarMass()
00094 { OPM_THROW(std::runtime_error, "Not implemented: Component::molarMass()"); }
00095
00099 static Scalar criticalTemperature()
00100 { OPM_THROW(std::runtime_error, "Not implemented: Component::criticalTemperature()"); }
00101
00105 static Scalar criticalPressure()
00106 { OPM_THROW(std::runtime_error, "Not implemented: Component::criticalPressure()"); }
00107
00111 static Scalar tripleTemperature()
00112 { OPM_THROW(std::runtime_error, "Not implemented: Component::tripleTemperature()"); }
00113
00117 static Scalar triplePressure()
00118 { OPM_THROW(std::runtime_error, "Not implemented: Component::triplePressure()"); }
00119
00126 template <class Evaluation>
00127 static Evaluation vaporPressure(const Evaluation& )
00128 { OPM_THROW(std::runtime_error, "Not implemented: Component::vaporPressure()"); }
00129
00136 template <class Evaluation>
00137 static Evaluation gasDensity(const Evaluation& , const Evaluation& )
00138 { OPM_THROW(std::runtime_error, "Not implemented: Component::gasDensity()"); }
00139
00146 template <class Evaluation>
00147 static Evaluation liquidDensity(const Evaluation& , const Evaluation& )
00148 { OPM_THROW(std::runtime_error, "Not implemented: Component::liquidDensity()"); }
00149
00156 template <class Evaluation>
00157 static Evaluation gasEnthalpy(const Evaluation& , const Evaluation& )
00158 { OPM_THROW(std::runtime_error, "Not implemented: Component::gasEnthalpy()"); }
00159
00166 template <class Evaluation>
00167 static Evaluation liquidEnthalpy(const Evaluation& , const Evaluation& )
00168 { OPM_THROW(std::runtime_error, "Not implemented: Component::liquidEnthalpy()"); }
00169
00176 template <class Evaluation>
00177 static Evaluation gasInternalEnergy(const Evaluation& , const Evaluation& )
00178 { OPM_THROW(std::runtime_error, "Not implemented: Component::gasInternalEnergy()"); }
00179
00186 template <class Evaluation>
00187 static Evaluation liquidInternalEnergy(const Evaluation& , const Evaluation& )
00188 { OPM_THROW(std::runtime_error, "Not implemented: Component::liquidInternalEnergy()"); }
00189
00197 template <class Evaluation>
00198 static Evaluation gasViscosity(const Evaluation& , const Evaluation& )
00199 { OPM_THROW(std::runtime_error, "Not implemented: Component::gasViscosity()"); }
00200
00207 template <class Evaluation>
00208 static Evaluation liquidViscosity(const Evaluation& , const Evaluation& )
00209 { OPM_THROW(std::runtime_error, "Not implemented: Component::liquidViscosity()"); }
00210
00214 template <class Evaluation>
00215 static Evaluation gasThermalConductivity(const Evaluation& , const Evaluation& )
00216 { OPM_THROW(std::runtime_error, "Not implemented: Component::gasThermalConductivity()"); }
00217
00221 template <class Evaluation>
00222 static Evaluation liquidThermalConductivity(const Evaluation& , const Evaluation& )
00223 { OPM_THROW(std::runtime_error, "Not implemented: Component::liquidThermalConductivity()"); }
00224
00228 template <class Evaluation>
00229 static Evaluation gasHeatCapacity(const Evaluation& , const Evaluation& )
00230 { OPM_THROW(std::runtime_error, "Not implemented: Component::gasHeatCapacity()"); }
00231
00235 template <class Evaluation>
00236 static Evaluation liquidHeatCapacity(const Evaluation& , const Evaluation& )
00237 { OPM_THROW(std::runtime_error, "Not implemented: Component::liquidHeatCapacity()"); }
00238 };
00239
00240 }
00241
00242 #endif