turbo-design 1.1.1__tar.gz → 1.1.3__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of turbo-design might be problematic. Click here for more details.

Files changed (32) hide show
  1. {turbo_design-1.1.1 → turbo_design-1.1.3}/PKG-INFO +1 -1
  2. {turbo_design-1.1.1 → turbo_design-1.1.3}/pyproject.toml +1 -1
  3. {turbo_design-1.1.1 → turbo_design-1.1.3}/turbodesign/bladerow.py +1 -0
  4. {turbo_design-1.1.1 → turbo_design-1.1.3}/turbodesign/inlet.py +3 -3
  5. {turbo_design-1.1.1 → turbo_design-1.1.3}/turbodesign/passage.py +5 -3
  6. {turbo_design-1.1.1 → turbo_design-1.1.3}/turbodesign/td_math.py +7 -4
  7. {turbo_design-1.1.1 → turbo_design-1.1.3}/turbodesign/__init__.py +0 -0
  8. {turbo_design-1.1.1 → turbo_design-1.1.3}/turbodesign/arrayfuncs.py +0 -0
  9. {turbo_design-1.1.1 → turbo_design-1.1.3}/turbodesign/cantera_gas/co2.yaml +0 -0
  10. {turbo_design-1.1.1 → turbo_design-1.1.3}/turbodesign/compressorspool.py +0 -0
  11. {turbo_design-1.1.1 → turbo_design-1.1.3}/turbodesign/coolant.py +0 -0
  12. {turbo_design-1.1.1 → turbo_design-1.1.3}/turbodesign/enums.py +0 -0
  13. {turbo_design-1.1.1 → turbo_design-1.1.3}/turbodesign/isentropic.py +0 -0
  14. {turbo_design-1.1.1 → turbo_design-1.1.3}/turbodesign/loss/__init__.py +0 -0
  15. {turbo_design-1.1.1 → turbo_design-1.1.3}/turbodesign/loss/compressor/__init__.py +0 -0
  16. {turbo_design-1.1.1 → turbo_design-1.1.3}/turbodesign/loss/losstype.py +0 -0
  17. {turbo_design-1.1.1 → turbo_design-1.1.3}/turbodesign/loss/turbine/TD2.py +0 -0
  18. {turbo_design-1.1.1 → turbo_design-1.1.3}/turbodesign/loss/turbine/__init__.py +0 -0
  19. {turbo_design-1.1.1 → turbo_design-1.1.3}/turbodesign/loss/turbine/ainleymathieson.py +0 -0
  20. {turbo_design-1.1.1 → turbo_design-1.1.3}/turbodesign/loss/turbine/craigcox.py +0 -0
  21. {turbo_design-1.1.1 → turbo_design-1.1.3}/turbodesign/loss/turbine/fixedefficiency.py +0 -0
  22. {turbo_design-1.1.1 → turbo_design-1.1.3}/turbodesign/loss/turbine/fixedpressureloss.py +0 -0
  23. {turbo_design-1.1.1 → turbo_design-1.1.3}/turbodesign/loss/turbine/kackerokapuu.py +0 -0
  24. {turbo_design-1.1.1 → turbo_design-1.1.3}/turbodesign/loss/turbine/traupel.py +0 -0
  25. {turbo_design-1.1.1 → turbo_design-1.1.3}/turbodesign/lossinterp.py +0 -0
  26. {turbo_design-1.1.1 → turbo_design-1.1.3}/turbodesign/outlet.py +0 -0
  27. {turbo_design-1.1.1 → turbo_design-1.1.3}/turbodesign/radeq.py +0 -0
  28. {turbo_design-1.1.1 → turbo_design-1.1.3}/turbodesign/rotor.py +0 -0
  29. {turbo_design-1.1.1 → turbo_design-1.1.3}/turbodesign/solve_radeq.py +0 -0
  30. {turbo_design-1.1.1 → turbo_design-1.1.3}/turbodesign/spool.py +0 -0
  31. {turbo_design-1.1.1 → turbo_design-1.1.3}/turbodesign/stage.py +0 -0
  32. {turbo_design-1.1.1 → turbo_design-1.1.3}/turbodesign/turbinespool.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: turbo-design
3
- Version: 1.1.1
3
+ Version: 1.1.3
4
4
  Summary: TurboDesign is a library used to design turbines and compressors using radial equilibrium.
5
5
  Author: Paht Juangphanich
6
6
  Author-email: paht.juangphanich@nasa.gov
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "turbo-design"
3
- version = "1.1.1"
3
+ version = "1.1.3"
4
4
  description = "TurboDesign is a library used to design turbines and compressors using radial equilibrium."
5
5
  authors = ["Paht Juangphanich <paht.juangphanich@nasa.gov>"]
