In [1]:

```
from __future__ import division
#Variable Declaration:
p1 = 10 #Pressure of dry steam(in bar):
C1 = 100 #Velocity of steam entering(in m/s):
C2 = 300 #Velocity of steam leaving the nozzle(in m/s):
p2 = 5 #Pressure of steam at exit(in bar):
m = 16 #Mass flow rate(in kg/s):
q = 10 #Heat loss to surroundings(in kJ/kg):
#From steam tables:
h1 = 2778.1 #kJ/kg
hf = 640.23 #kJ/kg
hfg = 2108.5 #kJ/kg
#Calculations:
dh = (q*10**3+(C1**2-C2**2)/2)/1000 #Heat drop in the nozzle(in kJ/kg):
dQ = -dh*m #Total heat drop(in kJ/s):
h2 = h1+dh #Enthalpy at state 2(in kJ/kg):
x2 = (h2-hf)/hfg #Dryness fraction at state 2:
#Results:
print "Heat drop in the nozzle: ",round(-dh,2),"kJ/kg"
print "Total heat drop: ",round(dQ,2),"kJ/s"
print "Dryness fraction at exit: ",round(x2,4)
```

In [2]:

```
from __future__ import division
from math import sqrt
#Variable Declaration:
p1 = 10 #Steam entering at pressure(in bar):
p2 = 6 #Pressure at which steam leaves(in bar):
A2 = 20 #Cross-section area of exit of nozzle(in cm**2):
#From steam tables:
h1 = 3478.5 #kJ/kg
s1 = 7.7622 #kJ/kg.K
T2 = 418.45 #C(by interpolation)
h2 = 3309.51 #kJ/kg
v2 = 0.5281 #m**3/kg
#Calculations:
s2 = s1
C2 = sqrt(2*(h1-h2)*10**3) #Velocity at exit(in m/s):
m = A2*10**(-4)*C2/v2 #Mass flow rate(in kg/s):
#Result:
print "Mass flow rate: ",round(m,3),"kg/s"
```

In [3]:

```
from __future__ import division
from math import sqrt
#Variable Declaration:
p1 = 12 #Pressure of steam entering(in bar):
p2 = 6 #Pressure at exit(in bar):
m1 = 5 #Mass flow rate(in kg/s):
m2 = m1
m3 = m1
C3a = 500 #Exit velocity(in m/s):
#From steam tables:
h1 = 3045.8 #kJ/kg
h2 = 2900.05 #kJ/kg
s2 = 7.0317 #kJ/kg.K
v2 = 0.3466 #m**3/kg
h3 = 2882.55 #kJ/kg
v3 = 0.3647 #m**3/kg
n = 1.3 #For superheated steam:
#Calculations:
s1 = s2
s3 = s2
p2 = p1*(2/(n+1))**(n/(n-1)) #Pressue at state 2(in bar):
C2 = sqrt(2*(h1-h2)*10**3) #Velocity at throat(in m/s):
A2 = m2*v2/C2 #Cross-sectional area at throat(in m**2):
C3 = sqrt(2*(h1-h3)*10**3) #Ideal velocity at exit(in m/s):
A3 = m3*v3/C3a #Cross-sectional area at exit(in m**2):
r = C3a/C3 #Coefficient of velocity:
#Results:
print "Cross-sectional area at throat: ",round(A2*10**3,3)," x 10^-3 m^2"
print "Cross-sectional area at exit: ",round(A3*10**3,3)," x 10^-3 m^2"
print "Coefficient of velocity: ",round(r,3)
```

In [9]:

