Releases: a-latyshev/dolfinx-external-operator
v0.10.1
What's Changed
Bug fixes
- Expand high-level operands in external operators by @a-latyshev in #37
- Fix operand evaluation by @a-latyshev in #43
New features
- Add handling of adjoint and other floating types by @jorgensd in #32
- Use
ufl.DAGTraverserto work through forms when replacingufl.ExternalOperatorby @jorgensd in #34 - Support for nested external operators by @jorgensd in #40
Full Changelog: v0.10.0...v0.10.1
v0.10.0.pos1
This post-release is published to create a proper package on PyPi and test the associated workflows.
What's Changed
- Add handling of adjoint and other floating types by @jorgensd in #32
- @jorgensd is the official co-developer #41
Full Changelog: v0.10.0...v0.10.0.post1
v0.10.0
What's Changed
This is a major release of dolfinx-external-operator, compatible with v0.10.0 of DOLFINx.
Principal changes
- No more extra memory allocation for intermediate external operators created by the UFL AD (see #25).
- New interface to call external functions from the new
NonlinearProblemof DOLFINx, which is a wrapper for SNES: #29.
The users are supposed to wrap the external callbacks, which will be called from the Newton solver, with assemble_residual_with_callback (https://github.com/a-latyshev/dolfinx-external-operator/blob/main/src/dolfinx_external_operator/petsc/petsc.py). See tutorials for a concrete example: https://a-latyshev.github.io/dolfinx-external-operator/demo/demo_plasticity_mohr_coulomb.html#solving-the-problem.
Features and API changes
- Fix sign of Newton update by @jhale in #13
- Fix. by @jhale in #14
- Fix sign in von Mises demo by @jhale in #16
- Update external operator interface by @jorgensd in #17
- Convert von Mises plasticity to use DOLFINx Newton Solver by @jhale in #15
- Newton solvers with external callbacks by @a-latyshev in #19
- Fix external operators detection by @a-latyshev in #25
- Add lower restrictions on dolfinx and ufl version by @janmirco in #21
- Upgrade to v0.10.0 by @a-latyshev in #26
- Final interface for external callbacks in NonlinearProblem by @a-latyshev in #29
- Actions as before by @a-latyshev in #31
- Fix external operator for recursive call of action by @jorgensd in #28
- Early exit if no external operator by @jorgensd in #30
New Contributors
Known issues
- Handling high-order differentiation of forms with FEMExternalOperator-s #33
Full Changelog: v0.9.0...v0.10.0
v0.9.0
Compatible with dolfinx v0.9.0: https://github.com/FEniCS/dolfinx/releases/tag/v0.9.0
v0.8.0
- The versioning of
dolfinx-external-operatornow repeats the one ofdolfinxto highlight compatibility. - Enable
pytest-s - Switch license to LGPLv3
- Improve tutorials: https://a-latyshev.github.io/dolfinx-external-operator/
v.0.0.1
The following demos are available:
- Nonlinear heat equation
- von Mises plasticity with isotropic hardening implemented via Numba
- Mohr-Coulomb model with non-associative plasticity law implemented via JAX