- [BREAKING] Function
animate_evolution
has been renamed toanimate_evolution!
to remind users that it mutates the particle. animate_evolution!
can create a new figure and plot the billiard table on user input.
- Added possibility to calculate the Lyapunov spectrum of a billiard
system. Currently this is available only for
Particle
s.- use the function
lyapunovspectrum
for the computation.
- use the function
- Changed the relocating algorithm to be geometric. i.e. the time adjusting is done geometrically (self-multiplying the adjustment by 10 at each repeated step).
- Magnetic propagation and straight propagation now both use
timeprec(T)
(see below). For both cases the maximum number of geometric iterations is 1 (for the default value oftimeprec(T)
. - This
timeprec
cannot be used PeriodWall and RaySplitting obstacles with MagneticParticles because when magnetic and relocating forward you get extremely shallow angles and you need huge changes in time for even tiny changes in position.- For this special case the function
timeprec_forward(T)
is used instead. This function results to on average 3-5 geometric relocation steps.
- For this special case the function
- Fixed many issues and bugs.
- All major types defined by
DynamicalBilliards
have been changed to parametric types with parameterT<:AbstractFloat
.- The above makes the billiard table type annotation be
bt::Vector{<:Obstacle{T}}) where {T<:AbstractFloat}
instead of the oldbt::Vector{Obstacle}
.
- The above makes the billiard table type annotation be
- Particle evolution algorithm has fundamentally changed.
The way the algorithm works now is described in the documentation in the Physics page.
- This point with conjuction with the above made the package much faster.
- Positional argument
warning
ofevolve!()
has been changed to keyword argument. - The raysplitting functions must always accept 3 arguments, even in the case of straight propagation. The best way is to have the third argument have a default value.
- All
distance
functions can now take a position as an argument (giving a particle simply passes the position). - Removed redundant functions like
magnetic2standard
. - The package is now precompiled.
- Tests have been restructured to be faster, more efficient, and use the
@testset
type of syntax. - Documentation has been made more clear.
Changelog will be kept from this version. See the releases page for info on previous versions.