```
from __future__ import division
from math import sqrt
#Variable Declaration:
p1 = 16 #Pressure of steam entering(in bar):
p3 = 5 #Pressure at exit(in bar):
m1 = 1 #Mass flow rate(in kg/s):
m2 = m1
m3 = m1
#From steam tables:
#For case 1:
h1 = 3034.8 #kJ/kg
s1 = 6.8844 #kJ/kg.K
v1 = 0.15862 #m**3/kg
n = 1.3
h2 = 2891.39 #kJ/kg
h3 = 2777 #kJ/kg
v2 = 0.2559 #m**3/kg
v3 = 0.3882 #m**3/kg
#For case 2:
h2a = 2905.73 #kJ/kg
v2a = 0.2598 #m**3/kg
v3a = 0.40023 #m**3/kg
#Calculations:
p2 = p1*(2/(n+1))**(n/(n-1)) #Pressure at the throat of nozzle(in bar):
q12 = h1-h2 #Heat drop up to throat section(in kJ/kg):
C2 = sqrt(2*(h1-h2)*10**3) #Velocity at throat(in m/s):
q23 = h2-h3 #Heat drop from exit(in kJ/kg):
C3 = sqrt(2*(h2-h3)*10**3+C2**2) #Velocity at exit(in m/s):
A2 = m2*v2/C2 #Throat area(in m**2):
A3 = m3*v3/C3 #Exit area(in m**2):
q12a = 0.9*q12 #Considering expansion to have 10% friction loss:
C2a = sqrt(2*q12a*10**3) #Actual velocity at throat(in m/s):
A2a = m2*v2a/C2a #Actual throat area(in m**2):
q23a = 0.9*q23 #Actual drop at the exit of the nozzle(in kJ/kg):
h3a = h2a-q23a #Actual enthalpy at state 3(in kJ/kg):
C3a = sqrt(2*q23a*10**3+C2a**2) #Actual velocity at exit(in m/s):
A3a = m3*v3a/C3a #Actual area at exit(in m**2):
#Results:
print "Throat area, without friction consideration: ",round(A2*10**4,2),"cm**2"
print "Exit area, without friction consideration: ",round(A3*10**4,2),"cm**2"
print "Throat area, with friction consideration: ",round(A2a*10**4,2),"cm**2"
print "Exit area, with friction consideration: ",round(A3a*10**4,3),"cm**2"
```

In [8]:

```
from __future__ import division
from math import sqrt,pi
#Variable Declaration:
P = 1 #Power of turbine(in MW):
p1 = 20 #Pressure of steam entering(in bar):
m = 8 #Steam consumption rate(in kg/kW.h):
p3 = 0.2 #Pressure at which steam leaves(in bar):
d = 0.01 #Throat diameter(in m):
#From Mollier diagram:
q12 = 142 #kJ/kg
v2 = 0.20 #m**3/kg
q13 = 807 #kJ/kg
v3 = 7.2 #m**3/kg
#Calculations:
C2 = sqrt(2*q12*10**3) #Velocity at throat(in m/s):
m2 = pi*d**2/4*C2/v2 #Mass flow rate:
m3 = m2
n = 10**3*m/(3600*m2) #Number of nozzles:
q13a = 0.90*q13 #Useful heat drop:
C3 = sqrt(2*10**3*q13a)#Velocity at exit(in m/s):
A3 = m3*v3/C3 #Area at exit(in m**2):
#Results:
print "Number of nozzles required: ",round(n)
print "Area at exit: ",round(A3*10**4,2),"cm**2"
```

In [7]:

```
from __future__ import division
from math import pi, atan, sqrt
#Variable Declaration:
p1 = 0.7 #Pressure at which steam is supplied(in MPa):
l = 0.06 #Length of diverging nozzle(in m):
d = 0.005 #Throat diameter(in mm):
p3 = 0.1 #Pressure at which steam leaves the nozzle(in MPa):
#From Mollier diagram:
q12 = 138 #kJ/kg
v2 = 0.58 #m**3/kg
T = 203 #°C
q23 = 247 #kJ/kg
q23a = 209.95 #kJ/kg
v3a = 1.7 #m**3/kg
#Calculations:
C2 = sqrt(2*q12*10**3) #Velocity at throat(in m/s):
m1 = pi*d**2/4*C2/v2 #Mass flow rate(in kg/s):
m2 = m1
m3 = m1
q = q12+q23a #Total heat drop(in kJ/kg):
C3 = sqrt(2*10**3*q) #Velocity at exit(in m/s):
A3 = m3*v3a/C3 #Area at exit(in m**2):
d1 = (sqrt(A3*4/pi))*10**3 #Diameter at exit(in mm):
a = atan((d1-d*10**3)/(2*60))*180/pi
#Results:
print "With no losses, temperature at throat: ",round(T,2),"°C"
print "Velocity at throat: ",round(C2,2),"m/s"
print "With losses, cone angle: ",round(2*a,2),"°"
```

In [10]:

