Dymos

Latest version: v1.12.0

Safety actively analyzes 714815 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 3 of 5

1.3.0

November 19, 2021

This is version 1.3.0 of Dymos.

This release of Dymos introduces an ExplicitShooting transcription that provides an explicit Runge-Kutta integration of the ODE across a phase. This transcription is currently limited to fixed-step RK methods (RK4 being the default). Timeseries outputs are provided at the start/end of each segment in the phase. This is similar to the solve-segments capability in the collocation transcriptions, but fixed-step will provide _an_ answer (albeit inaccurate) across the integration rather than failing to converge if the dynamics become highly nonlinear.

Enhancements

* Added path constraints to the explicit shooting transcription. [659](https://github.com/OpenMDAO/dymos/pull/659)
* Added control continuity enforcement to ExplicitShooting transcription, and refactored continuity components in general. [660](https://github.com/OpenMDAO/dymos/pull/660)
* Added indication of fixed variables to linkage report. [662](https://github.com/OpenMDAO/dymos/pull/662)
* Replaced the tensordot in the compute method of timeseries_output_comp with a regular dot product to remove a performance bottleneck. [665](https://github.com/OpenMDAO/dymos/pull/665)
* Added constraint report to summarize boundary and path constraints for each phase of a trajectory. [666](https://github.com/OpenMDAO/dymos/pull/666)
* Added ExplicitShooting to transcriptions [669](https://github.com/OpenMDAO/dymos/pull/669)
* Significantly improved speed of ExplicitShooting [670](https://github.com/OpenMDAO/dymos/pull/670)
* Added Radau, BDF and LSODA as options for scipy's integration method when using simulate [675](https://github.com/OpenMDAO/dymos/pull/675)

Bug Fixes

* Removed solver for connected linkages. Its only needed for solve_segments. [668](https://github.com/OpenMDAO/dymos/pull/668)
* Changed default value of units in Trajectory.add_parameter to _unspecified. [673](https://github.com/OpenMDAO/dymos/pull/673)
* Added fix to allow parameters with static_targets=True to work with ExplicitShooting [679](https://github.com/OpenMDAO/dymos/pull/679)
* Fixed formatting in the constraint report [680](https://github.com/OpenMDAO/dymos/pull/680)

Miscellaneous

* None

1.2.0

October 12, 2021

This is version 1.2.0 of Dymos.

The release provides compatibility with OpenMDAO >=3.13.0 and adds
some performance improvements.

While we are beginning to bring a true explicit shooting capability
to Dymos, those capabilities are not fully filled out as of this release.

Backwards Incompatible API Changes & Deprecations

* Dymos 1.2.0 requires OpenMDAO >= 3.13.0, due to changes in the way indices are specified in OpenMDAO.

Enhancements

* Update run_problem.py to return success state [634](https://github.com/OpenMDAO/dymos/pull/634)
* Added an experimental explicit shooting transcription to dymos [637](https://github.com/OpenMDAO/dymos/pull/637)
* Added control rates and their derivatives when using ExplicitShooting. [645](https://github.com/OpenMDAO/dymos/pull/645)
* Rewrite of the USatm1976Comp to use pre-computed akima coefficients for interpolation. It is now complex-safe and considerably faster. [652](https://github.com/OpenMDAO/dymos/pull/652)
* Allow addition of ODE outputs to ExplicitShooting timeseries [654](https://github.com/OpenMDAO/dymos/pull/654)

Bug Fixes

* Fixed an issue where simulation was not working when running under MPI in run_problem [628](https://github.com/OpenMDAO/dymos/pull/628)
* Added a better error message when simulate fails due to the inability to find a good step size. [630](https://github.com/OpenMDAO/dymos/pull/630)
* Fixes a bug where t_initial_targets and t_duration_targets would not work if input_initial or input_duration were True, respectively. [656](https://github.com/OpenMDAO/dymos/pull/656)
* Fix to eliminate warning messages related to the recent indexing update to OpenMDAO. [Requires OpenMDAO >= 3.12.0] [636](https://github.com/OpenMDAO/dymos/pull/636)
* Removed exceptions introduced in OpenMDAO PR [2279](https://github.com/OpenMDAO/OpenMDAO/pull/2279). [#653](https://github.com/OpenMDAO/dymos/pull/653)

Miscellaneous

* Fixed issue in executable notebooks. [631](https://github.com/OpenMDAO/dymos/pull/631)
* Updated CI matrix to test against latest release and development versions of OpenMDAO. [638](https://github.com/OpenMDAO/dymos/pull/638)

1.1.0

July 22, 2021

This is version 1.1.0 of Dymos.
The release provides compatibility with OpenMDAO >=3.10.0, updates the
documentation to JupyterBook, and adds a few new features.

Backwards Incompatible API Changes & Deprecations

* Removed vectorize_derivs option from phase objectives due to OpenMDAO update. [605](https://github.com/OpenMDAO/dymos/pull/605)
* The dynamic argument on add_parameter has been removed. A new argument static_target has been added which has opposite meaning of dynamic. [591](https://github.com/OpenMDAO/dymos/pull/591)
* Updated phase.interpolate to automatically detect variable type, renamed to phase.interp. Old version is deprecated. [592](https://github.com/OpenMDAO/dymos/pull/592)

Enhancements

* Documentation updated to JupyterBook. [611](https://github.com/OpenMDAO/dymos/pull/611) [#613](https://github.com/OpenMDAO/dymos/pull/613) [#614](https://github.com/OpenMDAO/dymos/pull/614) [#615](https://github.com/OpenMDAO/dymos/pull/615) [#616](https://github.com/OpenMDAO/dymos/pull/616) [#618](https://github.com/OpenMDAO/dymos/pull/618)
* simulate_options are now stored within each Phase. [610](https://github.com/OpenMDAO/dymos/pull/610)
* Removed vectorize_derivs option from phase objectives due to OpenMDAO update. [605](https://github.com/OpenMDAO/dymos/pull/605)
* Updated dymos to handle the new OpenMDAO distributed I/O approach [597](https://github.com/OpenMDAO/dymos/pull/597)
* The dynamic argument on add_parameter has been removed. A new argument static_target has been added which has opposite meaning of dynamic. [591](https://github.com/OpenMDAO/dymos/pull/591)
* Updated phase.interpolate to automatically detect variable type, renamed to phase.interp. Old version is deprecated. [592](https://github.com/OpenMDAO/dymos/pull/592)

Bug Fixes

* Fixed an issue with units in linkage constraints. [620](https://github.com/OpenMDAO/dymos/pull/620)
* Fix for key error when performing order reduction under hp adaptive refinement. [590](https://github.com/OpenMDAO/dymos/pull/590)
* Parameters in the ODE system now respect both dynamic=True and False. [581](https://github.com/OpenMDAO/dymos/pull/581)

Miscellaneous

* Added missing example Brachistochrone with upstream initial and duration states. [623](https://github.com/OpenMDAO/dymos/pull/623)
* Added require_pyoptsparse to all tests that use pyOptSparseDriver [624](https://github.com/OpenMDAO/dymos/pull/624)
* Added a couple of fixes to examples docs [622](https://github.com/OpenMDAO/dymos/pull/622)
* Fixed some typos in 'Getting Started' section of the docs [621](https://github.com/OpenMDAO/dymos/pull/621)
* Install coveralls from pypi in github workflow [601](https://github.com/OpenMDAO/dymos/pull/601)
* Change base_dir arg to coveralls [600](https://github.com/OpenMDAO/dymos/pull/600)
* Fixed minor typos in docs. [599](https://github.com/OpenMDAO/dymos/pull/599)
* Removed require_pyoptsparse and moved it to OpenMDAO. [595](https://github.com/OpenMDAO/dymos/pull/595)
* Added publishing mkdocs to gh-pages. [594](https://github.com/OpenMDAO/dymos/pull/594)
* Added github actions workflow for CI. [589](https://github.com/OpenMDAO/dymos/pull/589)
* Readme updated to point to JOSS paper. [578](https://github.com/OpenMDAO/dymos/pull/578)
* Updated JOSS bibliography. [573](https://github.com/OpenMDAO/dymos/pull/573) [#574](https://github.com/OpenMDAO/dymos/pull/574) [#576](https://github.com/OpenMDAO/dymos/pull/576) [#577](https://github.com/OpenMDAO/dymos/pull/577)
* Fixed some references in JOSS paper. [572](https://github.com/OpenMDAO/dymos/pull/572)
* Minor grammar and consistency edits for JOSS paper. [571](https://github.com/OpenMDAO/dymos/pull/571)

1.0.0

March 25, 2021

This is version 1.0.0 of Dymos.
This release primarily removes some deprecated experimental features, along with implementing a few bug fixes.

Backwards Incompatible API Changes & Deprecations

* The RungeKutta Transcription is removed. [550](https://github.com/OpenMDAO/dymos/pull/550)
* Two-character location specifiers ('++', '--', '+-', '-+') are removed in favor of 'initial' and 'final' [556](https://github.com/OpenMDAO/dymos/pull/556)
* User must now specify `solve_segments='forward'` or `solve_segments='backward'` when using solve_segments capability (True is no longer valid). [557](https://github.com/OpenMDAO/dymos/pull/557)
* `add_input_parameter` and `add_design_parameter` dropped in favor of `add_parameter`. [558](https://github.com/OpenMDAO/dymos/pull/558) [#561](https://github.com/OpenMDAO/dymos/pull/561)
* Removed the deprecated command line interface due to it being a somewhat hackish abuse of OpenMDAO's hooks. [563](https://github.com/OpenMDAO/dymos/pull/563)
* Removed the deprecated 'disc' node subset in favor of the more correct 'state_disc' [565](https://github.com/OpenMDAO/dymos/pull/565)
* Removed the deprecated 'custom_targets' option for parameters.' [565](https://github.com/OpenMDAO/dymos/pull/565)

Enhancements

* User will now be warned when multiple timeseries outputs were attempted with the same name. [567](https://github.com/OpenMDAO/dymos/pull/567)

Bug Fixes

* The `ode_class` option of phase is now marked non-recordable. [555](https://github.com/OpenMDAO/dymos/pull/555)
* Fixed doc building due to a change in OpenMDAO. [564](https://github.com/OpenMDAO/dymos/pull/564)

Miscellaneous

* Modified examples to use the preferred `fix_initial=True` for time and states instead of "pinched bounds", e.g. `initial_bounds=(0, 0)`. [560](https://github.com/OpenMDAO/dymos/pull/560)

0.18.1

February 18, 2021

This release of Dymos adds several examples demonstrating various capabilities of the code.
Per user request, the ODE of a system can now be provided via a callable function that
takes `num_nodes` and any other potential initialization keywod arguments.
This allows OpenMDAO's ExecComp to be used as an ODE if wrapped in a lambda, for instance.

Some bugs were fixed as part of introducing these examples. For instance, default values for
states and times were being ignored - this is now fixed. In addition, Trajectory parameters
are now saved to the simulation database file.

This is expected to be the final release of Dymos before v1.0.0, when several existing
deprecated features will be removed from the code.

Backwards Incompatible API Changes & Deprecations

None

Enhancements

* Added the racecar example from pwmdebuck, demonstrating cycling constraints and integration about arclength instead of time. [535](https://github.com/OpenMDAO/dymos/pull/535)
* Simplified the SSTO example to use a single ODE component with complex-step. [534](https://github.com/OpenMDAO/dymos/pull/534)
* Added a balanced field length example. [533](https://github.com/OpenMDAO/dymos/pull/533)
* Added the ability to use a callable that returns a System as an ODE. [528](https://github.com/OpenMDAO/dymos/pull/528)

Bug Fixes

* Removed duplication of inputs to timeseries when multiple outputs may use the same source data. [543](https://github.com/OpenMDAO/dymos/pull/543)
* Fixed a bug where timeseries outputs of non-dynamic ODE outputs would cause an exception. [521](https://github.com/OpenMDAO/dymos/pull/521)

Miscellaneous

* Reworked the cannonball example to make it more simple [545](https://github.com/OpenMDAO/dymos/pull/545)
* Placed some more tests under the use_tempdirs decorator to clean up output. [530](https://github.com/OpenMDAO/dymos/pull/530)
* Added a test that checks all docstrings vs the NumpyDoc standard. [526](https://github.com/OpenMDAO/dymos/pull/526)
* Clean up implementation of wildcard units when adding multiple timeseries at once. [523](https://github.com/OpenMDAO/dymos/pull/523)

0.18.0

January 21, 2021

This release of Dymos brings a few improvements and bug fixes.

We've implemented introspection for boundary and path constraints such that units and shapes of the constrained quantities can be determined during the setup process and no longer are required to be specified.
The use of solve_segments to have a solver converge the dynamics and thus provide a shooting method at the optimizer has been improved. Option solve_segments can now take on values 'forward' or 'backward' to provide forward or backward shooting.
Linkage constraints will now result in an error if the quantity on each side of the linkage is governed by the optimizer (is a design variable) but is fixed in value (not allowed to be varied).

Backwards Incompatible API Changes & Deprecations

* The command line interface is deprecated due to inconsistent behavior. [505](https://github.com/OpenMDAO/dymos/pull/505)

Enhancements

* Changed CoerceDesvar to handle vector values for ref/ref0/scaler/adder. Carried over changes to for defect ref/defect scaler. [464](https://github.com/OpenMDAO/dymos/pull/464)
* Changed solve_segments to allow it to be used when neither fix_initial nor fix_final are True. [490](https://github.com/OpenMDAO/dymos/pull/490)
* Added detection of unsatisfiable linkage constraints (where quantities on both sides cannot be changed by the optimizer). [502](https://github.com/OpenMDAO/dymos/pull/502)
* Added introspection for boundary and path constraints. [506](https://github.com/OpenMDAO/dymos/pull/506)

Bug Fixes

* Fixed a bug with using grid refinement if one or more of the states are vector-valued. [492](https://github.com/OpenMDAO/dymos/pull/492)
* Fixed issue where show_plots argument to run_problem is permanently changing matplotlib backend. [497](https://github.com/OpenMDAO/dymos/pull/497)
* Fixed a bug where trajectory.simulate() would crash if trajectory were not named the common 'traj' name. [500](https://github.com/OpenMDAO/dymos/pull/500)
* Fixed a bug that prevented restart from working with multiphase trajectories, and now include static parameters in the solution file. [510](https://github.com/OpenMDAO/dymos/pull/510)
* Fixed a bug associated with polynomial control rate sources, and added coverage of more cases. [513](https://github.com/OpenMDAO/dymos/pull/513)
* Fixed exception when simulating a trajectory with a parameter for which None was declared as the target for one of its phases. [515](https://github.com/OpenMDAO/dymos/pull/515)

Miscellaneous

None

Page 3 of 5

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.