Skip to content

Phase info revamp: part 1: Height Energy#777

Merged
jkirk5 merged 74 commits intoOpenMDAO:mainfrom
Kenneth-T-Moore:phase_info_revamp3
Jun 12, 2025
Merged

Phase info revamp: part 1: Height Energy#777
jkirk5 merged 74 commits intoOpenMDAO:mainfrom
Kenneth-T-Moore:phase_info_revamp3

Conversation

@Kenneth-T-Moore
Copy link
Copy Markdown
Member

Summary

This is a major overhaul of the phase_info dictionaries with the following goals:
1. Provide a set of keys that is more consistent across the different phase types.
2. Remove redundancies, particularly cases where we can replace 2 keys with 1.
3. Rename keys to be more understandable to the user.
4. Add missing options such as certain missing scaling parameters.

Before Merging:
1. Evaluate the new phase_info keys and make changes.
2. Finish modifying the documentation, and create a transition document.
3. Add a few tests that use some of the new keys.

Summary of Changes:
1. Created AviaryOptionsDictionary methods to add all options associated with a state, control, or time. Most phase builders now use these, but some of the GASP extra states/controls don't use them yet .
- This provides a uniform interface for states or controls.
- Missing keys were added, such as bounds and ref/ref0 for states. Formerly, these were hardcoded values.
2. Created PhaseBuilderBase methods to add a state or control to a phase. FlightPhaseBuilder now uses these.
3. Many options renamed to make them more uniform and consistent. This includes some options in 2DOF, because a global search and place was convenient. (e.g, "initial_mach" -> "mach_initial")
4. Some methods were renamed to make them clearer.
5. Some logic was simplified in the configurators and in methods for level 2.
6. The phase_info graphical tool was modified to output the phase_info in a pretty format.
7. Some checks for an old version of dymos were removed, since we are reliant on a more recent version.

Follow-on work:
1. Apply changes to 2DOF
2. Modify MBSAE to use new phase-info
3. Get detailed takeoff working better.

Related Issues

  • Resolves #

Backwards incompatibilities

All user phase-info files will need to be modified.

New Dependencies

None

Comment thread aviary/docs/examples/additional_flight_phases.ipynb
Comment thread aviary/docs/examples/level_2_detailed_takeoff_and_landing.ipynb
@@ -44,7 +44,7 @@
"expected_values = {\n",
" 'reserve': True,\n",
" 'target_distance': (200, 'km'),\n",
Copy link
Copy Markdown
Contributor

@ehariton ehariton May 28, 2025

Choose a reason for hiding this comment

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

considering we have distance_solve_segments wouldn't it make sense to update target_distance to distance_target ?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

This is actually an oddball one because the state is called distance, but target_distance is really more like target_delta_distance. If we wanted to generalize this to other states like mass, mass_target wouldn't imply end_mass - start_mass. I think we could come up with better name though.

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 thought distance was always relative to the start of the phase your in vs. range which is relative to the absolute start of the mission.

Comment thread aviary/docs/examples/reserve_missions.ipynb
Comment thread aviary/docs/examples/simple_mission_example.ipynb
Comment thread aviary/docs/getting_started/onboarding_level3.ipynb
Comment thread aviary/docs/user_guide/examples_of_the_same_mission_at_different_UI_levels.ipynb Outdated
Comment thread aviary/interface/default_phase_info/height_energy.py
Comment thread aviary/mission/two_dof_problem_configurator.py Outdated
Comment thread aviary/utils/aviary_options_dict.py Outdated
Comment thread aviary/utils/test/test_aviary_options_dict.py
Copy link
Copy Markdown
Contributor

@ehariton ehariton left a comment

Choose a reason for hiding this comment

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

most serious issues I found were the checks and definitions for the new test_aviary_options_dict.py

@jkirk5 jkirk5 added this pull request to the merge queue Jun 12, 2025
@github-merge-queue github-merge-queue Bot removed this pull request from the merge queue due to no response for status checks Jun 12, 2025
@jkirk5 jkirk5 merged commit d7f3661 into OpenMDAO:main Jun 12, 2025
6 checks passed
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.

3 participants