machine Module

This module contains the description of the machine, i.e. the blade rows, hub and shroud outlines, etc.

The machine description is read from a TOML file. The TOML file should contain the following sections:

   [machine]
   type = "turbine" or "compressor"
   hub_outline = [ [x1, y1], [x2, y2], [x3, y3], [x4, y4], ... ]
   shroud_outline = [ [x1, y1], [x2, y2], [x3, y3], [x4, y4], ... ]
   [[machine.blade_row]]
   name = "name of the blade row"
   number_of_blades = 100
   rotating = true
   leading_edge = [ [x1, y1], [x2, y2], [x3, y3], [x4, y4], ... ]
   trailing_edge = [ [x1, y1], [x2, y2], [x3, y3], [x4, y4], ... ]
   inlet_angle = [ 0.0, 1.0, 2.0, 3.0, ... ]
   outlet_angle = [ 0.0, 1.0, 2.0, 3.0, ... ]
   chord = [ 0.0, 1.0, 2.0, 3.0, ... ]
   relative_thickness = [ 0.0, 1.0, 2.0, 3.0, ... ]
   performance_model.type = "constant" or "lieblein" or "polynomial"
   ...
   [[machine.blade_row]]
   ...
   ...

Uses


Variables

Type Visibility Attributes Name Initial
type(blade_row_t), public, allocatable, target :: blade_row(:)

Array of blade rows

type(curve_t), protected :: hub_outline

Hub outline in meridional plane

character(len=:), protected, allocatable :: machine_type

Type of the machine, i.e. “turbine” or “compressor”

type(curve_t), protected :: shroud_outline

Shroud outline in meridional plane


Derived Types

type, public ::  blade_row_t

This type contains the description of a blade row together with the performance model

Components

Type Visibility Attributes Name Initial
type(interp1_t), public :: beta1g

Inlet blade angle with respect to the axial direction

type(interp1_t), public :: beta2g

Outlet blade angle with respect to the axial direction

type(interp1_t), public :: chord

Chord length

type(curve_t), public :: leading_edge

Leading edge outline in meridional plane

integer, public :: mirror

1 if the blade row is not mirrored, -1 if it is

character(len=:), public, allocatable :: name

Name of the blade row

integer, public :: number_of_blades

Number of blades in the row

class(performance_model_t), public, allocatable :: performance_model

Performance model

logical, public :: rotating

True if the blade row is rotating

type(interp1_t), public :: thickness

Blade thickness

type(curve_t), public :: trailing_edge

Trailing edge outline in meridional plane


Subroutines

public subroutine load_machine_description(table)

Reads the machine description from a TOML table

Arguments

Type IntentOptional Attributes Name
type(toml_table), intent(inout) :: table