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]]
...
...
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 |
This type contains the description of a blade row together with the performance model
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 |
Reads the machine description from a TOML table
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(toml_table), | intent(inout) | :: | table |