In [6]:

```
import math
# Variables
Q = 1000.; #amount of energy absorbed by the heat engine in kJ/s
W = 650.; #work delivered by the heat engine in kW
T_source = 500. #temperature of the source in degree celsius
T_sink = 25. #temperature of the sink in degree celsius
# Calculations
n_claimed = W/Q
T1 = T_source+273.15
T2 = T_sink+273.15
n_carnot = 1-(T2/T1)
# Results
print " The efficiency of the Carnot engine = %0.3f "%(n_carnot);
print " The efficiency of the engine claimed by the inventor = %0.2f "%(n_claimed);
if n_claimed<n_carnot:
print " The claimed heat engine is theoretically feasible as the efficiency of the engine is lesser than that of a Carnot engine";
else:
print " The claimed heat engine is not theoretically feasible as the efficiency of the engine is greater than that of a Carnot engine";
```

In [5]:

```
# Variables
T_source_summer = 42; #temperature in the summer months in degree celsius
T_sink_winter = 0; #temperature in the winter months in degree celius
T_amb = 25; #temperature at which the house is to be maintained during both the months in degree celsius
energy_loss = 0.5;
# Calculations
T_H_summer = T_source_summer+273.15
T_L_summer = T_amb+273.15
T_H_winter = T_amb+273.15
T_L_winter = T_sink_winter+273.15
W_summer = (energy_loss*((T_H_summer-T_L_summer)**2))/(T_L_summer)
W_winter = (energy_loss*((T_H_winter-T_L_winter)**2))/(T_H_winter)
# Results
print " The minimum power required to operate the device in summer = %.4f kW "%(W_summer);
print " The minimum power required to operate the device in winter = %f kW "%(W_winter);
# Note: Answer in book is wrong. Please calculated manually.
```

In [3]:

```
# Variables
T_L = 4.25 #normal boiling point of helium in K
Q_L = 0.083 #latent heat of vaporization of helium in kJ/mol
n = 1. #amount of liquid helium to be produced in kmol
T_amb = 42. #ambient temperature in summer in degree celsius
# Calculations
T_H = T_amb+273.15
COP = (T_L)/(T_H-T_L)
W = (Q_L)/COP;
# Results
print " The maximum possible COP of the unit = %0.4f "%(COP);
print " The minimum amount of work to be done on the refrigerating unit = %f kJ "%(W);
```

In [4]:

```
# Variables
T_ice = 0.; #temperature of the ice to be produced in degree celsius
m = 5000.; #rate at which ice is to be produced in kg/hour
T_water = 0.; #temperature of water used to produce ice in degree celsius
T_amb = 40.; #ambient temperature in degree celsius
T_source = 100.; #temperature of the source for operating heat engine in degree celsius
lambda_fusion = 6.002; #latent heat of fusion of water in kJ/mol at 0 degree celsius
molar_mass = 18*10**-3; #molar mass of water in kg/mol
# Calculations
T_L = T_water+273.15
T_H = T_amb+273.15
COP = (T_L)/(T_H-T_L)
Q_L = ((m/3600)/molar_mass)*(lambda_fusion)
W = (Q_L)/(COP);
T1 = T_source+273.15;
T2 = T_amb+273.15
n_heatengine = (T1-T2)/T1
Q1 = W/n_heatengine;
energy_ratio = (Q1+Q_L)/Q_L;
# Results
print " The minimum power required to operate the refrigerator = %0.2f kW"%(W);
print " The maximum possible efficiency of the heat engine = %0.4f "%(n_heatengine);
print " Ratio of the energy rejected to the ambient atmosphere to the\
energy absorbed from the water = %0.4f "%(energy_ratio);
```

In [6]:

```
# Variables
T1 = 800. #temperature of reservoir 1 in K
T2 = 400. #temperature of reservoir 2 in K
Q1 = 1000. #energy absorbed from reservoir maintained at T1 in kJ
Q2 = 400. #energy absorbed from reservoir maintained at T2 in kJ
W = 1000. #work delivered by the heat engine in kJ
T3 = 300. #temperature of the sink in K
# Calculations
Q3 = (Q1+Q2)-W
clausius_inequality = (Q1/T1)+(Q2/T2)-(Q3/T3)
# Results
print " The LHS of the Clausius inequality = %0.4f "%(clausius_inequality);
if clausius_inequality<0 or clausius_inequality == 0:
print " The given process does not violate the second law of thermodynamics, therefore the claim is correct"
else:
print " This is a violation of the second law of thermodynamics, and hence the claim cannot be justified"
```

In [7]:

