DickeModel.ClassicalSystems
DickeModel.ClassicalSystems.ClassicalSystem — Typeabstract struct ClassicalSystemThis abstract object represents a classical system that may be passed to multiple functions in this module. To generate a system, use ClassicalDicke.ClassicalDickeSystem or use ClassicalLMG.ClassicalLMGSystem.
Classical evolution
DickeModel.ClassicalSystems.integrate — Methodfunction integrate(system::ClassicalSystem,
u₀::AbstractVector{<:Real},
t::Real;
t₀=0.0::Real,
tol=1e-12::Real,
get_fundamental_matrix::Bool=false,
integrator_alg=TsitPap8(),
use_big_numbers::Bool=false,
integate_backwards::Bool=false,
fundamental_matrix_initial=nothing,
kargs...)This function integrates initial condition u₀ from t₀ to t under the Hamiltonian system determined by system, returning an instance of OrdinaryDiffEq.ODESolution.
Arguments
systemis an instance ofClassicalSystems.ClassicalSystem.u₀is an array which codifies the initial condition[Q,q,P,p]forClassicalDickeand[Q,P]forClassicalLMG.tis the start time of the integration.
Keyword arguments
t₀is the start of the integration (defaults tot₀ = 0.0)ClassicalSystems.ClassicalSystem.tolis the tolerance for the integration, which determines bothabstolandreltolinOrdinaryDiffEq.solveget_fundamental_matrixdetermines whether to also compute the fundametal matrix of the system. Iftrue, the result at each time is anArrayPartition(x,Φ), so thatx=result.x[2]retrieves the coordinate andΨ=result.x[2]retrieves the fundamental matrix. Default isfalse. Note that the integration is consideribly slowed down if this parameter is set totrue.integrator_algis the integration algorithm to use. Defaults toTsitPap8(Tsitouras-Papakostas 8/7 Runge-Kutta method). See theDifferentialEquationsdocumentation for other options.use_big_numbersforces the integration to be performed withBigFloatinstead ofFloat, allowing for infinite numerical precision, but hindering speed substantially. Defaults tofalse.integate_backwardstells the integrator to integrate back in time, from-t₀to-t. Defaults tofalse.fundamental_matrix_initialis the initial value ifget_fundamental_matrixistrue. The default value is the identity matrix.- Additional
kargsare passed toOrdinaryDiffEq.solve.
Lyapunov exponents
DickeModel.ClassicalSystems.lyapunov_spectrum — Functionfunction lyapunov_spectrum(system::ClassicalSystem,
x::AbstractVector{<:Real},
t::Real = 100;
λtol::Real = 1e-5,
λreltol::Real = 1e-3,
maxiters::Integer = 100,
verbose::Bool = true,
kargs...)Calculates the Lyapunov spectrum at point x. The algorithm used is given in Fig. 3.7 of Ref. [9], which basically integrates the fundamental matrix and renormalizes in intervals of length t, until the oscillations of the Lyapunov exponets go bellow λtol + λ*λreltol.
Arguments
systemis an instance ofClassicalSystems.ClassicalSystem.xis an array which codifies the initial condition[Q,q,P,p]forClassicalDickeand[Q,P]forClassicalLMG.tis the time intervals for which to integrate. This value must not be too big, or the fundamental matrix may get too large and errors will occur. Default value is100, which is fine most of the time.
Keyword arguments
λtolis the absolute tolerance ($E_a$ in Fig. 3.7 of Ref. [9]). Default is1e-5.λreltolis the relative tolerance ($E_r$ in Fig. 3.7 of Ref. [9]). Default is1e-3.maxitersis the maximum number of iterations. Default is100.verboseis a boolean toggling the progress bar (default istrue, which enables the progress bar).kargsare redirected tointegrate.
DickeModel.ClassicalSystems.lyapunov_exponent — Functionfunction lyapunov_exponent(system::ClassicalSystem,
x::AbstractVector{<:Real},
t::Real = 100; kargs...)Returns the maximal Lyapunov exponent for x by calling maximum(lyapunov_spectrum(system, x, t; kargs...)). Same arguments as lyapunov_spectrum apply.