Recent Releases of opty
opty - Version 1.4.0
- Dropped support for Python 3.8.
- Added support for Python 3.13.
- Added explicit dependency on setuptools.
-
ConstraintCollocatorraises an error if all equations of motion are algebraic, i.e. none are differential equations. -
plot_constraint_violations()now returns a variable number of subplot rows depending on the number of instance constraints. This makes the plot readable with large numbers of instance constraints. - Internal common sub expression replacement symbols are now assumed to be real.
- Improvements to docstrings of
Problem.solve(). - Added
Problem.parse_free()to simplify use of theparse_free()function. - Added attribute descriptions to
ConstraintCollocatordocstring. - Support for single first order differential equation instead of limiting to two first order (i.e. only second order systems).
- Enabled math constants on Windows to support
sympy.pi, for example. - Made SciPy an optional dependency (was required).
- Fixed bug from backwards incompatible change in Python 3.13 for docstring indentation.
- Fixed bug where
Problem.plot_methods did not return anything. - Fixed bug in trajectory plots so that the input trajectories are labeled with known, unknown, or both types of inputs.
- Made all
ConstraintCollocatorattributes properties with no setter methods, i.e. everything must be passed into the constructor to properly construct the object. - Separated examples into beginner, intermediate, and advanced groups.
- Added
MathJaxReprfor printing SymPy expressions in the example gallery. - Use MathJax v2 in the documentation so that long expressions will line wrap.
- Examples added:
- Ball rolling on spinning disc
- Car moving around pylons
- Car parking into a garage
- Crane moving a load
- Delay equation (inequality constraints example)
- Human gait
- Mississippi steamboat
- Non-contiguous parameter identification
- ODE vs DAE comparison
- Particle moving through a helical tube
- Single EoM & hypersensitive control
- Sit-to-stand
- Standing balance control identification
What's Changed
- Subexpression replacements in the Jacobian should be real. by @moorepants in https://github.com/csu-hmc/opty/pull/216
- Plot constraint violations by @Peter230655 in https://github.com/csu-hmc/opty/pull/218
- Added a example: crane moving a load by @Peter230655 in https://github.com/csu-hmc/opty/pull/197
- Handle variable h by @Peter230655 in https://github.com/csu-hmc/opty/pull/221
- ball rolling on a spinning disc by @Peter230655 in https://github.com/csu-hmc/opty/pull/210
- make plot_trajectories work if no input trajectories are given by @Peter230655 in https://github.com/csu-hmc/opty/pull/231
- Ensure number of instance constraints is valid and use inside plot me… by @moorepants in https://github.com/csu-hmc/opty/pull/232
- Drop support for Python 3.8. by @moorepants in https://github.com/csu-hmc/opty/pull/233
- check that equationsofmotion are not AEs by @Peter230655 in https://github.com/csu-hmc/opty/pull/236
- reduced number of frames in animation form 300 to about 75 by @Peter230655 in https://github.com/csu-hmc/opty/pull/242
- New Example: Parameter Identification from Non-Contiguous Measurements by @Peter230655 in https://github.com/csu-hmc/opty/pull/246
- Mississippi steamboat on a lake by @Peter230655 in https://github.com/csu-hmc/opty/pull/208
- Deal with loss of whitespace in Python 3.13. by @moorepants in https://github.com/csu-hmc/opty/pull/254
- Correcting time step width of trajectory plots to equal nodetimeint… by @chris-konrad in https://github.com/csu-hmc/opty/pull/283
- Make setuptools a required dependency, fixes #295. by @moorepants in https://github.com/csu-hmc/opty/pull/296
- changed a typo in line 434 by @Peter230655 in https://github.com/csu-hmc/opty/pull/300
- add parse_free method to Problem class, add test fubction by @Peter230655 in https://github.com/csu-hmc/opty/pull/303
- improved HTML rendering by @Peter230655 in https://github.com/csu-hmc/opty/pull/305
- trial push whether layout is o.k. by @Peter230655 in https://github.com/csu-hmc/opty/pull/306
- Testing the RTD preview builds. by @moorepants in https://github.com/csu-hmc/opty/pull/307
- park a car in a garage by @Peter230655 in https://github.com/csu-hmc/opty/pull/289
- docstrings changed for solve to match opty by @Peter230655 in https://github.com/csu-hmc/opty/pull/301
- Allow for one differential equation only. Removed lines near 1300, 1680 by @Peter230655 in https://github.com/csu-hmc/opty/pull/311
- betts 10 103 and 104. Replaces PR # 261 by @Peter230655 in https://github.com/csu-hmc/opty/pull/312
- car around pylons by @Peter230655 in https://github.com/csu-hmc/opty/pull/298
- corrected error in rounding part of the method plotconstraintviolat… by @Peter230655 in https://github.com/csu-hmc/opty/pull/288
- Betts 10 50 by @Peter230655 in https://github.com/csu-hmc/opty/pull/272
- Simplified the code and improve wording/formatting in Betss 10 103-104. by @moorepants in https://github.com/csu-hmc/opty/pull/314
- Load math constants on Windows, fixes #257. by @moorepants in https://github.com/csu-hmc/opty/pull/320
- Added Ackermann & van den Bogert 2010 example. by @moorepants in https://github.com/csu-hmc/opty/pull/29
- Linting, spelling, and wording cleanup on the ball rolling on disc example. by @moorepants in https://github.com/csu-hmc/opty/pull/322
- raise ValueError if duplicate state symbols are present. Fixes #317 by @Peter230655 in https://github.com/csu-hmc/opty/pull/323
- changed I / we wordings by @Peter230655 in https://github.com/csu-hmc/opty/pull/329
- removed I /we wordings, some small changes by @Peter230655 in https://github.com/csu-hmc/opty/pull/328
- Make SciPy an optional dependency, fixes #319. by @moorepants in https://github.com/csu-hmc/opty/pull/327
- removed I wordings by @Peter230655 in https://github.com/csu-hmc/opty/pull/330
- I wording removed by @Peter230655 in https://github.com/csu-hmc/opty/pull/332
- particle-in-tube-new by @Peter230655 in https://github.com/csu-hmc/opty/pull/286
- Break examples into beginner, intermediate, and advanced. Fixes #334 by @moorepants in https://github.com/csu-hmc/opty/pull/338
- Changes ConstraintCollocator attributes to read only properties. Replaces PR #315 by @Peter230655 in https://github.com/csu-hmc/opty/pull/337
- probable typo corrected by @Peter230655 in https://github.com/csu-hmc/opty/pull/341
- removed leading minus by @Peter230655 in https://github.com/csu-hmc/opty/pull/342
- examples-gallery now has three subdirectories by @Peter230655 in https://github.com/csu-hmc/opty/pull/343
- Move the Park 2004 example to the gallery. by @moorepants in https://github.com/csu-hmc/opty/pull/340
- using windows explorer by @Peter230655 in https://github.com/csu-hmc/opty/pull/346
- added more textrm, first attempt at structure as per #348 by @Peter230655 in https://github.com/csu-hmc/opty/pull/350
- Added a sit-to-stand example with the gait2d model. by @moorepants in https://github.com/csu-hmc/opty/pull/356
- Release Version 1.4.0 by @moorepants in https://github.com/csu-hmc/opty/pull/352
New Contributors
- @chris-konrad made their first contribution in https://github.com/csu-hmc/opty/pull/283
Full Changelog: https://github.com/csu-hmc/opty/compare/v1.3.0...v1.4.0
Scientific Software - Peer-reviewed
- Python
Published by moorepants over 1 year ago
opty - Version 1.3.0
- Added support for Python 3.12.
- Added a function that generates a numerical objective function and its
gradient from a symbolic objective function:
create_objective_function(). - Fixed constraint violation plot on
Problemby removing the assumption that each equation of motion was simply a function of one state. - Added an option to display the Cython compilation output and to automatically
display the output if compilation fails. Display does not always work on
Windows due to limitations in Python's capturing
STDOUTon Windows with certain system encodings. - Added support for variable duration solutions by passing in a symbol for the node time interval instead of a float.
- Switched to Sphinx Gallery for displaying examples in the documentation.
- Moved the three documentation examples to the Sphinx Gallery page.
- Added new examples:
- A variable duration pendulum swing up example.
- A car parallel parking example.
- A quadcopter drone flight example.
- A cycling time trial example that uses SymPy's new muscle models.
- A block sliding over a hill example.
- Updated the generated Cython code to use memory views.
Problemnow supports solving problems with no unknown input trajectories.- Corrected plot ordering for the trajectories so that mismatches no longer occur.
- Improved default plot display for larger number of variables and support customizing axes to default plots.
Problemand other primary classes and methods can now be imported directly from the top level opty namespace, e.g.from opty import Problem.- Better handling of SymPy variable names that generate invalid or clashing C variable names by appending an underscore to all opty generated C variable names.
- Switched to pytest for unit testing.
What's Changed
- Version 1.2.0 by @moorepants in https://github.com/csu-hmc/opty/pull/113
- Change setup() -> setup_method() due to pytest deprecation. by @moorepants in https://github.com/csu-hmc/opty/pull/116
- Fix mistake in the parse_free docstring by @tjstienstra in https://github.com/csu-hmc/opty/pull/118
- Function to generate object and objective gradient evaluator functions by @tjstienstra in https://github.com/csu-hmc/opty/pull/115
- Use the createobjectivefunction in the pendulum swing up example. by @moorepants in https://github.com/csu-hmc/opty/pull/120
- Show args and kwargs in Problem init explicitly by @tjstienstra in https://github.com/csu-hmc/opty/pull/130
- Clarify that the objective should not contain any known symbols by @tjstienstra in https://github.com/csu-hmc/opty/pull/137
- Improve constraint violation visualization by @tjstienstra in https://github.com/csu-hmc/opty/pull/125
- Added option to show Cython compilation output and display more informative error. by @moorepants in https://github.com/csu-hmc/opty/pull/149
- Implements support for variable duration solutions by @moorepants in https://github.com/csu-hmc/opty/pull/150
- Use Sphinx Gallery for the examples. by @moorepants in https://github.com/csu-hmc/opty/pull/153
- Car parallel parking example by @moorepants in https://github.com/csu-hmc/opty/pull/154
- Use env.yml in CI and build docs, fixes #155. by @moorepants in https://github.com/csu-hmc/opty/pull/158
- Added an example of drone flight trajectory optimization with quaternions. by @moorepants in https://github.com/csu-hmc/opty/pull/163
- Switched to Cython memoryviews by @moorepants in https://github.com/csu-hmc/opty/pull/170
- Pass in the detected device encoding to subprocess run for detecting Windows encoding. by @moorepants in https://github.com/csu-hmc/opty/pull/174
- Try different way to get the encoding on Windows. by @moorepants in https://github.com/csu-hmc/opty/pull/175
- two link pendulum to be uprighted using opty with variable h by @Peter230655 in https://github.com/csu-hmc/opty/pull/178
- Handle no input trajectories. by @moorepants in https://github.com/csu-hmc/opty/pull/183
- One-legged Cycling Time Trial Example by @moorepants in https://github.com/csu-hmc/opty/pull/164
- Added test to check all variable ordering and ensure plot_trajectories honors input order. by @moorepants in https://github.com/csu-hmc/opty/pull/187
- Use a more unique symbol for h internally, fixes #162. by @moorepants in https://github.com/csu-hmc/opty/pull/188
- Added all from direct_collocation and utils to package namespace. by @moorepants in https://github.com/csu-hmc/opty/pull/193
- Add Vyasarayani example to the gallery, but left multi option version in examples dir. by @moorepants in https://github.com/csu-hmc/opty/pull/199
- Append an underscore to all Opty generated C variable names to avoid variable name clashes in included code. by @moorepants in https://github.com/csu-hmc/opty/pull/200
- Made createobjectivefunction signature match rest of opty, made nodetimeinterval required. by @moorepants in https://github.com/csu-hmc/opty/pull/201
- Plot sliding block 2 by @Peter230655 in https://github.com/csu-hmc/opty/pull/195
New Contributors
- @tjstienstra made their first contribution in https://github.com/csu-hmc/opty/pull/118
- @Peter230655 made their first contribution in https://github.com/csu-hmc/opty/pull/178
Full Changelog: https://github.com/csu-hmc/opty/compare/v1.2.0...v1.3.0
Scientific Software - Peer-reviewed
- Python
Published by moorepants almost 2 years ago
opty - Version 1.2.0
- Dropped support for Python 2.7, 3.6, & 3.7.
- Added support for Python 3.9, 3.10, & 3.11.
- Bumped minimum dependencies up to versions released around mid 2020, except for cyipopt which is set to 1.1.0 since that is the first version released on PyPi under the name cyipopt (instead of ipopt).
- Much faster symbolic Jacobian algorithm introduced. For constraints made up of hundreds of thousands SymPy operations there can be greater than 200X performance increase.
- logging.info() used for providing information to the user.
- Moved to Github Actions continous integration.
What's Changed
- Made all count variable names consistent across the codebase. by @moorepants in https://github.com/csu-hmc/opty/pull/94
- Updating opty to work with new dependency minimums by @moorepants in https://github.com/csu-hmc/opty/pull/96
- Use the libmamba solver in CI and test Python 3.10. by @moorepants in https://github.com/csu-hmc/opty/pull/103
- Drop support for Python 3.6 & 3.7, add support for 3.10 & 3.11. by @moorepants in https://github.com/csu-hmc/opty/pull/104
- Update to use correct name for cyipopt package and Problem class by @brocksam in https://github.com/csu-hmc/opty/pull/101
- Added some basic info logging to ConstraintCollocator. by @moorepants in https://github.com/csu-hmc/opty/pull/105
- Adds a Github CI workflow for testing on all operating systems. by @moorepants in https://github.com/csu-hmc/opty/pull/110
- Implement function for computing Jacobians using a more efficient algorithm by @brocksam in https://github.com/csu-hmc/opty/pull/102
New Contributors
- @brocksam made their first contribution in https://github.com/csu-hmc/opty/pull/101
Full Changelog: https://github.com/csu-hmc/opty/compare/v1.1.0...v1.2.0
Scientific Software - Peer-reviewed
- Python
Published by moorepants over 2 years ago
opty - Version 1.1.0
- Added support for Windows.
- Drop support for Python 3.5, add support for 3.7 and 3.8.
Scientific Software - Peer-reviewed
- Python
Published by moorepants over 5 years ago
opty - Version 1.0.0
This release corresponds to the publishing in the Journal of Open Source Software.
Scientific Software - Peer-reviewed
- Python
Published by moorepants over 8 years ago