Source code for RCAIDE.Library.Attributes.Gases.Steam

# RCAIDE/Library/Attributes/Gases/CO2.py
# 
#
# Created:  Mar 2024, M. Clarke

# ----------------------------------------------------------------------------------------------------------------------  
#  Imports
# ----------------------------------------------------------------------------------------------------------------------  
 
from .Gas import Gas  

# ----------------------------------------------------------------------------------------------------------------------  
# Steam Class
# ----------------------------------------------------------------------------------------------------------------------   
[docs] class Steam(Gas): """ A class representing water vapor (steam) and its thermodynamic properties. Provides methods for computing various gas properties including density, speed of sound, and specific heat. Attributes ---------- tag : str Identifier for the gas type ('steam') molecular_mass : float Molecular mass of H2O in kg/kmol (18.0) gas_specific_constant : float Specific gas constant in m²/s²-K (461.889) composition : Data Chemical composition of steam - H2O : float Mass fraction of water vapor (1.0) Notes ----- This class implements steam properties assuming ideal gas behavior for most calculations. All properties are for pure water vapor. """ def __defaults__(self): """This sets the default values. Assumptions: None Source: None """ self.tag ='steam' self.molecular_mass = 18. # kg/kmol self.gas_specific_constant = 461.889 # m^2/s^2-K, specific gas constant self.composition.H2O = 1.0
[docs] def compute_density(self,T=300,p=101325): """ Computes steam density using the ideal gas law. Parameters ---------- T : float Temperature in Kelvin p : float Pressure in Pascal Returns ------- rho : float Density in kg/m³ Notes ----- **Major Assumptions** * Steam behaves as an ideal gas """ return p/(self.gas_specific_constant*T)
[docs] def compute_speed_of_sound(self,T=300,p=101325,variable_gamma=False): """ Computes speed of sound in steam. Parameters ---------- T : float Temperature in Kelvin p : float Pressure in Pascal variable_gamma : bool If True, uses temperature-dependent specific heat ratio Returns ------- a : float Speed of sound in m/s Notes ----- **Major Assumptions** * If variable_gamma is False, assumes γ = 1.33 * Steam behaves as an ideal gas """ if variable_gamma: g = self.compute_gamma(T,p) else: g = 1.33 return (g*self.gas_specific_constant*T)**0.5
[docs] def compute_cp(self,T=300,p=101325): """ Computes specific heat capacity at constant pressure using a 3rd-order polynomial fit. Parameters ---------- T : float Temperature in Kelvin p : float Pressure in Pascal Returns ------- cp : float Specific heat capacity in J/(kg·K) Notes ----- **Major Assumptions** * Valid for temperature range: 300 K < T < 1500 K **Theory** .. math:: c_p(T) = c_1T^3 + c_2T^2 + c_3T + c_4 References ---------- [1] Carvalho, M. G., Lockwood, F. C., Fiveland, W. A., & Papadopoulos, C. (2022). Combustion Technologies for a clean environment: Selected papers from the proceedings of the first international conference, Vilamoura, Portugal, September 3-6, 1991. CRC Press. """ c = [5E-9, -.0001, .9202, 1524.7] cp = c[0]*T**3 + c[1]*T**2 + c[2]*T + c[3] return cp
[docs] def compute_gamma(self,T=300,p=101325): """ Returns the specific heat ratio for steam. Parameters ---------- T : float Temperature in Kelvin p : float Pressure in Pascal Returns ------- g : float Specific heat ratio (gamma) [unitless] Notes ----- **Major Assumptions** * Valid for temperature range: 233 K < T < 1273 K * Uses constant value of 1.33 """ g = 1.33 return g
[docs] def compute_absolute_viscosity(self,T=300,p=101325): """ Returns the absolute (dynamic) viscosity of steam. Parameters ---------- T : float Temperature in Kelvin p : float Pressure in Pascal Returns ------- mu : float Absolute viscosity in kg/(m·s) Notes ----- **Major Assumptions** * Uses constant value of 1e-6 kg/(m·s) """ mu =1E-6 return mu