Shock Shape¶
This module computes the shock shape for the detached shock of a blunt body for a calorically perfect gas (\(\gamma=1.4\)).
The solutions follow that of Billig as described in 1-2)
High-level API¶
minuteman.cpg.shock_shape.estimate_coords_cylinder_wedge ¶
estimate_coords_cylinder_wedge(
y: ArraylikeFloat, mach: Floatlike, nose_radius: Floatlike, half_angle: Floatlike
) -> ShockShapeSolution
Estimate the shock-shape for a cylinder-wedge at a given freestream Mach number.
Parameters:
-
y(ArraylikeFloat) –y-coordinates \(y\). A value of \(y=0\) is defined at the axis of symmetry. Bounds: \([0, \infty)\)
-
mach(Floatlike) –Freestream Mach number \(M\). Bounds: \((1, \infty)\)
-
nose_radius(Floatlike) –Nose radius \(R\). Bounds: \((0, \infty)\)
-
half_angle(Floatlike) –Wedge half angle \(\theta\) [radians]. Bounds: \((0, \pi/2)\)
Returns:
-
ShockShapeSolution–Shock shape solution
minuteman.cpg.shock_shape.estimate_coords_sphere_cone ¶
estimate_coords_sphere_cone(
y: ArraylikeFloat, mach: Floatlike, nose_radius: Floatlike, half_angle: Floatlike
) -> ShockShapeSolution
Estimate the shock-shape for a sphere-cone at a given freestream Mach number.
Parameters:
-
y(ArraylikeFloat) –y-coordinates \(y\). A value of \(y=0\) is defined at the axis of symmetry. Bounds: \([0, \infty)\)
-
mach(Floatlike) –Freestream Mach number \(M\). Bounds: \((1, \infty)\)
-
nose_radius(Floatlike) –Nose radius \(R\). Bounds: \((0, \infty)\)
-
half_angle(Floatlike) –Cone half angle \(\theta_c\) [radians]. Bounds: \((0, \pi/2)\)
Returns:
-
ShockShapeSolution–Shock shape solution
Low-level API¶
minuteman.cpg.shock_shape.curvature_radius_sphere_cone ¶
Compute the vertex radius of curvature for a sphere-cone, \(R_c\).
Parameters:
-
mach(ArraylikeFloat) –Mach number \(M\)
-
nose_radius(ArraylikeFloat) –Sphere-cone radius \(R\)
Returns:
-
NDArrayFloat–Radius of curvature \(R_c\)
minuteman.cpg.shock_shape.curvature_radius_cylinder_wedge ¶
Compute the vertex radius of curvature for a cylinder-wedge, \(R_c\).
Parameters:
-
mach(ArraylikeFloat) –Mach number \(M\)
-
nose_radius(ArraylikeFloat) –Cylinder-wedge radius \(R\)
Returns:
-
NDArrayFloat–Radius of curvature \(R_c\)
minuteman.cpg.shock_shape.standoff_distance_cylinder_wedge ¶
Compute the shock standoff distance \(\Delta\) for a cylinder-wedge.
Parameters:
-
mach(ArraylikeFloat) –Mach number \(M\)
-
nose_radius(ArraylikeFloat) –Cylinder-wedge radius \(R\)
Returns:
-
NDArrayFloat–Shock standoff distance \(\Delta\)
minuteman.cpg.shock_shape.standoff_distance_sphere_cone ¶
Compute the shock standoff distance \(\Delta\) for a sphere-cone.
Parameters:
-
mach(ArraylikeFloat) –Mach number \(M\)
-
nose_radius(ArraylikeFloat) –Sphere-cone radius \(R\)
Returns:
-
NDArrayFloat–Shock standoff distance \(\Delta\)
minuteman.cpg.shock_shape.x_coordinates ¶
x_coordinates(
y: ArraylikeFloat,
shock_angle: Floatlike,
nose_radius: Floatlike,
standoff_distance: Floatlike,
curvature_radius: Floatlike,
) -> NDArrayFloat
Compute the x-coordinates of the shock shape of a blunt body \(x\) for a given set of y-coordinates.
Differing from the relation this function is based on, the positive x-axis is defined downstream of the vehicle, with \(x=0\) centered at the nose tip, not the center of curvature
Parameters:
-
y(ArraylikeFloat) –y-coordinates \(y\). A value of \(y=0\) is defined at the axis of symmetry.
-
shock_angle(Floatlike) –attached shock angle \(\theta\) for a cone or wedge [radians]
-
nose_radius(Floatlike) –nose radius \(R\)
-
standoff_distance(Floatlike) –shock standoff distance \(\Delta\)
-
curvature_radius(Floatlike) –vertex radius of curvature \(R_c\)
Returns:
-
NDArrayFloat–x-coordinates of shock shape, \(x\).
Data Structures¶
minuteman.cpg.shock_shape.BluntBodyType
¶
minuteman.cpg.shock_shape.ShockShapeSolution
dataclass
¶
Shock shape solution for a calorically perfect gas
x: NDArrayFloat
instance-attribute
¶
x-coordinates, \(x\). Zero is defined at the tip of the nose.
y: NDArrayFloat
instance-attribute
¶
y-coordinates, \(y\). Zero is defined at the axis of symmetry.
mach: float
instance-attribute
¶
Upstream Mach number, \(M\).
nose_radius: float
instance-attribute
¶
Nose radius \(R\)
shock_angle: float
instance-attribute
¶
Attached shock angle \(\theta\) [radians]
half_angle: float
instance-attribute
¶
Wedge or cone half angle [radians]
standoff_distance: float
instance-attribute
¶
Shock standoff distance \(\Delta\)
curvature_radius: float
instance-attribute
¶
Vertex radius of curvature \(R_c\)
body_type: BluntBodyType
instance-attribute
¶
Blunt body type
References¶
- Anderson, J. D. (1989). Hypersonic and high temperature gas dynamics. AIAA.
- Billig, F. S. (1967). Shock-wave shapes around spherical-and cylindrical-nosed bodies. Journal of Spacecraft and Rockets, 4(6), 822-823.