Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

Simplify how mission range is specified

Open
#1,347 1 comment 0 reactions 4 assignees View on GitHub

Maintainers usually reply within 3 days

@ehariton is already working on this.

Since Oct 27, 2026.

Assessment

This issue has not been assessed yet.

Description

request
Desired capability or behavior.
  1. Decouple phase info range and Aircraft.Design.RANGE
  • These should not interact so we should update the variable descriptions in metadata (maybe a reference range?). Phase info controls the actual mission flown, and Aircraft.Design.Range is a mass equation input that must be specified separately.
  1. Simplify how we specify 'target_range' in phase info.
  • We believe that the current interface already is capable of doing whatever kind of mission we can think of
  • Some parameters like distance can be constrained by just adding 'distance_final'.
  • Other parameters might need to be added to the 'constraints' key added to the phase.
    e.g.
'constraints': {
    'normal_force': {
        'equals': 0.0,
        'loc': 'final',
        'units': 'lbf',
        'type': 'boundary',
        'ref': 1.0e5,
    },
}

There might be valid reasons to have a sizing mission where range is not constrained (e.g. might want to constrain time or altitude or speed or something instead), so we don't want to enforce a requirement that there is a range constrain for SIZING missions.

target_range in phase_info post_mission is not necessary (as could get added to the final phase as described in 2 above), but we think it might be helpful for users. We should add a translation section that checks if target_range is set, and then adds the distance_final constraint to the final phase. If a user sets both then we should throw a warning.
If we handle target range in this way we can remove the range constraint component.

Suggested implementation.

No response

Dominant language
Python
Stars
294
Forks
144
Avg merge
11d 18h
Merged PRs (30d)
8

Getting set up

  • Ships a Dockerfile or Docker Compose file
  • Has a pull request template
  • No contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from OpenMDAO/Aviary

All issues in OpenMDAO/Aviary

Similar issues

More Python issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.