A comprehensive Go-based simulation tool for analyzing gas turbine performance across multiple configurations. This tool explores various combinations of compression ratios, turbine inlet temperatures, reheat configurations, and bottoming cycles to identify optimal system efficiency with in the set constraints. It performs parametric thermodynamic analysis based on the Brayton cycle and bottoming cycles focusing purely on cycle-level efficiency calculations, not CFD or flow-field simulations.
- Multi-stage Compression: Axial + Centrifugal compressor simulation
- Advanced Combustion: Primary combustor with configurable efficiency and pressure losses
- Reheat Cycles: Variable reheat temperature and positioning between turbine stages
- Bottoming Cycles: Organic Rankine Cycle (ORC) integration for waste heat recovery
- Parallel Processing: Go routines for efficient simulation of thousands of configurations
- Comprehensive Output: Excel exports with detailed analysis and interactive HTML plots
- Configurable Parameters: YAML-based configuration for easy customization
-
Prerequisites: Go 1.21 or higher
-
Clone and setup:
git clone
cd gas-turbine-sim
go mod tidy- Build the application:
go build -o gas-turbine-sim./gas-turbine-sim./gas-turbine-sim --config config/custom.yamlThe simulation is controlled via YAML configuration files. Key parameters include:
ambient_temp: Ambient temperature (K)ambient_pressure: Ambient pressure (Pa)exit_pressure: Minimum exit pressure (Pa)
axial_efficiency: Axial compressor isentropic efficiencycentrifugal_efficiency: Centrifugal compressor isentropic efficiencymax_axial_pr: Maximum axial pressure ratiomax_total_pr: Maximum total compression ratio
max_tit: Maximum turbine inlet temperature (K)combustor_efficiency: Combustion efficiencycombustor_pressure_loss: Pressure loss fraction
reheat_efficiency: Reheat combustor efficiencymin_reheat_position: Minimum expansion ratio before reheatmax_reheat_position: Maximum expansion ratio before reheat
axial_pr_steps: Resolution for axial PR variationtit_steps: Resolution for TIT variationmax_workers: Parallel processing threads
Each simulation run creates a timestamped folder in outputs/ containing:
- Configuration Backup: Copy of the configuration used
- Excel Spreadsheet: Detailed results with all parameters and efficiencies
- Interactive Plots: HTML charts showing:
- Efficiency vs. Pressure Ratio
- Efficiency vs. Turbine Inlet Temperature
- Efficiency vs. Reheat Position
The simulation implements:
- Isentropic processes with realistic efficiencies
- Combustion modeling with efficiency and pressure losses
- Multi-stage expansion with reheat capabilities
- Bottoming cycle integration for waste heat recovery
- Parallel processing using Go routines
- Constraint validation to eliminate invalid configurations
- Efficient memory usage with streaming result processing
The simulation typically evaluates 100,000+ configurations and identifies optimal operating points. Findings:
- Best Efficiency: 54% with a 1500K TIT, with reheat showing no benefit. 49% with a 1220K TIT (uncooled turbine), with reheat being beneficial.

- Thermodynamic Models: Extend
internal/thermodynamics/properties.go - Simulation Logic: Modify
internal/simulation/simulator.go - Output Formats: Add to
internal/output/
go test ./...# Linux
GOOS=linux GOARCH=amd64 go build -o gas-turbine-sim-linux
# Windows
GOOS=windows GOARCH=amd64 go build -o gas-turbine-sim.exe
# macOS
GOOS=darwin GOARCH=amd64 go build -o gas-turbine-sim-mac