OpenMDAO / OpenMDAO/OpenMDAO

n2 fails for complicated model if called before final_setup.

Open
#3,743 0 comments 0 reactions 1 assignee View on GitHub

@Kenneth-T-Moore is already working on this.

Since Apr 13, 2026.

bug
Dominant language
Python
Stars
782
Forks
314
Avg merge
4d 21h
Merged PRs (30d)
4

Description

Description

Calling om.n2(prob) fails with an unusual error if called before final_setup on a complicated model, but is fine after final_setup.

Example

'pre_mission.core_subsystems' <class CorePreMission>: subsystem(s) ['aerodynamics', 'geometry', 'mass', 'performance'] found in subsystem order but don't exist. File "/Users/ktmoore1/Work/OpenMDAO/OpenMDAO/openmdao/core/group.py", line 2475, in set_order raise ValueError('\n'.join(msg)) File "/Users/ktmoore1/Work/OpenMDAO/OpenMDAO/openmdao/core/group.py", line 1374, in _set_auto_order self.set_order(new_order) ~~~~~~~~~~~~~~^^^^^^^^^^^ File "/Users/ktmoore1/Work/OpenMDAO/OpenMDAO/openmdao/core/group.py", line 1343, in _check_order self._set_auto_order(strongcomps, orders) ~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^ File "/Users/ktmoore1/Work/OpenMDAO/OpenMDAO/openmdao/core/group.py", line 1347, in _check_order s._check_order(reorder, recurse, out_of_order) ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/Users/ktmoore1/Work/OpenMDAO/OpenMDAO/openmdao/core/group.py", line 1347, in _check_order s._check_order(reorder, recurse, out_of_order) ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/Users/ktmoore1/Work/OpenMDAO/OpenMDAO/openmdao/core/group.py", line 1075, in _setup_part2 self._check_order() ~~~~~~~~~~~~~~~~~^^ File "/Users/ktmoore1/Work/OpenMDAO/OpenMDAO/openmdao/core/problem.py", line 1285, in set_setup_status self.model._setup_part2() ~~~~~~~~~~~~~~~~~~~~~~~^^ File "/Users/ktmoore1/Work/OpenMDAO/OpenMDAO/openmdao/visualization/n2_viewer/n2_viewer.py", line 339, in _get_viewer_data data_source.set_setup_status(_SetupStatus.POST_SETUP2) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/Users/ktmoore1/Work/OpenMDAO/OpenMDAO/openmdao/visualization/n2_viewer/n2_viewer.py", line 593, in n2 model_data = _get_viewer_data(data_source, values=values, case_id=case_id) File "/Users/ktmoore1/Work/OpenMDAO/plugins/Aviary/aviary/validation_cases/benchmark_tests/test_bench_electrified_large_turboprop_freighter.py", line 114, in build_and_run_problem om.n2(prob, show_browser=False) ~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/Users/ktmoore1/Work/OpenMDAO/plugins/Aviary/aviary/validation_cases/benchmark_tests/test_bench_electrified_large_turboprop_freighter.py", line 139, in <module> test.build_and_run_problem('2DOF') ~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^ ValueError: 'pre_mission.core_subsystems' <class CorePreMission>: subsystem(s) ['aerodynamics', 'geometry', 'mass', 'performance'] found in subsystem order but don't exist.

OpenMDAO Version

3.43.1-dev

Relevant environment information

No response

Contributor guide

Open the 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.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.