```
# Variables
T_system = 200.; #temperature of the contents of reactor in degree celsius
t = 15. #operation time of agitator in minutes
P = 750. #power of the operating motor in W
# Calculations
dQ = P*t*60*10**-3
T = T_system+273.15
del_S = dQ/T;
# Results
print " The change in the entropy of the reactor contents = %0.4f kJ/K "%(del_S);
```

In [11]:

```
import math
# Variables
P = 0.101325; #pressure in the piston cylinder assembly in MPa
T1 = 300.; #temperature of the piston cylinder assembly in K
T2 = 400; #final temperature of the piston cylinder assembly in K
a = 45.369; #coefficients to compute isobaric molar heat capacity of CO2(g) in J/molK
b = 8.688*10**-3; #coefficients to compute isobaric molar heat capacity of CO2(g) in J/molK
e = 9.619*10**5; #coefficients to compute isobaric molar heat capacity of CO2(g) in J/molK
# Calculations
del_S = (a*math.log(T2/T1))+(b*(T2-T1))+((e)*((1./T2**2)-(1./T1**2)))
# Results
print " The change in entropy of CO2 = %.4f J/molK"%(del_S);
```

In [9]:

```
# Variables
m = 1. #amount of saturated liquid water in kg
T_initial = 100. #initial temperature of water in degree celsius
T_body = 500. #temperature of body which is brought into contact with the cylinder in degree celsius
hfg = 2256.94 #enthalpy of vaporization taken from steam tables corresponding to T1 in kJ/kg
# Calculations
T = T_initial+273.15
del_S = hfg/T;
# Results
print " The change in entropy of water = %0.4f kJ/kgK"%(del_S);
```

In [10]:

```
# Variables
m_steel = 10. #mass of steel casting in kg
T_steel = 800. #temperature of steel casting in degree celsius
m_water = 100. #mass of water used for quenching in kg
T_water = 30. #temperature of water used for quenching in degree celsius
Cp_steel = 0.461; #heat capacity of steel in kJ/kgK
Cp_water = 4.23; #heat capacity of water in kJ/kgK
# Calculations
Ti_steel = T_steel+273.15
Ti_water = T_water+273.15
T_final = ((m_steel*Cp_steel*Ti_steel)+(m_water*Cp_water*Ti_water))/((m_steel*Cp_steel)+(m_water*Cp_water));
del_S_steel = m_steel*Cp_steel*math.log(T_final/Ti_steel)
del_S_water = m_water*Cp_water*math.log(T_final/Ti_water)
# Results
print " The change in entropy of steel = %0.4f kJ/K"%(del_S_steel);
print " The change in entropy of water = %f kJ/K"%(del_S_water);
```

In [11]:

```
# Variables
V = 2. #volume of insulated tank in m**3
Ta = 400. #temperature of gas in compartment (a) in K
Pa = 3. #pressure of gas in compartment (a) in MPa
Tb = 600. #temperature of gas in compartment (b) in K
Pb = 1. #pressure of gas in compartment (b) in MPa
R = 8.314; #universal gas constant in J/molK
# Calculations
Va = V/2
Vb = V/2
Na = (Pa*10**6*Va)/(R*Ta)
Nb = (Pb*10**6*Vb)/(R*Tb)
T = ((Na*Ta)+(Nb*Tb))/(Na+Nb)
N = Na+Nb;
P = ((N*R*T)/V)*10**-6
Cp = (5./2)*R;
del_S = ((Na*((Cp*math.log(T/Ta))-(R*math.log(P/Pa))))+(Nb*((Cp*math.log(T/Tb))-(R*math.log(P/Pb)))))*10**-3; # Calculations of the change in entropy using Eq.(5.43) in kJ/K
# Results
print " Entropy change of the gas = %0.2f kJ/K"%(del_S);
```

In [15]:

```
import math
# Variables
N = 1. #amount of air to be separated into its components in kmol
P = 0.1 #pressure of air in MPa
T = 300. #temperature of air in K
per_oxygen = 21. #percentage of oxygen in air
per_nitrogen = 79. #percentage of nitrogen in air
R = 8.314; #universal gas constant in J/molK
# Calculations
x1 = per_nitrogen/100
x2 = per_oxygen/100;
W = (T*N*10**3*R*((x1*math.log (x1))+(x2*math.log (x2))))*10**-3
# Results
print " Minimum work to be done to separate 1kmol of air at 0.1MPa and 300K into pure oxygen\
and nitrogen at the same temperature and pressure = %0.2f kJ"%(abs(W));
```

In [16]:

