Source code for libICEpost.src.thermophysicalModels.specie.thermo.EquationOfState.EquationOfState

#####################################################################
#                                 DOC                               #
#####################################################################

"""
@author: F. Ramognino       <federico.ramognino@polimi.it>
Last update:        12/06/2023
"""

#####################################################################
#                               IMPORT                              #
#####################################################################

from libICEpost.src.base.BaseClass import BaseClass, abstractmethod

#############################################################################
#                               MAIN CLASSES                                #
#############################################################################
[docs] class EquationOfState(BaseClass): """ Class handling thermodynamic equation of state """ ######################################################################### #Constructor: def __init__(self): """ Base (virtual) class: does not support instantiation. """ pass ######################################################################### #Operators: ################################ #Print:
[docs] def __str__(self): stringToPrint = "" stringToPrint += f"Equation of state class\n" stringToPrint += "Type:\t" + self.TypeName + "\n" return stringToPrint
############################## #Representation:
[docs] def __repr__(self): return f"{self.TypeName}()"
#########################################################################
[docs] @abstractmethod def cp(self, p:float, T:float) -> float: """ Constant pressure heat capacity contribution [J/kg/K] """ self.checkType(p, float, "p") self.checkType(T, float, "T")
#########################################################################
[docs] @abstractmethod def h(self, p:float, T:float) -> float: """ Enthalpy contribution [J/kg] """ self.checkType(p, float, "p") self.checkType(T, float, "T")
#########################################################################
[docs] @abstractmethod def u(self, p:float, T:float) -> float: """ Internal energy contribution [J/kg] """ self.checkType(p, float, "p") self.checkType(T, float, "T")
#########################################################################
[docs] @abstractmethod def rho(self, p:float , T:float) -> float: """ Density [kg/m^3] """ self.checkType(p, float, "p") self.checkType(T, float, "T")
#########################################################################
[docs] @abstractmethod def T(self, p:float, rho:float) -> float: """ Temperature [K] """ self.checkType(p, float, "p") self.checkType(rho, float, "rho")
#########################################################################
[docs] @abstractmethod def p(self, T:float, rho:float) -> float: """ pressure [Pa] """ self.checkType(T, float, "T") self.checkType(rho, float, "rho")
#########################################################################
[docs] @abstractmethod def Z(self, p:float, T:float) -> float: """ Compression factor [-] """ self.checkType(p, float, "p") self.checkType(T, float, "T")
#########################################################################
[docs] @abstractmethod def cpMcv(self, p:float, T:float) -> float: """ Difference cp - cv. """ self.checkType(p, float, "p") self.checkType(T, float, "T")
#########################################################################
[docs] @abstractmethod def dcpdT(self, p, T): """ dcp/dT [J/kg/K^2] """ self.checkType(p, float, "p") self.checkType(T, float, "T")
#########################################################################
[docs] @abstractmethod def dpdT(self, p, T): """ dp/dT [Pa/K] """ self.checkType(p, float, "p") self.checkType(T, float, "T")
#########################################################################
[docs] @abstractmethod def dTdp(self, p, T): """ dT/dp [K/Pa] """ self.checkType(p, float, "p") self.checkType(T, float, "T")
#########################################################################
[docs] @abstractmethod def drhodp(self, p, T): """ drho/dp [kg/(m^3 Pa)] """ self.checkType(p, float, "p") self.checkType(T, float, "T")
#########################################################################
[docs] @abstractmethod def dpdrho(self, p, T): """ dp/drho [Pa * m^3 / kg] """ self.checkType(p, float, "p") self.checkType(T, float, "T")
#########################################################################
[docs] @abstractmethod def drhodT(self, p, T): """ drho/dT [kg/(m^3 K)] """ self.checkType(p, float, "p") self.checkType(T, float, "T")
#########################################################################
[docs] @abstractmethod def dTdrho(self, p, T): """ dT/drho [K * m^3 / kg] """ self.checkType(p, float, "p") self.checkType(T, float, "T")
############################################################################# #Generate selection table EquationOfState.createRuntimeSelectionTable()