Releases: milanofthe/pathsim
Releases · milanofthe/pathsim
v0.5.0
v0.4.9
This release adds the capability to solve for the time independent Steady State
- adds special
SteadyState
subclass ofImplicitSolver
, utilizing the existing optimizers - bidirectional connnections called
Duplex
that couple two IO pairs as a subclass ofConnection
, useful for RF systems with ports
v0.4.8
This release mostly handles a better integration of the AD framework into the solver suite.
- reworked event handling system to act on blocks directly for monitoring and resoution, makes it more versatile
- simulation initialization now utilizes the add_xx methods and is therefore more streamlined
- introduced optim module that houses the AD framework and the solvers for the implicit update equation s for implicit solvers
- the AD framework now has functions for jacobian evaluation and a decorator to compute jacobians automatically
- extended the implicit update equation solver suite by newton-type methods that leverage the AD framework to get the jacobians (experimental and not used currently)
- implicit integrators now support the Value class from the AD framework, this makes stiff systems fully differentiable
v0.4.7
- Event handling system with zero-crossing detection and handling of scheduled events with error control, compatible with all integrators
- 25% faster AD by using integer indexing for gradient references in Value class
- blocks, connections and events are the three major system components that are managed by the Simulation class now
- blocks, connections and events have
on
andoff
methods that enable activating and deactivating them (dynamically, based on events or for debugging purposes) in the simulation
v0.4.6
- reworked error controllers for the adaptive timestep integrators
- added GEAR type integrators to the solver library (multistep methods with adaptive timestep and adaptive order selection)
v0.4.5
- fixed path length estimation for nested subsystems and added tests and an example
- renamed utils.funcs to utils.utils, which makes more sense
v0.4.4
- minor fixes
- fixed RKDP54 butcher table
- test coverage for Value and Parameter classes for AD framework
v0.4.3
- refactoring of numerical integrators (solvers), separate parent classes for diagonally implicit and explicit runge kutta methods simplifies the specific methods significantly
- performance of runge kutta methods improved >10% by using explicit loops with indexing to construct slope instead of sum comprehension
Enhanced AD and Fixes
- created interface for automatic differentiation framework to numpy ufuncs
- updated testsuite
- general bugfixing regarding implicit solvers (jacobian computation)
AD
Lots of refactors, improvements and new features since the last release including:
- Added rudimentary automatic differentiation (AD) framework in
pathsim.diff
to make the simulations differentiable w.r.t. predefined parameters - Refactoring of numerical integrators to be compatible with AD framework for transient simulation
- Added lots of test, initial coverage was above 85%, more coming in the future
- Overall cleanup