```
import math
# Variables
m_ice = 10. #mass of the block of ice in kg
T_ice = 0. #temperature of the ice in degree celsius
m_water = 100. #mass of watre in the tank in kg
T_water = 30. #temperature of the water in the tank in degree celsius
Cp = 4.23; #heat capacity of water in kJ/kgK
lambda_melting = 333.44 #latent heat of melting of ice in kJ/kg
# Calculations
Ti_ice = T_ice+273.15
Ti_water = T_water+273.15
T_final = ((m_water*Cp*Ti_water)+(m_ice*Cp*Ti_ice)-(m_ice*lambda_melting))/((m_ice*Cp)+(m_water*Cp))
del_S_ice = ((m_ice*lambda_melting)/(Ti_ice))+(m_ice*Cp*math.log (T_final/Ti_ice));
del_S_water = m_water*Cp*math.log (T_final/Ti_water)
del_S_G = del_S_ice+del_S_water;
# Results
print " The change in entropy of ice = %f kJ/K"%(del_S_ice);
print " The change in entropy of water = %f kJ/K"%(del_S_water);
print " The entropy generated = %f kJ/K"%(del_S_G);
```

In [17]:

```
# Variables
P = 3. #pressure of superheated steam in MPa
T_enter = 300. #entrance temperature of superheated steam in degree celsius
T_exit = 45. #final temperature at which the steam leaves in degree celsisus
m = 1. #mass flow rate of steam in kg/s
# Calculations
si = 6.5422
hi = 2995.1
sf = 0.6383
hf = 188.35
sg = 8.1661; #entropy of saturated vapour in kJ/kgK
hg = 2583.3; #entahlpy of saturayed vapour in kJ/kg
Xe = (si-sf)/(sg-sf)
he = ((1-Xe)*hf)+(Xe*hg)
Ws = -m*(he-hi);
# Results
print " The power Results from the turbine = %0.1f kW"%(Ws);
```

In [18]:

```
import math
# Variables
Pi = 3. #pressure of dry saturated steam when it enters the nozzle in bar
Pe = 2. #pressure of dry saturated steam at the exit in bar
# Calculations
#From steam tables corresponding to Pi
si = 6.9909; #entropy of steam at the entrance in kJ/kgK
hi = 2724.7; #entahlpy of steam at the entrance in kJ/kg
#From steam tables corresponding to Pe
sf = 1.5301; #entropy of saturated liquid in kJ/kgK
hf = 504.70; #enthalpy of saturated liquid in kJ/kg
sg = 7.1268; #entropy of saturated vapour in kJ/kgK
hg = 2706.3; #entahlpy of saturayed vapour in kJ/kg
se = 6.9909
Xe = (se-sf)/(sg-sf)
he = ((1-Xe)*hf)+(Xe*hg)
Ve = math.sqrt (2*(hi-he)*10**3)
# Results
print " The exit velocity of steam = %f m/s"%(Ve);
```

In [19]:

```
import math
# Variables
N_glycerol = 100. #molar flow rate of glycerol in mol/s
Ti_gly = 227. #inlet temperature of glycerol in degree celsius
Te_gly = 40. #outlet temperature of glycerol in degree celsius
Ti_water = 25. #inlet temperature of cooling water in degree celsius
Te_water = 50. #outlet temperature of cooling water in degree celsius
Cp_gly = 280. #heat capacity of glycerol in J/molK
Cp_water = 77. #heat capacity of water in J/molK
# Calculations
Ti_gly = Ti_gly+273.15
Te_gly = Te_gly+273.15
Ti_water = Ti_water+273.15
Te_water = Te_water+273.15
N_water = -(N_glycerol*Cp_gly*(Te_gly-Ti_gly))/(Cp_water*(Te_water-Ti_water));
del_S_gly = N_glycerol*Cp_gly*math.log (Te_gly/Ti_gly)*10**-3
del_S_water = N_water*Cp_water*math.log (Te_water/Ti_water)*10**-3
S_G = del_S_gly+del_S_water
# Results
print " The rate at which entropy is generated in the heat exchanger = %0.3f kJ/K s"%(S_G);
```

In [21]:

