Skip to content

Fuselage layout enhancement and modification#1205

Open
xjjiang wants to merge 44 commits into
OpenMDAO:mainfrom
xjjiang:fuselage_layout
Open

Fuselage layout enhancement and modification#1205
xjjiang wants to merge 44 commits into
OpenMDAO:mainfrom
xjjiang:fuselage_layout

Conversation

@xjjiang

@xjjiang xjjiang commented Jun 26, 2026

Copy link
Copy Markdown
Contributor

Summary

For FLOPS based geometry, business seats are added to transporter aircraft. For GASP based geometry, business class seats are added to BWB aircraft. In both cases, users can set:

  • different seat widths for first class, business class, and economy class.
  • different seat pitches for first class, business class, and economy class.

For FLOPS based models, there will be differences of fuselage layout if business class seats are included for transporter aircraft because FLOPS does not consider business seats in its layout algorithm. This message is added to the top of output .csv file.

GASP based geometry does not have a detailed layout for transporter aircraft. We do not add this feature in this PR.

Related Issues

Backwards incompatibilities

None

New Dependencies

None

@xjjiang xjjiang marked this pull request as ready for review July 1, 2026 19:00
@xjjiang xjjiang changed the title [Draft] Fuselage layout enhancement and modification Fuselage layout enhancement and modification Jul 1, 2026
@xjjiang xjjiang marked this pull request as draft July 1, 2026 23:13
@xjjiang xjjiang changed the title Fuselage layout enhancement and modification [Draft] Fuselage layout enhancement and modification Jul 1, 2026
@xjjiang xjjiang changed the title [Draft] Fuselage layout enhancement and modification Fuselage layout enhancement and modification Jul 7, 2026
@xjjiang xjjiang marked this pull request as ready for review July 7, 2026 17:25
Comment thread aviary/docs/user_guide_unreviewed/subsystems/blended_wing_body_GASP.ipynb Outdated
Comment thread aviary/utils/preprocessors.py
Comment thread aviary/utils/preprocessors.py
else:
if design_type == AircraftTypes.BLENDED_WING_BODY:
if verbosity >= Verbosity.BRIEF:
raise UserWarning('Aircraft.Fuselage.SEAT_WIDTH_ECONOMY is not set.')

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does it default? If so we should let the user know what value it defaulted to.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

GASP does not have a default value. This will throw an error message. Maybe, we can take the FLOPS default (20 inches)? @cmbenne3

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this is either:

  1. a required input (in which case we should error if it is not set, regardless of verbosity).
  2. an input which is defaulted if not set (In this case we should tell the user that we are setting it for them. I would use the FLOPS default if GASP doesn't have one.)

I think I prefer option 2.

Comment thread aviary/subsystems/geometry/flops_based/fuselage.py Outdated
Comment thread aviary/subsystems/geometry/gasp_based/test/test_fuselage.py
Comment thread aviary/subsystems/geometry/gasp_based/fuselage.py
Comment thread aviary/subsystems/geometry/gasp_based/fuselage.py Outdated
Comment thread aviary/subsystems/geometry/flops_based/fuselage.py

@jkirk5 jkirk5 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Some additional comments, full review WIP

Comment on lines +110 to +112
if design_type == AircraftTypes.BLENDED_WING_BODY:
if verbosity >= Verbosity.BRIEF:
raise UserWarning('Aircraft.Fuselage.SEAT_WIDTH_ECONOMY is not set.')

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As far as I can tell there isn't a reason to raise an error if this variable is missing, I don't think we need these lines

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

GASP does not have a default value. It we read from a GASP input file, we may set Aircraft.Fuselage.SEAT_WIDTH_ECONOMY and will be set to 0.0. Are you sure we don't need this line?

Comment thread aviary/utils/preprocessors.py Outdated
Comment thread aviary/utils/preprocessors.py Outdated
Comment thread aviary/subsystems/geometry/gasp_based/fuselage.py Outdated
Comment thread aviary/subsystems/test/test_flops_based_premission.py Outdated
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.

Add Business Class seat information to DetailedCabinLayout component

3 participants