Skip to content

Releases: keithjlee/AsapOptim.jl

v1.1.0

Choose a tag to compare

@github-actions github-actions released this 17 Jul 21:14

AsapOptim v1.1.0

Diff since v1.0.0

v1.0.0

Choose a tag to compare

@github-actions github-actions released this 17 Jul 17:34

AsapOptim v1.0.0

Diff since v0.1.3

This is a major release to a Version 1.0 of AsapOptim, consisting of a in-depth redesign of the package to match the new architecture of Asap v.1.+. In short, we have now have extreme flexibility in the choice of backend, and over 100x speed improvements for large, constrained optimization problems.

Highlights

  • Like TrussModel and Model being merged into a single data structure, optimization parameters are merged into a single OptParams structure.
  • Type strictness is replaced in favour of parametricism, enabling the use of all popular AD backends (Zygote, Enzyme, Mooncake, ForwardDiff).
  • The majority of hand-written differentiation rules using ChainRulesCore are now redundant, and the few remaining adjoint definitions are placed as package extensions in Asap, resulting in a significant lightweighting and robustness of this repository.
  • Significant testing and comparison was performed to ensure correctness with known analytic gradients and matches to published work.
  • ForwardDiff becomes the AD engine of choice for any problem with large constraints. Testing shows that a combination of reverse-mode for objectives and forward-mode for constraints yields the fastest iterations. a CachedSolver data structure enables efficient reuse of known values during both forward and reverse passes.

Breaking Changes

This is a clean break from v0.1.x, tracking Asap's own v1.0 break. The legacy implementation is preserved (unloaded) in legacy_v0/ for reference. Requires Asap ≥ 1.1; ForwardDiff is now a direct dependency.

v0.1.x v1.0
TrussOptParams / FrameOptParams (separate types, separate pipelines) one OptParams (the old names still work as aliases)
TrussVariable element type AbstractVariable
SpatialVariable(node, vector, val, lb, ub) directional "rail" axis form only: SpatialVariable(node, val, lb, ub, :X/:Y/:Z)
res.U with 3 DOFs/node (U[2:3:end] vertical) full 6 DOFs/node — y-displacements U[2:6:end], z U[3:6:end]
res.X, res.Y, res.Z vectors res.X is a 3 × n matrix
res.K, res.R (element stiffness/transformation matrices) gone — pure results only (U, X, A, L, sections, EA)
params.P load vector params.F (or just compliance(res, params))
GeometricProperties with X/Y/Z/evecs X (3 × n), L, A
NetworkResults NetworkOptResults (Asap owns the NetworkResults name)
hand-written rrules throughout none — Asap's rule extension covers everything

See example files, and docs/releases/v1.0.0.md for more details.

v0.1.3

Choose a tag to compare

@github-actions github-actions released this 17 Apr 22:46

AsapOptim v0.1.3

Diff since v0.1.2

v0.1.2

Choose a tag to compare

@github-actions github-actions released this 26 Jan 01:58

AsapOptim v0.1.2

Diff since v0.1.1

v0.1.1

Choose a tag to compare

@keithjlee keithjlee released this 22 Sep 16:15

AsapOptim v0.1.1

Fixes

  • Indexer for SpatialVariables now reference the correct directional factors fx, fy, fz when populating variable data.

v0.1.0

Choose a tag to compare

@github-actions github-actions released this 19 Sep 03:03
819d3dd

AsapOptim v0.1.0

Merged pull requests:

AsapOptim: General structural optimization

Choose a tag to compare

@keithjlee keithjlee released this 29 Jan 20:46

Initial release of AsapOptim.