Skip to content

Conversation

xjjiang
Copy link
Contributor

@xjjiang xjjiang commented Sep 11, 2025

Summary

This PR implements the BWB aircraft geometry subsystem based on FLOPS design.

The FLOPS based geometry subsystems are shown in the following table. The left column is for the conventional aircraft and the right column is for BWB aircraft. In both case, user can choose a simple layout or a detailed layout.

FLOPS has multiple scenarios of fuselage layout algorithms. We choose to implement the simplest and most detailed algorithms in Aviary. Other scenarios can be added if needed.

The BWB aircraft always requires a detailed wing distribution. It is either given (BWBUpdateDetailedWingDist) or created (BWBComputeDetailedWingDist).

Aircraft.BWB.MAX_NUM_BAYS is changed from an option to Aviary variable because it needs to be updated during a run.

Aircraft.Wing.INPUT_STATION_DIST is still an option. We created a variable BWB_INPUT_STATION_DIST from it.

Comparision of Conventional Aircraft and BWB Aircraft

Tube+Wing BWB
SimpleCabinLayout or DetailedCabinLayout BWBSimpleCabinLayout or BWBDetailedCabinLayout
BWBUpdateDetailedWingDist or BWBComputeDetailedWingDist
FuselagePrelim BWBFuselagePrelim
WingPrelim BWBWingPrelim
_Prelim _Prelim
_Wing _BWBWing
_Tail _Tail
_Fuselage _BWBFuselage
_FuselageRatios _FuselageRatios
Nacelles Nacelles
Canard Canard
WingCharacteristicLength BWBWingCharacteristicLength
OtherCharacteristicLengths OtherCharacteristicLengths
TotalWettedArea TotalWettedArea

As we see in the above table, some geometrical components have no special treatments in the BWB case (e.g. Nacelles and _Tail). So, the new implementation of BWB geometry uses the same components in conventional aircraft.

In the unit tests, we choose two typical cases: BWBSimpleCabinLayout + BWBComputeDetailedWingDist and BWBDetailedCabinLayout + BWBUpdateDetailedWingDist. Both are checked against FLOPS runs and they both match pretty well.

None of the current Aviary model that uses FLOPS based geometry carry out fuselage cabin layout computation. If fuselage dimension variables are missing, they will be computed using GASP based geometry.

Related Issues

  • Resolves #

Backwards incompatibilities

None

New Dependencies

None

xjjiang and others added 30 commits September 6, 2025 15:05
…y created data type DetailedWing which has three values: TO_PROVIDE(1), TO_COMPUTE(-1), NOT_TO_USE(0)
…ry call. Keep the function update_aviary_options() as a place holder for possible future use.
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.

2 participants