```
from __future__ import division
from math import sin,pi,sqrt
#Variable Declaration:
P = 5000 #Power of the turbine(in hp):
m = P*6/3600 #Steam required(in kg of steam/hp-hr):
n = 0.90 #Efficiency of nozzle:
a = 12 #Nozzle angle:
p = 5 #Pitch(in cm):
t = 0.3 #Thickness(in cm):
#From steam tables:
h1 = 2794 #kJ/kg
s1 = 6.4218 #kJ/kg.K
x2 = 0.9478
h2 = 2662.2 #kJ/kg
x2a = 0.9542
v2a = 0.2294 #m**3/kg
#Calculations:
s2 = s1
h12 = h1-h2 #Change in enthalpy(in kJ/kg):
h12a = n*h12 #Actual change(in kJ/kg):
C2 = sqrt(2*h12a*10**3) #Velocity at inlet(in m/s):
A2 = m*v2a/C2*10**4 #Area at exit of nozzle(in cm**2):
l = 60*pi/3 #Approximate length of the nozzle(in cm):
n = int(l/p)+1 #Number of nozzles:
l1 = n*p #Correct length of nozzle arc:
h = A2/((p*sin(a*pi/180)-t)*n)#Radial height of nozzle(in cm):
#Results:
print "Length of nozzle: ",round(l1,2),"cm"
print "Radial height of nozzle: ",round(h,2),"cm"
```

In [12]:

```
from __future__ import division
from math import sqrt
#Variable Declaration:
p1 = 13 #Pressure at which steam enters(in bar):
p2 = 6 #Pressure at which steam leaves(in bar):
T1 = 150+273 #Temperature of steam entering(in K):
r = 1.4 #Adibatic insex of compression:
#Calculations:
T2 = T1*(p2/p1)**((r-1)/r) #Final temperature of steam(in K):
C2 = sqrt(2*1.005*(T1-T2)) #Exit velocity(in m/s):
#Results:
print "Exit velocity: ",round(C2,2),"m/s"
```

In [14]:

```
from __future__ import division
from math import sqrt
#Variable Declaration:
F = 350 #Force on the plate(in N):
p1 = 8 #Initial pressure(in bar):
p3 = 1 #Final pressure(in bar):
A2 = 5*10**(-4) #Throat cross-sectional area(in m**2):
#From steam tables:
h1 = 2769.1 #kJ/kg
s1 = 6.6628 #kJ/kg.K
x2 = 0.9717
h2 = 2685.17 #kJ/kg
v2 = 0.3932 #m**3/kg
x3 = 0.8238
h3 = 2277.6 #kJ/kg
#Calculations:
s2 = s1
s3 = s1
h12 = h1-h2 #Enthalpy change(in kJ/kg):
C2 = sqrt(2*h12*10**3) #Velocity at throat(in m/s):
m = A2*C2/v2 #Discharge at throat(in kg/s):
C3a = F/m #Actual exit velocity(in m/s):
h23 = h2-h3 #Theoretical enthalpy drop(in kJ/kg):
n = C3a**2/(2*h23*10**3) #Nozzle efficiency:
#Results:
print "Discharge at throat: ",round(m,3),"kg/s"
print "Nozzle efficiency: ",round(n*100,2),"%"
```

In [16]:

```
from __future__ import division
from math import sqrt,pi
#Variable Declaration:
m = 5/60 #Mass flow rate(in kg/s):
p3 = 1 #Pressure at which steam is discharged(in bar):
p1 = 10 #Initial pressure(in bar):
T1 = 200+273 #Initial temperature(in K)
n = 1.3 #Adiabatic index of compression:
#From steam tables:
h1 = 2827.9 #kJ/kg
s1 = 6.6940 #kJ/kg.K
v1 = 0.2060 #m**3/kg
h2a = 2711.23 #kJ/kg
s2a = 6.6749 #kJ/kg.K
h3 = 2420.08 #kJ/kg
v3 = 1.5025 #m**3/kg
psat = 3.44 #bar (at T = 138.18 °C)
Tsat = 155.12 #C (at p = 5.45 bar)
#Calculations:
s3 = s2a
p2 = p1*(2/(n+1))**(n/(n-1)) #Pressure at throat(in bar):
C3 = sqrt(2*(h1-h3)*10**3) #Velocity at exit(in m/s):
A3 = m*v3/C3 #Exit area(in m**2):
d = sqrt(A3*4/pi) #Diameter of nozzle at exit(in m):
T2 = T1*(p2/p1)**((n-1)/n) #Temperature at throat(in K):
d1 = p2/psat #Degree of supersaturation:
u = Tsat-(T2-273) #Amount of undercooling(in °C):
#Results:
print "Degree of supersaturation: ",round(d1,2)
print "Amount of undercooling: ",round(u,2),"°C"
```

