-
Notifications
You must be signed in to change notification settings - Fork 111
L3 shooting #935
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
cmbenne3
wants to merge
25
commits into
OpenMDAO:main
Choose a base branch
from
cmbenne3:l3_shooting
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
L3 shooting #935
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
…or presence of indep_states as this is not present for shooting transcription
…phase builder to use that option to set the transcription for the phase
…guesses and reference values to match level1 and level2 examples
| segment_ends=seg_ends, | ||
| ) | ||
| if transcription_type == 'Collocation': | ||
| seg_ends, _ = dm.utils.lgl.lgl(num_segments + 1) |
Member
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Probably a question for Rob, but I wonder if this LGL (clustering points near the ends) is also supported in Picard shooting.
Kenneth-T-Moore
approved these changes
Jan 28, 2026
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
This PR makes the necessary changes to enable the Dymos PicardShooting transcription to be used in addition to the current collocation (Radau) transcription.
A new setting 'transcription' has been added into the phase_info declaration. This has two options:
The make_default_transcription() method of the flight_phase_builder class has been updated to use this setting to set the dymos transcription of each phase. An error message is thrown if the user sets this to something that is not supported (anything other than the above options). If the user omits does not specify a transcription then 'Collocation' is used by default to maintain backwards compatibility.
Adding this setting to the phase_info gives this functionality to level 1 and level 2 users.
To support this change the way the control, state and time initialization values are set has been updates to use the correct Dymos methods, and Dymos handles the differences for shooting under the hood.
The L3 example has been updated to unpack the trajectory setup and expose the interactions with Dymos and OpenMDAO. The L3 example still runs the same aircraft and mission as the L2 and L1 examples.
2 new tests are added to the test_height_energy_mission suite to test that the shooting method works:
Since the phase info polynomial control orders are still set to 1 I think both of these missions will still consist of straight line segments for each phase.
The docs have been sparsely updated in the places where collocation is mentioned. I wasn't sure what to do for this page:

Does this still hold true for shooting?
Backwards incompatibilities
None
New Dependencies
None