You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Version 1.13.0 of dymos adds a few significant features.
Users can now declare a calculation expression using phase.add_calc_expr.
Previously this was done solely in timeseries and constraints.
To generalize the capability, these expressions are now evaluated via an ExecComp that is executed as part of the ODE. This ExecComp is evaluated immediately after the ODE in the model hierarchy.
Any output created with add_calc_expr will be seen as an ODE output by dymos.
We've deprecated set_duration_balance in favor of phase.add_boundary_balance, which allows any parameter-like phase input to be an implicit output subject to some residual at the start or end of the phase. Note that this capability only makes sense in phases where the dynamics are satisfied via a nonlinear solver rather than an optimizer (PicardShooting, ExplicitShooting, or Pseudospectral phases using solve_segments). This capability allows the user to satisfy boundary value problems without an optimizer. Following versions of dymos will use this capability in more examples.
This release also adds the new PicardShooting transcription, which uses Picard iteration to implicitly propagate states. An internal solver (PicardShooting.options['ode_nonlinear_solver'] which is NonlinearBlockGS by default) converges the dynamics in each segment, while an outer solver (PicardShooting.options['ms_nonlinear_solver'] which is NonlinearBlockGS by default) enforces state continuity at segment bounds if multiple segments are used. PicardShooting is a faster alternative to ExplicitShooting.
Backwards Incompatible API Changes & Deprecations
Added phase.add_boundary_balance and deprecated phase.set_duration_balance#1148
Enhancements
Added interpolation of results to arbitrary nodes, removed use of scipy.interpolate.interp1d from phase.interp. #1129
Moved Expressions from being calculated in the timeseries to being calculated along side the ODE. #1147
Added an image definition and a workflow to publish the image #1143
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
-
Release Notes for Dymos 1.13.0
Apr 04, 2025
Version 1.13.0 of dymos adds a few significant features.
Users can now declare a calculation expression using
phase.add_calc_expr
.Previously this was done solely in timeseries and constraints.
To generalize the capability, these expressions are now evaluated via an ExecComp that is executed as part of the ODE. This ExecComp is evaluated immediately after the ODE in the model hierarchy.
Any output created with
add_calc_expr
will be seen as an ODE output by dymos.We've deprecated
set_duration_balance
in favor ofphase.add_boundary_balance
, which allows any parameter-like phase input to be an implicit output subject to some residual at the start or end of the phase. Note that this capability only makes sense in phases where the dynamics are satisfied via a nonlinear solver rather than an optimizer (PicardShooting, ExplicitShooting, or Pseudospectral phases usingsolve_segments
). This capability allows the user to satisfy boundary value problems without an optimizer. Following versions of dymos will use this capability in more examples.This release also adds the new
PicardShooting
transcription, which uses Picard iteration to implicitly propagate states. An internal solver (PicardShooting.options['ode_nonlinear_solver']
which is NonlinearBlockGS by default) converges the dynamics in each segment, while an outer solver (PicardShooting.options['ms_nonlinear_solver']
which is NonlinearBlockGS by default) enforces state continuity at segment bounds if multiple segments are used.PicardShooting
is a faster alternative to ExplicitShooting.Backwards Incompatible API Changes & Deprecations
phase.add_boundary_balance
and deprecatedphase.set_duration_balance
#1148Enhancements
scipy.interpolate.interp1d
fromphase.interp
. #1129phase.add_boundary_balance
and deprecatedphase.set_duration_balance
. This PR also adds the newPicardShooting
transcription. #1148Bug Fixes
Miscellaneous
This discussion was created from the release Dymos 1.13.0.
Beta Was this translation helpful? Give feedback.
All reactions