In [19]:

```
from __future__ import division
#Variable Declaration:
p1 = 4 #Initial pressure(in bar):
T1 = 180+273 #Initial temperature(in K):
p2 = 1.5 #Final pressure(in bar):
n = 1.3 #Index of compression:
nn = 0.95 #Efficiency due to heat loss:
C = 2.174 #Specific heat(in kJ/kg.K):
#From steam tables:
v1 = 0.5088 #m**3/kg
Tsat = 111.37+273 #K (at p = 1.5 bar)
#Calculations:
h1 = p1*v1*10**2+2614 #Enthalpy at state 1(in kJ/kg):
v2 = v1*(p1/p2)**(1/n) #Specific volume at state 2(in m**3/kg):
h2 = p2*v2*10**2+2614 #Enthalpy at state 2(in kJ/kg):
dh = nn*(h1-h2) #Actual heat drop(in kJ/kg):
T2 = T1*(p2/p1)**((n-1)/n) #Temperature at state 2(in K):
dT = (1-nn)*(h1-h2)/C #Temperature rise due to supersaturation:
T2a = T2+dT #Actual temperature at state 2(in K):
u = Tsat-T2a #Amount of undercooling(in °C):
#Results:
print "Actual heat drop: ",round(dh,2),"kJ/kg"
print "Amount of undercooling: ",round(u,2),"°C"
```

In [21]:

```
from __future__ import division
from math import sqrt
#Variable Declaration:
p1 = 14 #Initial pressure(in bar):
T1 = 400+273 #Initial temperature(in K):
N = 16 #Number of nozzles:
p2 = 10 #Final pressure(in bar):
m = 5 #Discharge(in kg/s):
nn = 0.90 #Nozzle efficiency:
C1 = 100 #Inlet velocity(in m/s):
n = 1.3 #Insex of compression:
#From steam tables:
h1 = 3257.5 #kJ/kg
s1 = 7.3026 #kJ/kg.K
T2 = 350.46 #°C
h2 = 3158.7 #kJ/kg
v2 = 0.2827 #m**3/kg
#Calculations:
h12 = (h1-h2)*nn #Actual enthalpy change(inn kJ/kg):
C2 = sqrt(2*h12*10**3) #Velocity at exit(in m/s):
A2 = m*v2/(C2*N)*10**4 #Cross-sectional area at exit(in cm**2):
C2a = sqrt(2*h12*10**3+C1**2)#Modified velocity at nozzle exit(in m/s):
ma = 16*2.13*433.41*10**(-4)/0.2827#ma = A2*C2a*N/v2*10**(-4)
p = (ma-m)/m*100 #% increase in discharge:
#Results:
print "Cross-sectional area at exit of nozzle: ",round(A2,2),"cm**2"
print "Percentage increase in discharge: ",round(p,2),"%"
```

In [24]:

```
from __future__ import division
#Variable Declaration:
p1 = 20 #Initial pressure(in bar):
p3 = 5 #Final pressure(in bar):
n = 1.3
#From steam tables:
T1 = 212.42+273 #K
Tsat = 186.43+273 #K (at 11.6 bar)
psat = 5.452 #bar (at 155.14 °C)
h1 = 2799.5 #kJ/kg
v1 = 0.009963 #m**3/kg
s1 = 6.3409 #kJ/kg.K
h2aa = 2693.98 #kJ/kg
s2a = 6.5484 #kJ/kg.K
h3a = 2632.76 #kJ/kg
h3 = 2544.21 #kJ/kg
p2 = p1*0.58 #Pressure at throat(in bar):
#Calculations:
s2aa = s1
s3a = s2a
s3 = s1
T2 = T1*(p2/p1)**((n-1)/n) #Temperature at state 2(in K):
d = p2/psat #Degree of supersaturation:
d1 = Tsat-T2 #Degree of undercooling:
h12 = (n/(n-1))*p1*10**2*v1*(1-(T2/T1)) #Isentropic enthalpy drop:
h2 = h1-h12 #Enthalpy at state 2(in kJ/kg):
h12aa = h1-h2aa #Heat drop with no saturation(in kJ/kg):
L = h12aa-h12 #Loss of available heat drop(in kJ/kg):
s12a = L/Tsat #Increase in entropy(in kJ/kg.K):
L1 = h3a-h3 #Loss due to undercooling(in kJ/kg):
p = L1/(h1-h3)*100 #Percentage loss:
#Results:
print "Degree of supersaturation: ",round(d,2)
print "Degree of undercooling: ",round(d1,2),"°C"
print "Entropy change: ",round(s12a,4),"kJ/kg.K"
print "Loss due to undercooling: ",round(L1,2),"kJ/kg"
print "Percentage loss: ",round(p,2)
```

