Skip to content

Commit

Permalink
Added release notes and version bump for 1.7.0 (#901)
Browse files Browse the repository at this point in the history
* Added release notes for 1.7.0
* Bump version: 1.6.2-dev → 1.7.0-dev
* Bump version: 1.7.0-dev → 1.7.0
  • Loading branch information
robfalck authored Feb 9, 2023
1 parent 8f9f396 commit 203c098
Show file tree
Hide file tree
Showing 6 changed files with 50 additions and 4 deletions.
2 changes: 1 addition & 1 deletion .bumpversion.cfg
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
[bumpversion]
current_version = 1.6.2-dev
current_version = 1.7.0
commit = True
tag = False
parse = (?P<major>\d+)\.(?P<minor>\d+)\.(?P<patch>\d+)(\-(?P<release>[a-z]+))?
Expand Down
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/bug_report.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ body:
attributes:
label: Dymos Version
description: What version of Dymos is being used.
placeholder: "1.6.2-dev"
placeholder: "1.7.0"
validations:
required: true
- type: textarea
Expand Down
2 changes: 1 addition & 1 deletion dymos/__init__.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
__version__ = '1.6.2-dev'
__version__ = '1.7.0'

from .phase import Phase, AnalyticPhase
from .transcriptions import GaussLobatto, Radau, ExplicitShooting, Analytic
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -189,6 +189,7 @@ class CallableBrachistochroneODE(om.ExplicitComponent):

def initialize(self):
self.options.declare('num_nodes', types=int)
self.matrix_free = False

def __call__(self, num_nodes, **kwargs):
from copy import deepcopy
Expand Down
45 changes: 45 additions & 0 deletions release_notes.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,48 @@
*******************************
# Release Notes for Dymos 1.7.0

February 09, 2023

Version 1.7.0 contains some significant enhancements to its capabilities.

Major improvements include:
- Users may now specify boundary constraints, path constraints, and the objective within a phase as expressions. These expressions must contain an equals sign and must be complex-step-safe. This allows the user to impose constraints or objectives on quantities that may not be computed by the given equations of motion model.
- The user can now rename the time variable. Integration with respect to another variable (such as range for an aircraft) has always been possible, but dymos still always called the variable "time". Now, it will be more clear.
- The ExplicitShooting transcription has been reworked to include a continuous adjoint for derivatives and uses the stock scipy.integrate.solve_ivp integrators to perform the actual integraiton. Note that this method may result in inaccurate derivatives when the time step varies widely thoughout an integration. (We're working on that part).
- Imposing rate2 continuity on controls would previously generate confusing errors with some optimizers like SLSQP. If the polynomial order of the control representation was quadratic, then the second derivative would always be zero. Continuity was thus guaranteed, but SLSQP would fail because it lacked the ability to affect that continuity despite it always being satisfied. Now Dymos will only respect control rate2 continuity across segment junctions if it can affect continuity at the segment junction.
- The `run_problem` method now includes a sanity check on time bounds. If it detects that the linkage constraints between two phases in time cannot be satisfied due to initial time and duration bounds on all previous phases, a warning will be raised.

## Backwards Incompatible API Changes & Deprecations

- Deprecated Trajectory.add_linkage_constraint arguments sign_a and sign_b [#888](https://github.com/OpenMDAO/dymos/pull/888)
- Deprecated SolveIVP transcription. The `simulate` method now uses the ExplicitShooting transcription without derivatives. [#898](https://github.com/OpenMDAO/dymos/pull/898)

## Enhancements

- Added ability to control continuity scaling for states and controls. [#866](https://github.com/OpenMDAO/dymos/pull/866)
- Parameter flow added to linkage report diagram [#873](https://github.com/OpenMDAO/dymos/pull/873)
- Added ability to allow the user to change the name of the integration variable. [#874](https://github.com/OpenMDAO/dymos/pull/874)
- Added ability to add expressions as constraints [#875](https://github.com/OpenMDAO/dymos/pull/875)
- Added the derivative of speed of sound wrt altitude as an output [#879](https://github.com/OpenMDAO/dymos/pull/879)
- Phase objectives may now be given as expressions. [#880](https://github.com/OpenMDAO/dymos/pull/880)
- Interim continuous-adjoint shooting implementation [#885](https://github.com/OpenMDAO/dymos/pull/885)
- Replaced existing ExplicitShooting instance with the continuous-adjoint Implementation [#891](https://github.com/OpenMDAO/dymos/pull/891)
- Selectively apply rate2 continuity to indices where it can be impacted. [#896](https://github.com/OpenMDAO/dymos/pull/896)
- Raise an exception if the initial time of a phase is unreachable [#899](https://github.com/OpenMDAO/dymos/pull/899)

## Bug Fixes

- Fixed load_case when a phase does not exist in the case. [#863](https://github.com/OpenMDAO/dymos/pull/863)
- Fixed url in _config.yml so that documentation examples can open at the Google colab. [#868](https://github.com/OpenMDAO/dymos/pull/868)
- Fixed dymos.load_case so that it does not load states or controls into AnalyticPhases [#871](https://github.com/OpenMDAO/dymos/pull/871)
- Fixed an unnecessary error when linking phases with different units via connection. [#872](https://github.com/OpenMDAO/dymos/pull/872)
- Handle parameter names containing colons in Dymos linkage report [#900](https://github.com/OpenMDAO/dymos/pull/900)

## Miscellaneous

- Fixed broken image links in the water rocket example in the documentation. [#902](https://github.com/OpenMDAO/dymos/pull/902)


*******************************
# Release Notes for Dymos 1.6.1

Expand Down
2 changes: 1 addition & 1 deletion setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@


setup(name='dymos',
version='1.6.2-dev',
version='1.7.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.
Expand Down

0 comments on commit 203c098

Please sign in to comment.