diff --git a/.bumpversion.cfg b/.bumpversion.cfg index 05a4fd0d5..e0fe97ef1 100644 --- a/.bumpversion.cfg +++ b/.bumpversion.cfg @@ -1,5 +1,5 @@ [bumpversion] -current_version = 1.8.1-dev +current_version = 1.9.0 commit = True tag = False parse = (?P\d+)\.(?P\d+)\.(?P\d+)(\-(?P[a-z]+))? diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index 1b5d75e35..362ece17d 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -24,7 +24,7 @@ body: attributes: label: Dymos Version description: What version of Dymos is being used. - placeholder: "1.8.1-dev" + placeholder: "1.9.0" validations: required: true - type: textarea diff --git a/dymos/__init__.py b/dymos/__init__.py index eb122b4c0..ad4161c61 100644 --- a/dymos/__init__.py +++ b/dymos/__init__.py @@ -1,4 +1,4 @@ -__version__ = '1.8.1-dev' +__version__ = '1.9.0' from .phase import Phase, AnalyticPhase from .transcriptions import GaussLobatto, Radau, ExplicitShooting, Analytic diff --git a/release_notes.md b/release_notes.md index 4de045443..eb7cbb1c2 100644 --- a/release_notes.md +++ b/release_notes.md @@ -1,3 +1,70 @@ +******************************* +# Release Notes for Dymos 1.9.0 + +September 07, 2023 + +Dymos 1.9.0 changes the default timeseries behavior so that state rates, +control rates, and t_phase are not included by default. These values tended +to clutter the timeseries plots on more complex problems. + +A new `add_duration_balance` method is added to phases that allows the final time +of a phase to be found with a solver without the need for an optimizer. This is useful +for explicit shooting phases which are effectively just simulating out the dynamics +until some target condition is achieved. An example of this behavior is available [in the docs](https://openmdao.github.io/dymos/examples/cannonball_implicit_duration/cannonball_implicit_duration.html?highlight=duration). + +Trajectory parameters are improved. Parameters can now have a mix of static and dynamic targets, which was not possible before. +Also, trajectories will now use variable data obtained by introspection in the phases for +setting properties of trajectory-level parameters. + +The behavior of some scipy.sparse routines was changed in 1.11 and caused incorrect derivatives. +This has been addressed. + +Dymos had previously been calling `allgather` excessively under MPI which could +cause performance issues during setup. + +Finally, Trajectory.simulate() should now work correctly under MPI so that results can +be checked with explicit integration when working under MPI. + +## Backwards Incompatible API Changes & Deprecations +- Remove state rates, control rates, and t_phase from the timeseries by default, and remove type prefix. [#935](https://github.com/OpenMDAO/dymos/pull/935) + +## Enhancements +- Remove state rates, control rates, and t_phase from the timeseries by default, and remove type prefix. [#935](https://github.com/OpenMDAO/dymos/pull/935) +- Implicit duration [#939](https://github.com/OpenMDAO/dymos/pull/939) +- Updated dymos to utilize new OpenMDAO load_case capability. [#954](https://github.com/OpenMDAO/dymos/pull/954) +- Updated parameter introspection and traj parameters [#964](https://github.com/OpenMDAO/dymos/pull/964) +- Allow parameter shape to be given as `None`, rather than just `_unspecified` [#970](https://github.com/OpenMDAO/dymos/pull/970) + +## Bug Fixes +- Fixed an error message that gave outdated instructions solve segments [#930](https://github.com/OpenMDAO/dymos/pull/930) +- Fixed a Trajectory.simulate method specification bug [#931](https://github.com/OpenMDAO/dymos/pull/931) +- Fixed issue where optimal trajectory parameters would also attempt to make corresponding phase parameter a design variable. [#938](https://github.com/OpenMDAO/dymos/pull/938) +- Fixed issue where "connected" could not be used when linking all variables of a phase [#942](https://github.com/OpenMDAO/dymos/pull/942) +- Fixed issues with scipy sparse storage in scipy 1.11 [#943](https://github.com/OpenMDAO/dymos/pull/943) +- Fixed an issue where grid refinement tests were still expecting some things to be in the timeseries. [#946](https://github.com/OpenMDAO/dymos/pull/946) +- Fixed openmdao warning messages. [#950](https://github.com/OpenMDAO/dymos/pull/950) +- Fixed timeseries plots under MPI so that all phases show up. [#959](https://github.com/OpenMDAO/dymos/pull/959) +- Fixed an MPI slowdown introduced by parameter introspection at the Trajectory level. [#977](https://github.com/OpenMDAO/dymos/pull/977) +- Fixed some issues that were causing simulation to fail under MPI. [#978](https://github.com/OpenMDAO/dymos/pull/978) +- Fixed an issue where dymos calling excessive allgathers during setup. [#980](https://github.com/OpenMDAO/dymos/pull/980) +- Fixed an issue where a DirectSolver was automatically added to a phase if any state has input_initial=True. [#982](https://github.com/OpenMDAO/dymos/pull/982) + +## Miscellaneous +- Changed all uses of the deprecated 'value' keyword to 'val' [#926](https://github.com/OpenMDAO/dymos/pull/926) +- Bump to next dev cycle version [#927](https://github.com/OpenMDAO/dymos/pull/927) +- Updated the GitHub workflow to test with '[all]' extra dependencies [#929](https://github.com/OpenMDAO/dymos/pull/929) +- Fixed out-of-order systems in some tests [#941](https://github.com/OpenMDAO/dymos/pull/941) +- Refactored time_extents away in favor of housing extents in param_comp [#952](https://github.com/OpenMDAO/dymos/pull/952) +- Set defect_scaler values to 1.0 in finite_burn_orbit_raise problem [#953](https://github.com/OpenMDAO/dymos/pull/953) +- Fixed a couple PEP8 failures [#961](https://github.com/OpenMDAO/dymos/pull/961) +- Added various phase options dictionaries to the API documentation. [#956](https://github.com/OpenMDAO/dymos/pull/956) +- Updated GitHub workflow to upload documentation to web site [#965](https://github.com/OpenMDAO/dymos/pull/965) +- Minor doc fix [#967](https://github.com/OpenMDAO/dymos/pull/967) +- Slight changes to scaling in the water rocket example. [#969](https://github.com/OpenMDAO/dymos/pull/969) +- Updated baseline test to use Numpy version 1.22.4 [#975](https://github.com/OpenMDAO/dymos/pull/975) + + + ******************************* # Release Notes for Dymos 1.8.0 diff --git a/setup.py b/setup.py index cfbc6a7d7..52c56bc30 100644 --- a/setup.py +++ b/setup.py @@ -41,7 +41,7 @@ setup(name='dymos', - version='1.8.1-dev', + version='1.9.0', description='Open-Source Optimization of Dynamic Multidisciplinary Systems', long_description=''' Dymos is a framework for the simulation and optimization of dynamical systems within the OpenMDAO Multidisciplinary Analysis and Optimization environment.