Skip to content

Fuel Variables and Subsystems Revamp#854

Merged
jkirk5 merged 72 commits intoOpenMDAO:mainfrom
cmbenne3:fuel_revamp
Sep 19, 2025
Merged

Fuel Variables and Subsystems Revamp#854
jkirk5 merged 72 commits intoOpenMDAO:mainfrom
cmbenne3:fuel_revamp

Conversation

@cmbenne3
Copy link
Copy Markdown
Contributor

@cmbenne3 cmbenne3 commented Aug 20, 2025

Summary

This PR fixes 2 connected issues with the fuel subsystems.

Removes 2 variables, and updates fortran_to_aviary to correctly handle the new assignments:

  1. Aircraft.Fuel.DENSITY_RATIO (instead user should just specify the absolute FUEL_DENSITY)
  2. Aircraft.Fuel.CAPACITY_FACTOR (This variable is from legacy FLOPS and has no physical meaning. Switch to using Aircraft.Fuel.WING_FUEL_FRACTION)

Adds a new post-mission exec comp subsystem to calculate the excess fuel for the mission. (Excess_fuel = TOTAL_FUEL_CAPACITY - UNUSABLE_FUEL_MASS - TOTAL_FUEL_MASS), where total_fuel_mass includes fuel burned in the mission, reserve fuel, and fuel margin).

Adds a new constraint for the optimization to force that excess fuel must be greater than zero.

Adds a new control variable Aircraft.Fuel.IGNORE_EXCESS_FUEL_CONSTRAINT to control the addition of the constraint, which adds functionality similar to the FLOPS WTIN.IFUFU parameter. If set=True then the constraint will not be added and Aviary will converge even if there is not enough capacity for the required mission fuel (this is the current behaviour). The default has been set = False (which makes more sense for most users).

flops_defaults updated to correctly interpret IFUFU and set Aircraft.Fuel.IGNORE_EXCESS_FUEL_CONSTRAINT as boolean.

Excess fuel output added to dashboard under mission summary.

A new preprocessors function has been added to check the fuel capacity variables are consistent with each other, and to add an assumption that they're zero if they are missing. This fixes a bug where it was possible to setup a circular calculation reference that prevented aviary from converging if those variables were missing (and it was difficult for the user to debug).

The units of the fuel density input for FLOPS and GASP fuel calculations have been made consistent throught aviary and set to lbm/galUS.

Related Issues

Backwards incompatibilities

If existing aircraft models fail with the addition of the excess fuel constraint then that indicates that those models were invalid in the first place.
Existing aircraft models with density_ratio and capacity_factor variables may not give identical answers if values were changed from defaults

New Dependencies

None

@cmbenne3 cmbenne3 marked this pull request as ready for review August 21, 2025 15:32
@cmbenne3 cmbenne3 closed this Aug 21, 2025
@cmbenne3 cmbenne3 reopened this Aug 21, 2025
@cmbenne3 cmbenne3 marked this pull request as draft August 21, 2025 15:38
@cmbenne3 cmbenne3 marked this pull request as ready for review August 22, 2025 19:34
@ehariton ehariton self-requested a review August 25, 2025 17:17
Comment thread aviary/core/aviary_group.py
Comment thread aviary/subsystems/mass/flops_based/test/test_fuel_capacity.py
Bennett and others added 6 commits September 11, 2025 19:25
Co-authored-by: Jason Kirk <110835404+jkirk5@users.noreply.github.com>
…after the problem has executed to check the excess fuel capacity and warn user if the problem has converged and there is not enough capacity for fuel
@cmbenne3 cmbenne3 requested a review from jkirk5 September 12, 2025 00:05
@jkirk5 jkirk5 enabled auto-merge September 12, 2025 20:08
@jkirk5 jkirk5 added this pull request to the merge queue Sep 12, 2025
@github-merge-queue github-merge-queue Bot removed this pull request from the merge queue due to failed status checks Sep 12, 2025
@jkirk5 jkirk5 added this pull request to the merge queue Sep 18, 2025
@github-merge-queue github-merge-queue Bot removed this pull request from the merge queue due to failed status checks Sep 18, 2025
Bennett and others added 2 commits September 18, 2025 14:13
@jkirk5 jkirk5 added this pull request to the merge queue Sep 19, 2025
@github-merge-queue github-merge-queue Bot removed this pull request from the merge queue due to a conflict with the base branch Sep 19, 2025
@jkirk5 jkirk5 added this pull request to the merge queue Sep 19, 2025
Merged via the queue into OpenMDAO:main with commit 74f143d Sep 19, 2025
6 checks passed
@cmbenne3 cmbenne3 deleted the fuel_revamp branch January 27, 2026 22:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Improve Fuel Capacity/Volume/Density/Ratio variables

4 participants