Skip to content

Commit

Permalink
ENH: New nosecone types added.
Browse files Browse the repository at this point in the history
  • Loading branch information
CabGT committed Mar 11, 2023
1 parent 438074a commit aa6e68d
Showing 1 changed file with 14 additions and 2 deletions.
16 changes: 14 additions & 2 deletions rocketpy/AeroSurfaces.py
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,8 @@ def __init__(
length : float
Nose cone length. Has units of length and must be given in meters.
kind : string
Nose cone kind. Can be "conical", "ogive" or "lvhaack".
Nose cone kind. Can be "conical", "ogive", "elliptical", "tangent",
"von karman", "parabolic" or "lvhaack".
baseRadius : float, optional
Nose cone base radius. Has units of length and must be given in meters.
If not given, the ratio between baseRadius and rocketRadius will be
Expand Down Expand Up @@ -162,8 +163,19 @@ def kind(self, value):
self.k = 0.466
elif value == "lvhaack":
self.k = 0.563
elif value == "tangent":
rho = (self.baseRadius**2 + self.length**2) / (2 * self.baseRadius)
volume = np.pi * (
self.length * rho**2
- (self.length**3) / 3
- (rho - self.baseRadius) * rho**2 * np.arcsin(self.length / rho)
)
area = np.pi * self.baseRadius**2
self.k = 1 - volume / (area * self.length)
elif value == "elliptical":
self.k = 1 / 3
else:
self.k = 0.5
self.k = 0.5 # Parabolic and Von Karman
self.evaluateCenterOfPressure()

def evaluateGeometricalParameters(self):
Expand Down

0 comments on commit aa6e68d

Please sign in to comment.