{"id":24166,"library":"openmdao","title":"OpenMDAO","description":"OpenMDAO is an open-source high-performance computing framework for multidisciplinary analysis and optimization. It enables efficient decomposition of coupled systems into components, automatic differentiation, and parallel computing. Current version 3.43.0, requires Python >=3.10. Release cadence is approximately monthly.","status":"active","version":"3.43.0","language":"python","source_language":"en","source_url":"https://github.com/OpenMDAO/OpenMDAO","tags":["multidisciplinary-design-optimization","MDAO","optimization","simulation"],"install":[{"cmd":"pip install openmdao","lang":"bash","label":"stable"},{"cmd":"pip install openmdao[all]","lang":"bash","label":"with all optional dependencies"}],"dependencies":[{"reason":"core dependency for array operations","package":"numpy","optional":false},{"reason":"used for solvers and optimization","package":"scipy","optional":true},{"reason":"for built-in plotting utilities","package":"matplotlib","optional":true}],"imports":[{"note":"Old top-level import from openmdao.api still works but is deprecated; prefer explicit core import.","wrong":"from openmdao.api import Problem","symbol":"Problem","correct":"from openmdao.core.problem import Problem"},{"note":"Using openmdao.api is deprecated; use explicit import from submodule.","wrong":"from openmdao.api import IndepVarComp","symbol":"IndepVarComp","correct":"from openmdao.core.indepvarcomp import IndepVarComp"},{"note":"Same deprecation as above.","wrong":"from openmdao.api import ExplicitComponent","symbol":"ExplicitComponent","correct":"from openmdao.core.explicitcomponent import ExplicitComponent"}],"quickstart":{"code":"import openmdao.api as om\n\nprob = om.Problem()\nprob.model.add_subsystem('indep', om.IndepVarComp('x', 1.0), promotes=['x'])\nprob.model.add_subsystem('comp', om.ExecComp('y=x+1'), promotes=['*'])\nprob.setup()\nprob.run_model()\nprint(prob.get_val('y'))","lang":"python","description":"Minimal example: create a Problem, add an IndepVarComp and an ExecComp, run the model, and print output."},"warnings":[{"fix":"Ensure Python interpreter is 3.10 or higher; update deprecated API calls.","message":"OpenMDAO 3.x removed support for Python 2.7 and 3.6. Upgrade code to Python >=3.10.","severity":"breaking","affected_versions":">=3.0.0"},{"fix":"Replace 'from openmdao.api import X' with the explicit import path (e.g., 'from openmdao.core.problem import Problem').","message":"The 'openmdao.api' module is deprecated as of OpenMDAO 3.31.0. Direct imports from submodules are now preferred.","severity":"breaking","affected_versions":">=3.31.0"},{"fix":"Use 'from openmdao.core.explicitcomponent import ExplicitComponent' or 'from openmdao.core.implicitcomponent import ImplicitComponent' instead.","message":"The 'openmdao.core.component.Component' base class has been renamed to 'ExplicitComponent' and 'ImplicitComponent'. Using the old name issues a deprecation warning and will be removed.","severity":"deprecated","affected_versions":">=3.0.0"},{"fix":"Either restructure before setup() or use a new Problem instance.","message":"Do not modify a model's structure (add/remove subsystems) after calling setup() or run_model() unless you call final_setup() again. Doing so can cause crashes or undefined behavior.","severity":"gotcha","affected_versions":"all"},{"fix":"Set solver options on the system's solver object before prob.setup().","message":"Solver tolerances and options must be set before calling setup() if you want them to take effect. Setting them after setup may be silently ignored.","severity":"gotcha","affected_versions":"all"}],"env_vars":null,"last_verified":"2026-05-01T00:00:00.000Z","next_check":"2026-07-30T00:00:00.000Z","problems":[{"fix":"Use 'from openmdao.core.indepvarcomp import IndepVarComp' or keep openmdao.api but this will break in future versions.","cause":"openmdao.api is deprecated; import path changed.","error":"ImportError: cannot import name 'IndepVarComp' from 'openmdao.api'"},{"fix":"Add 'from openmdao.components.exec_comp import ExecComp' or use 'om.ExecComp' if using openmdao.api.","cause":"Forgot to import ExecComp; it's not a built-in.","error":"NameError: name 'ExecComp' is not defined"},{"fix":"Make all model changes before calling setup(). If needed, create a new Problem instance.","cause":"Attempting to modify model after setup() call.","error":"ValueError: The model is already set up. Cannot change configuration after setup."}],"ecosystem":"pypi","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}