turbo_moc.rotor package

turbo_moc.rotor package#

turbo_moc.rotor.design_rotor_vortex_blade(fluid_name, P0_rel, T0_rel, M_inlet, M_outlet, M_lower, M_upper, beta_inlet, backend='HEOS', Q0_rel=nan, r_star=None, num_points=60, le_te_ratio=25.0)[source]#

Design a supersonic rotor blade section by the vortex-flow method, following NASA TN D-4421 (Goldman & Scullin, 1968) – see this module’s docstring for exactly how, why it replaced earlier (Paniagua Eq. 17 based) attempts in this module.

Parameters:
fluid_namestr

CoolProp fluid name.

P0_rel, T0_relfloat

Relative-frame stagnation pressure [Pa] and temperature [K] at the rotor inlet (subcooled-liquid/single-phase convention – pass Q0_rel in [0,1] instead for a saturated two-phase inlet).

M_inlet, M_outletfloat

Relative Mach number far upstream/downstream of the rotor (in the uniform-flow regions, before/after the transition arcs). Together with beta_inlet these set the degree of reaction: M_outlet=M_inlet is the pure-impulse case (no static enthalpy drop across the rotor); M_outlet != M_inlet gives a reacting blade.

M_lower, M_upperfloat

Constant Mach number held on the pressure (concave/lower) and suction (convex/upper) circular arcs.

beta_inletfloat

Relative flow angle [deg] from the axial direction at inlet – the only free flow-angle input. beta_outlet is ALWAYS derived from beta_inlet/M_inlet/M_outlet via mass-flux continuity (rho*V*cos(beta) = const across the transition) – the real-gas generalization of TN D-4421’s own Eq. 9, see _solve_beta_outlet’s docstring – not a free input, by design: an inconsistent beta_outlet doesn’t just distort the geometry, it produces a self-intersecting wall (mass isn’t actually conserved), with no warning otherwise. If you want a specific exit flow angle, choose M_inlet/M_outlet to hit it via continuity rather than overriding beta_outlet directly (not currently supported – would mean solving continuity for M_outlet given both betas instead).

r_starfloat or None

Physical radius [m] of the sonic-velocity streamline to rescale the (nondimensional) geometry by. None returns x*, y* (units of r*, i.e. dimensionless).

num_pointsint

Points per transition arc (endpoints included) – a fine-grained stand-in for TN D-4421’s explicit Delta-nu marching.

le_te_ratiofloat

Target pitch/r_TE ratio used to size the rounded leading/trailing edges that close the solid blade (default 25). The upper wall’s extra shift beyond pitch is solved so the trailing-edge arc’s radius hits pitch/le_te_ratio exactly; the leading-edge radius is then whatever that same shift produces at the other end (equal to the TE radius only for the pure-impulse, beta_inlet==beta_outlet case) – see _close_blade_le_te’s docstring.

Returns:
dict

Flat, JSON-safe dict: pressure/suction (each {“x”,”y”}, nondimensional by r* unless r_star given, in each surface’s OWN local frame – own vortex center at the origin – plus mach_lines_inlet/mach_lines_outlet, lists of (x0,y0,x1,y1) characteristic segments from the marching recursion). suction additionally carries extension_inlet/ extension_outlet (x0,y0,x1,y1): straight stubs continuing the suction surface at beta_inlet/beta_outlet out to pressure’s far- corner x – see the module docstring’s “IMPORTANT” note for why these do NOT meet pressure (they bound the passage to the NEXT blade, offset by pitch, not this blade’s own pressure side). Also: pitch (TN D-4421’s GSTAR: the natural blade-to-blade spacing derived from the geometry, not a free input), chord (CSTAR, the lower surface’s own inlet-far-to-outlet-far distance), solidity (chord/pitch), and the design parameters echoed back.

Submodules#