6
6
  packages = [
@@ -486,6 +486,7 @@ class BladeRow:
486
486
  "euler_power":self.euler_power,
487
487
  "axial_chord":self.axial_chord,
488
488
  "aspect_ratio":self.aspect_ratio,
489
+ "num_blades":self.num_blades,
489
490
  "area": self.area,
490
491
  "mprime":self.mprime[-1],
491
492
  "Reynolds":self.Reynolds,
@@ -54,7 +54,8 @@ class Inlet(BladeRow):
54
54
  self.beta2_metal = [0]
55
55
  self.P0_fun = interp1d(self.percent_hub_shroud,P0)
56
56
  self.T0_fun = interp1d(self.percent_hub_shroud,T0)
57
-
57
+ self.mprime = [0]
58
+
58
59
 
59
60
  def initialize_velocity(self,passage:Passage,num_streamlines:int):
60
61
  """Initialize velocity calculations. Assumes streamlines and inclination angles have been calculated
@@ -67,7 +68,6 @@ class Inlet(BladeRow):
67
68
 
68
69
  cutline,_,_ = passage.get_cutting_line(self.axial_location)
69
70
  self.x,self.r = cutline.get_point(np.linspace(0,1,num_streamlines))
70
-
71
71
  for _ in range(10):
72
72
  T0_T = (1+(self.gamma-1)/2 * self.M**2)
73
73
 
@@ -115,7 +115,7 @@ class Inlet(BladeRow):
115
115
  Area += 2*np.pi*C*(S/2*dx**2+self.r[j-1]*dx)
116
116
 
117
117
  self.calculated_massflow = self.rho.mean()*self.Vm.mean() * Area
118
-
118
+
119
119
 
120
120
  def get_total_pressure(self,percent_hub_shroud:Union[float,npt.NDArray]):
121
121
  """Returns the static pressure at a certain percent hub_shroud
@@ -184,7 +184,7 @@ class Passage:
184
184
  rshroud = self.rshroud(t_shroud)
185
185
  return line2D([xhub,rhub],[xshroud,rshroud]), t_hub, t_shroud
186
186
 
187
- def get_xr_slice(self,t_span:float,axial_location:float):
187
+ def get_xr_slice(self,t_span:float,axial_location:Tuple[float,float]):
188
188
  """Returns the xr coordinates of a streamline, a line that is parallel to both hub and shroud
189
189
 
190
190
  Args:
@@ -194,7 +194,7 @@ class Passage:
194
194
  Returns:
195
195
  np.NDArray: _description_
196
196
  """
197
- t_hub = np.linspace(0,axial_location,100)
197
+ t_hub = np.linspace(axial_location[0],axial_location[1],100)
198
198
 
199
199
  shroud_pts_cyl = np.vstack([self.xshroud(t_hub),self.rshroud(t_hub)]).transpose()
200
200
  hub_pts_cyl = np.vstack([self.xhub(t_hub),self.rhub(t_hub)]).transpose()
@@ -228,7 +228,9 @@ class Passage:
228
228
  cut,_,_ = self.get_cutting_line(p)
229
229
  x,r = cut.get_point(np.linspace(0,1,10))
230
230
  plt.plot(x,r,label=f'{p}',linestyle='dashed')
231
-
231
+
232
+
233
+ plt.ylim([-self.rshroud_pts.max()*0.1, self.rshroud_pts.max()])
232
234
  plt.legend()
233
235
  plt.axis('scaled')
234
236
  plt.show()
@@ -86,8 +86,10 @@ def compute_reynolds(rows:List[BladeRow],passage:Passage):
86
86
  rows (List[BladeRow]): Blade row to calculate the Reynolds number
87
87
  passage (Passage): Passage
88
88
  """
89
- for row in rows:
90
- xr = passage.get_xr_slice(0.5,row.axial_location)
89
+
90
+ for i in range(1,len(rows)):
91
+ row = rows[i]
92
+ xr = passage.get_xr_slice(0.5,[rows[i-1].axial_location,row.axial_location])
91
93
  dx = np.diff(xr[:,0])
92
94
  dr = np.diff(xr[:,1])
93
95
  c = np.sum(np.sqrt(dx**2+dr**2))
@@ -102,7 +104,8 @@ def compute_reynolds(rows:List[BladeRow],passage:Passage):
102
104
  mu = row.mu
103
105
  row.Reynolds = c*V*rho/mu
104
106
  row.mprime = mp
105
- row.axial_chord = c
107
+ row.axial_chord = max(c,1E-12) # Axial chord
108
+ # row.num_blades = int(2*np.pi*row.r.mean() / row.pitch_to_chord * row.axial_chord)
106
109
 
107
110
 
108
111
 
@@ -192,7 +195,7 @@ def compute_quantities(row:BladeRow,upstream:BladeRow):
192
195
  else:
193
196
  row.P0 = upstream.P0
194
197
  row.T0 = upstream.T0 - T0_coolant_weighted_average(row)
195
- row.T = row.T0 * (1+(row.gamma-1)/2*row.M**2)
198
+ row.T = row.T0 / (1+(row.gamma-1)/2*row.M**2)
196
199
  row.P = row.P0 * (row.T/row.T0)**((row.gamma)/(row.gamma-1))
197
200
  row.T0R = row.T + row.W**2 / (2*row.Cp)
198
201
  row.P0R = row.P*(row.T0R/row.T)**((row.gamma)/(row.gamma-1))