Source code for turbo_moc.deprecated.geometry.meridional

"""
turbo_moc.geometry.meridional -- meridional (axial-radial, x-r) view of a
stator + rotor stage, sharing its hub/tip radii inputs with the flared 3D
blade extrusion (see turbo_moc.geometry.blade.export_flared_blade_step).

Convention (matching Anderson et al. 2025's own Table 2 / Fig. 4/5 -- rhub,
rtip at cascade inlet/outlet): each row's hub and tip lines are assumed to
span the SAME axial stations (x_in, x_out) -- only their radii differ, the
standard "conical annulus" flare model (Anderson's own Eq. 4 linear-
combination-of-radii formula assumes this too, via a shared axial
fraction). This means a flared 3D blade extrusion does NOT need to
axially shift the tip profile relative to the hub profile -- flare shows
up purely as radius change (this meridional view) and, in the 3D blade,
as the tip profile's pitchwise (tangential) extent scaling with radius
(pitch = 2*pi*r/Z_blades at constant blade count) -- the two are two
views of the SAME flare inputs, not independently specified.
"""

__all__ = ["build_meridional_view"]


[docs] def build_meridional_view( stator_axial_chord, stator_r_hub_in, stator_r_hub_out, stator_r_tip_in, stator_r_tip_out, rotor_axial_chord, rotor_r_hub_in, rotor_r_hub_out, rotor_r_tip_in, rotor_r_tip_out, gap, ): """ Hub/tip line coordinates for a stator row (x in [0, stator_axial_chord]) followed by a rotor row (x in [stator_axial_chord + gap, ... + rotor_axial_chord]) -- for turbo_moc.plotly/mpl's plot_meridional_view. Parameters ---------- stator_axial_chord, rotor_axial_chord : float Each row's own axial (flow-direction) extent -- e.g. the stator blade's own chordwise span (mm), the rotor's own "chord" (CSTAR, already dimensionalized if it was designed with r_star). stator_r_hub_in/out, stator_r_tip_in/out, rotor_r_hub_in/out, rotor_r_tip_in/out : float Hub/tip radii at each row's own inlet/outlet. gap : float Axial (row-to-row) spacing between the stator's own trailing edge and the rotor's own leading edge. """ x_stator = [0.0, float(stator_axial_chord)] x_rotor_start = float(stator_axial_chord) + float(gap) x_rotor = [x_rotor_start, x_rotor_start + float(rotor_axial_chord)] return { "stator": { "x": x_stator, "hub": [float(stator_r_hub_in), float(stator_r_hub_out)], "tip": [float(stator_r_tip_in), float(stator_r_tip_out)], }, "rotor": { "x": x_rotor, "hub": [float(rotor_r_hub_in), float(rotor_r_hub_out)], "tip": [float(rotor_r_tip_in), float(rotor_r_tip_out)], }, "gap": float(gap), }