```
# Variables
T_i = 150. #temperature of saturated steam taken up by the device in degree celsius
T_e = 200. #temperature of superheated steam delivered by the device in degree celsius
P_e = 0.2 #pressure of superheated steam delivered by the device in MPa
me2 = 0.949 #mass of superheated steam leaving the device in kg
me1 = 0.051 #mass of saturated liquid leaving the device in kg
T_liq = 100. #temperature of saturated liquid leaving the device in degree celsius
mi = 1. #mass of saturated steam fed to the device in kg
# Calculations
#From steam tables corresponding to T_i
hi = 2745.4 #enthalpy of saturated vapour in kJ/kg
si = 6.8358; #entropy of saturated vapour in kJ/kgK
#For saturated liquid at T_liq
he1 = 419.06; #enthalpy of saturated liquid in kJ/kg
se1 = 1.3069; #entropy of saturated vapour in kJ/kgK
#For superheated steam at P_e and T_e
he2 = 2870.5; #enthalpy of superheated steam in kJ/kg
se2 = 7.5072; #entropy of superheated steam in kJ/kgK
LHS = mi*hi;
RHS = (me1*he1)+(me2*he2);
S_G = (me1*se1)+(me2*se2)-(mi*si);
# Results
print " The LHS of the equation applied to the flow device to check if the first law of thermodynamics is satisfied = %0.1f kJ"%(LHS);
print " The RHS of the equation applied to the flow device to check if the first law of thermodynamics is satisfied = %0.1f kJ"%(RHS);
print " The entropy generated by applying the second law of thermodynamics to the flow device = %0.4f kJ/kgK"%(S_G);
if int(LHS) == int(RHS) and S_G>0 or S_G == 0 :
print " As the first and second law of thermodynamics are satisfied, the device is theoretically feasible "
else:
print " As both the first and second law or either the first or second law of thermodynamics \
are not satisfied, the device is not feasible "
```

In [22]:

```
# Variables
Pi = 30. #pressure of superheated steam entering the turbine in bar
Ti = 300. #temperature of superheated steam entering the turbine in degree celsius
Pe = 0.1 #pressure at which steam exits the turbine in bar
Xe = 0.9 #quality of steam at the exit (no unit)(for the actual turbine)
# Calculations
#For superheated steam at Pi and Ti
hi = 2995.1; #enthalpy of superheated steam at the entrance in kJ/kg
si = 6.5422; #entropy of superheated steam at the entrance in kJ/kgK
#For steam at Pe
hf = 191.83; #enthalpy of saturated liquid in kJ/kg
hg = 2584.8; #enthalpy of saturated vapour in kJ/kg
sf = 0.6493; #entropy of saturated liquid in kJ/kgK
sg = 8.1511; #entropy of saturated vapour in kJ/kgK
X2 = (si-sf)/(sg-sf)
h2 = (hf*(1-X2))+(X2*hg)
he = (hf*(1-Xe))+(Xe*hg)
n_T = (hi-he)/(hi-h2)
# Results
print " The isentropic efficiency of the turbine = %f "%(n_T);
```

In [23]:

```
# Variables
Ti = 25. #temperature of air taken in by the adiabatic air compressor in degree celsius
Pi = 0.1 #pressure of air taken in by the adiabatic air compressor in MPa
Pe = 1. #discharge pressure of air in MPa
n_c = 0.8 #isentropic efficiency of the compressor (no unit)
gaamma = 1.4 #ratio of molar specific heat capacities (no unit)
R = 8.314 #universal gas constant in J/molK
# Calculations
Ti = Ti+273.15
Te = Ti*(((Pe*10**6)/(Pi*10**6))**((gaamma-1)/gaamma))
W_s = (((R*gaamma)/(gaamma-1))*(Te-Ti))*10**-3;
Ws = W_s/n_c
Te_actual = ((Ws*10**3*(gaamma-1))/(R*gaamma))+Ti
# Results
print " The exit temperature of air = %0.2f K"%(Te_actual);
print " The power consumed by the compressor = %f kW/mol"%(Ws);
```

In [24]:

```
# Variables
Ti = 30. #temperature of saturated liquid water in degree celsius
m = 500. #mass flow rate of water being pumped in kg/s
P2 = 3. #preesure maintained in the boiler in MPa
n_p = 0.75; #isentropic efficiency of the pump (no unit)
# Calculations
#For saturated liquid water at Ti
vf = 0.0010043
P1 = 4.241;
Ws_m = (vf*((P2*10**6)-(P1*10**3)))*10**-3
Ws_act_m = Ws_m/n_p;
P = ((Ws_act_m*10**3)*m)*10**-6;
# Results
print " The power consumed by the pump = %d MW"%(P);
```

In [25]:

```
# Variables
Pi = 3. #pressure of dry saturated steam entering the nozzle in bar
Xe = 0.98 #quality of steam exiting the nozzle (no unit)
Pe = 2. #pressure of steam exiting the nozzle in bar
# Calculations
#For steam at Pi
hi = 2724.7
he = 2652.8
V2_2_s = hi-he
#For steam at Pe
hf = 504.70
hg = 2706.3
he_act = ((1-Xe)*hf)+(Xe*hg)
V2_2 = hi-he_act;
n_N = (V2_2)/(V2_2_s)
# Results
print " The isentropic efficiency of the nozzle = %0.3f "%(n_N);
```