Mean-line

The first step in turbomachinery design is a one-dimensional analysis along the ‘mean-line’. We consider an axisymmetric streamsurface at an intermediate mean radius, for the inlet and exit of each blade row, as a simplified model of the real three-dimensional flow. Given an inlet condition and machine duty, mean-line design fixes the annulus radii and flow angles.

turbigen abstracts mean-line design in the following way. Each type of machine (e.g. ‘axial turbine’, ‘radial compressor’) has forward and inverse functions, stored in a module under turbigen/meanline/.

The forward() function takes as arguments: an inlet state object from turbigen.fluid; and some duty, geometric, or aerodynamic choices (e.g. mass flow rate, radius ratio, flow coefficient). The forward() function returns a turbigen.meanline.MeanLine object that encapsulates all required information about the mean-line design: flow properties, velocities, annulus areas and hub and shroud radii.

As described in the Configuration page, the entries in the mean_line section of a turbigen YAML file are fed directly into the chosen forward() function as keyword arguments. For example, if the configuration file contains:

mean_line:
  type: axial_turbine
  Alpha1: 0.
  phi: 0.8
  psi: 1.6
  Lam: 0.5
  # ... more keys

Then within the code, a turbigen.meanline.MeanLine object will be created using something like:

import turbigen.meanline.axial_turbine

ml = turbigen.meanline.axial_turbine.forward(
    So1,  # Inlet state calculated elsewhere, positional arg
    Alpha1=0.,  # Keys from `mean_line` config unpacked as kwargs
    phi=0.8,
    psi=1.6,
    Lam=0.5,
    # ... more args
)

The inverse() function takes a turbigen.meanline.MeanLine object as its only argument, and calculates from the flow field a dictionary of the same parameters that are input to forward(). Given a suitably averaged CFD solution, inverse() is a post-processing step that allows comparison of the three-dimensional simulated flow field to the one-dimensional design intent. Also, feeding the output of forward() straight into inverse() performs a check that the mean-line design is consistent with the requested input parameters.

The mean-line parts of turbigen are flexible and extensible. Any parameterisation can be used for mean-line design, once a forward() function is written to take the chosen design variabes as arguments and perform the calculations. Any turbomachine type can be programmed and represented as a turbigen.meanline.MeanLine object.

The following turbomachine architectures are currently implemented

  • Cascade

  • Axial turbine

  • Radial compressor

class MeanLine[source]

Encapsulate flow and geometry on a nomial mean streamsurface.

classmethod from_states(rrms, A, Omega, Vxrt, S, Nb=None)[source]

Construct a mean-line from generic state objects.

Cascade

forward(So1, span1, span2, Alpha1, Alpha2, Ma2, Yh=0.0, htr=0.99, RR=1.0, Beta=(0.0, 0.0))[source]

Design the mean-line for a single-row stationary cascade.

The minimal set of design choices are: spans, yaw angles, and exit Mach number. Optionally, loss can be acounted for using an energy loss coefficient. For annular cascades, a hub-to-tip ratio, radius change and pitch angles become additional free variables.

Parameters:
  • So1 (State) – Object specifing the working fluid and its state at inlet.

  • span1 (float) – Inlet and outlet spans, \(H\).

  • span2 (float) – Inlet and outlet spans, \(H\).

  • Alpha1 (float) –

  • Alpha2 (float) – Inlet and outlet yaw angles, \(\alpha/^\circ\).

  • Ma2 (float) – Exit Mach number, \(\Ma_2\).

  • Yh (float) – Estimate of the row energy loss coefficient, \(Y_h\). Uses compressor definition for diffusing passages, and turbine definition for contracting passages.

  • htr (float) – Inlet hub-to-tip radius ratio, \(\htr\), defaults to just less than unity to approximate a linear cascade.

  • RR (float) – Outlet to inlet radius ration, \(r_2/r_1\).

  • Beta ((2,) array) – Inlet and outlet pitch angles, \(\beta/^\circ\). Only makes sense to be non-zero if radius ratio is not unity.