In [27]:

```
from __future__ import division
from math import sqrt,pi
#Variable Declaration:
m1 = 150/60 #Mass flow rate(in kg/s):
H = 5 #Height of water level from the axis of injector(in m):
p4 = 20 #Pressuer at which steam is injected(in bar):
Z4 = 0.8 #Water level in boiler from the injector(in m):
x1 = 0.95 #Dryness fraction at state 1:
C4 = 20 #Velocity in delivery pipe(in m/s):
p3 = 1.013 #Atmospheric pressure(in bar):
d = 10**3 #Density(in kg/m**3):
g = 9.81 #Acceleration due to gravity(in m/s**2):
Cps = 3.18 #Specific heat of steam(in kJ/kg.K):
Cpw = 4.18 #Specific heat of water(in kJ/kg.K):
#From steam tables:
T1 = 212.42 #°C
Tw = 25 #°C
p2 = 0.7*p4
h1 = 2704.95 #kJ/kg
hfg1 = 1890.7 #kJ/kg
s1 = 6.1462 #kJ/kg.K
x2 = 0.923
h2 = 2639.10 #kJ/kg
v2 = 0.13 #m**3/kg
#Calculations:
s2 = s1
C2 = sqrt(2*(h1-h2)*10**3) #Velocity of steam at throat(in m/s):
C3 = sqrt(2*(g*Z4+p4*10**5/d+C4**2/2-p3*10**5/d))#Velocity at state 3(in m/s):
m = (C2-C3)/(sqrt(2*g*H)+C3) #Mass of water pumped per kg of steam(in kg):
m3 = m1+m1/m #Mass of mixture passing through state 3(in kg/s):
A3 = m3/(d*C3)*10**4 #Area of throat of mixing nozzle(in cm**2):
d3 = sqrt(A3*4/pi) #Diameter of throat of the mixing nozzle(in cm):
ms = m1/m #Mass of steam required for given flow rate(in kg/s):
A2 = ms*v2/C2*10**4 #Area at state 2(in cm**2):
d2 = sqrt(A2*4/pi) #Diameter of throat of steam nozzle(in cm):
T3 = (x1*hfg1+Cps*T1+m*Cpw*Tw)/(m*Cpw+Cps)#Temperature of water coming out of the injector(in C):
#Results:
print "Mass of water pumped per kg of steam: ",round(m,2),"kg"
print "Diameter of throat of the mixing nozzle: ",round(d3,3),"cm"
print "Diameter of throat of steam nozzle: ",round(d2,2),"cm"
print "Temperature of water coming out of the injector: ",round(T3,2),"°C"
```

In [29]:

```
from __future__ import division
from math import sqrt
#Variable Declaration:
p4 = 20 #Pressure at which steam is generated(in bar):
p1 = 1.5 #Pressure at inlet(in bar):
x1 = 0.9 #Dryness fraction:
M = 5000 #Mass of water taken from feed water tank(in kg/hr):
d = 10**3 #Density(in kg/m**3):
#From steam tables:
h1 = 2470.96 #kJ/kg
s1 = 6.6443 #kJ/kg.K
s2 = s1
x2 = 0.88
h2 = 2396.72 #kJ/kg
v2 = 1.7302 #m**3/kg
#Calculations:
C2 = sqrt(2*(h1-h2)*10**3) #Steam velocity(in m/s):
C3 = sqrt(1.2*p4*2*10**5/d) #Velocity at 3(in m/s):
m = C2/C3-1 #Mass entrained per kg of steam:
ms = M/(3600*m) #Mass of steam supplied per second(in kg/s):
A2 = ms*v2/C2*10**4 #Area of steam nozzle(in cm**2):
D = M/3600+ms #Total discharge from injector(in kg/s):
A = D/(C3*d)*10**4 #Area of discharge orifice(in cm**2):
#Results:
print "Mass of water pumped per kg of steam: ",round(m,2),"kg water/kg of steam"
print "Area of steam nozzle: ",round(A2,2),"cm**2"
print "Area of discharge orifice: ",round(A,3),"cm**2"
```