Returns:

ml – An object specifying the flow along the mean line.

Return type:

MeanLine

inverse(ml)[source]

Reverse a cascade mean-line to design variables.

Parameters:

ml (MeanLine) – A mean-line object specifying the flow in a cascade.

Returns:

out – Dictionary of aerodynamic design parameters with fields: So1, span1, span2, Alpha1, Alpha2, Ma2, Yh, htr, RR, Beta. The fields have the same meanings as in forward().

Return type:

dict

Axial turbine

Mean-line design for an axial turbine stage, assuming perfect gas.

forward(So1, htr, Omega, Alpha1, phi, psi, Lam, Ma2, eta, loss_split=0.5, VmR12=1.0, VmR23=1.0)[source]

Design the mean-line for an axial turbine stage.

Parameters:
  • So1 (State) – Object specifing the working fluid and its state at inlet.

  • htr (float) – Hub-to-tip radius ratio, \(\htr\).

  • Omega (float) – Shaft angular velocity, \(\Omega\) [rad/s].

  • phi (float) – Flow coefficient, \(\phi\).

  • psi (float) – Stage loading coefficient, \(\psi\).

  • Lam (float) – Degree of reaction, \(\Lambda\).

  • Al1 (float) – Inlet yaw angle, \(\alpha_1\).

  • Ma2 (float) – Vane exit Mach number, \(\Ma_2\).

  • ga (float) – Ratio of specific heats, \(\gamma\).

  • eta (float) – Guess of polytropic efficiency, \(\eta\).

  • loss_split (float) – Guess of entropy rise split between stator and rotor.

  • VmR12 (float) – Meridional velocity ratio

  • VmR23 (float) – Meridional velocity ratio

Returns:

ml – An object specifying the flow along the mean line.

Return type:

MeanLine

inverse(ml)[source]

Given mean-line flow, extract design parameters for a turbine stage.

Parameters:

ml (MeanLine) – A mean-line object specifying the flow in an axial turbine.

Returns:

out – Dictionary of aerodynamic design parameters with fields: So1, htr, Omega, Alpha1, phi, psi, Lam, Ma2, eta, loss_split, VmR12, VmR23. The fields have the same meanings as in forward().

Return type:

dict

Radial compressor

Mean-line design of a radial impeller with vaneless diffuser

forward(So1, PR_tt, eta_tt, mdot, phi1, Alpha1, Ma1_rel, htr1, Alpha2_rel, loss_split, DH_rotor, DH_diff)[source]

Design the mean-line for a vaneless radial compressor.

Parameters:
  • So1 (State) – Object specifing the working fluid and its state at inlet.

  • PR_tt (float) – Stagnation pressure ratio

  • eta_tt (float) – Estimate of total-to-total isentropic efficiency.

  • mdot (float) – Mass flow rate.

  • Alpha1 (float) – Impeller inlet yaw angle.

  • Ma1_rel (float) – Impeller inlet relative Mach number.

  • htr1 (float) – Impeller inlet hub-to-tip ratio.

  • Alpha2_rel (float) – Impeller exit yaw angle.

  • loss_split (float) – Guess of entropy rise split between impeller and diffuser.

  • DHimp (float) – Impeller de Haller number.

  • DHdiff (float) – Diffuser de Haller number.

Returns:

ml – An object specifying the flow along the mean line.

Return type:

MeanLine

inverse(ml)[source]

Reverse a radial compressor mean-line to design variables.

Parameters:

ml (MeanLine) – A mean-line object specifying flow in a radial compressor.

Returns:

out – Dictionary of aerodynamic design parameters with fields: So1, PR_tt, eta_tt, mdot, phi1, Alpha1, Ma1_rel, htr1, Alpha2_rel, loss_split, DHimp, DHdiff The fields have the same meanings as in forward().

Return type:

dict