DickeModel.ClassicalDicke
For examples of usage, go to Examples for ClassicalDicke.
DickeModel.ClassicalDicke.DickeSystem — Typeabstract type DickeSystem <: ClassicalSystems.ClassicalSystemAbstract subtype of ClassicalSystems.ClassicalSystem which represents the classical Dicke model. To generate it, use the concrete subtypes ClassicalDickeSystem or DickeBCE.QuantumDickeSystem.
DickeModel.ClassicalDicke.ClassicalDickeSystem — Typestruct ClassicalDickeSystem <: DickeSystemSubtype of ClassicalSystems.ClassicalSystem which represents the classical Dicke model with the given parameters $ω_0$, $ω$, and $γ$. See Eq. (5) of Ref. [13]. To generate this struct, use the constructor
ClassicalDickeSystem(;ω₀::Real,ω::Real,γ::Real)For example, system = ClassicalDickeSystem(ω₀=1, ω=1, γ=1).
This struct may be passed to all functions in this module that require an instance of DickeSystem, as well as functions in other modules that require ClassicalSystems.ClassicalSystem, such as ClassicalSystems.integrate.
DickeModel.ClassicalDicke.hamiltonian — Functionfunction hamiltonian(system::DickeSystem)Returns a classical Hamiltonian function h(x) where x=[Q,q,P,p], which is given by Eq. (5) of Ref. [13].
Arguments
systemshould be a subtype ofDickeSystem.
Phase space
DickeModel.ClassicalDicke.Point — Functionfunction Point(;Q::Real,q::Real,P::Real,p::Real)Returns the array [Q,q,P,p]. This ordering is used throughout this package.
function Point(system::DickeSystem;
Q::Real,
P::Real,
p::Real,
ϵ::Real,
sgn::Union{typeof(-),typeof(+)} = +)Returns a list [Q,q,P,p], where q is calculated with ClassicalDicke.q_of_ϵ. If there are no solutions for $q$, an error is raised.
DickeModel.ClassicalDicke.Pointθϕ — Functionfunction Pointθϕ(;θ::Real,ϕ::Real,q::Real,p::Real)Returns a list [Q,q,P,p], where Q and P are calculated from θ and ϕ using PhaseSpaces.Q_of_θϕ and PhaseSpaces.P_of_θϕ.
DickeModel.ClassicalDicke.energy_shell_volume — Functionfunction energy_shell_volume(system::DickeSystem,ϵ::Real)Returns the volume of the classical energy shell in the phase space, that is,
\[\mathcal{V}(\mathcal{M}_ϵ) = \int_\mathcal{M} \text{d}\mathbf{x} \, \delta(h_\text{cl}(\mathbf{x})- \epsilon).\]
This is computed using a modified version of Eq. (A2) in [15], (the integral is performed in the variable $Q$ instead of $y$). That equation was originally derived in Ref. [3], with different units for $\epsilon$.
The integration is performed using QuadGK.
Arguments
systemshould be a subtype ofDickeSystem.ϵis the energy.
DickeModel.ClassicalDicke.phase_space_dist_squared — Functionfunction phase_space_dist_squared(x::AbstractVector{<:Real},y::AbstractVector{<:Real})Returns the phase-space distance $d_{\mathcal{M}}(\mathbf{x},\mathbf{y})$ (See App. C of Ref [13]), where x and y are vectors in the form [Q,q,P,p].
DickeModel.ClassicalDicke.classical_path_random_sampler — Functionfunction classical_path_random_sampler(system::DickeSystem; ϵ::Real, dt::Real=3)This function returns a function sample(), which produces random points within the classical energy shell at energy ϵ. The function sample() returns points from a fixed chaotic trajectory picked at random separated by a fixed time interval dt. If the classical dynamics are ergodic, which only happens in chaotic regions, this produces random points in the energy shell.
Arguments
systemshould be a subtype ofDickeSystem.
Keyword arguments
ϵis the energy of the energy shell from where to sample.dtis the fixed time interval that separates the points that are returned bysample().
Energy minimizing
DickeModel.ClassicalDicke.minimum_energy — Functionfunction minimum_energy(system::DickeSystem)Returns the ground-state energy, as given by multiplying Eq. (15) of Ref. [3] by $\omega_0$ (because in that work they use $\epsilon =E/(\omega_0 j)$, and in this module we use $\epsilon = E/j$).
Arguments
systemshould be a subtype ofDickeSystem.
DickeModel.ClassicalDicke.minimum_ϵ_for — Functionfunction minimum_ϵ_for(system::DickeSystem;
Q::Union{Real,Nothing}=nothing,
q::Union{Real,Nothing}=nothing,
P::Union{Real,Nothing}=nothing,
p::Union{Real,Nothing}=nothing)Returns the minimum energy $\epsilon$ when constraining the system to three fixed values of the coordinates $Q$, $q$, $P$, $p$.
Arguments
systemshould be a subtype ofDickeSystem.
Keyword arguments
- You may pass either $(Q,q,P)$ or $(q,P,p)$. The other combinanations are not implemented.
This function can be especially useful to draw contours of the available phase space (see Drawing contours of the available phase space)
DickeModel.ClassicalDicke.minimum_energy_point — Functionfunction minimum_energy_point(system::DickeSystem,
Qsign::Union{typeof(-),typeof(+)} = +)Returns the ground-state coordinate, that is, (0, 0, 0, 0) for the normal phase and $\mathbf{x}_\text{GS}$ below Eq. (7) of Ref. [13] for the superradiant phase.
Arguments
systemshould be a subtype ofDickeSystem.Qsigntoggles the sign of the $Q$ coordinate in the superradiant phase, that is,+for $\mathbf{x}_\text{GS}$ and-for $\widetilde{\mathbf{x}}_\text{GS}$ . Defaults to+.
DickeModel.ClassicalDicke.normal_frequency — Functionfunction normal_frequency(system::DickeSystem,
sgn::Union{typeof(-),typeof(+)} = +)Returns the ground-state normal frequency, that is, $\Omega_{\epsilon_{\text{GS}}}^{A,B}$ at the bottom of page 3 of Ref. [13].
Arguments
systemshould be a subtype ofDickeSystem.sgnis-for $\Omega^A$ and+for $\Omega^B$. Defaults to+.
Note: This function currently only works for the supperadiant phase.
Roots in $q$
DickeModel.ClassicalDicke.discriminant_of_q_solution — Functionfunction discriminant_of_q_solution(system::DickeSystem;
Q::Real,
P::Real,
p::Real,
ϵ::Real)Returns the discriminant of the second degree equation in $q$ given by
\[ h_\text{cl}(Q,q,P,p)=\epsilon,\]
where $h_\text{cl}$ is given by Eq. (5) of Ref. [13].
Arguments
systemshould be a subtype ofDickeSystem.
Keyword arguments
Q,P,p, andϵare the values of $Q$, $P$, $p$, and $\epsilon$, respectively.
DickeModel.ClassicalDicke.q_of_ϵ — Functionfunction q_of_ϵ(system::DickeSystem;
Q::Real,
P::Real,
p::Real,
ϵ::Real,
sgn::Union{typeof(-),typeof(+)}=+,
returnNaNonError::Bool=true)Returns the solutions $q_\pm$ of the second degree equation in $q$ given by
\[ h_\text{cl}(Q,q,P,p)=\epsilon,\]
where $h_\text{cl}$ is given by Eq. (5) of Ref. [13].
Arguments
systemshould be a subtype ofDickeSystem.
Keyword arguments
Q,P,p, andϵare values of $Q$, $P$, $p$, and $\epsilon$, respectively.sgnis+for $q_+$ and-for $q_-$- If
returnNaNonErroristrue, thenNaNis returned if there are no solutions. If it isfalse, and error is raised.
DickeModel.ClassicalDicke.q_sign — Functionfunction q_sign(system::DickeSystem,
x::AbstractVector{<:Real},
ϵ::Real=hamiltonian(system)(x))Returns the sign of the root of the second degree equation in $q$ given by
\[ h_\text{cl}(Q,q,P,p)=\epsilon.\]
That is, this function returns + if q=x[2] ≈ q_of_ϵ(system;Q=x[1],P=x[3],p=x[4],ϵ=ϵ,sgn=+) and returns - if q=x[2] ≈ q_of_ϵ(system;Q=x[1],P=x[3],p=x[4],ϵ=ϵ,sgn=-).
Arguments
systemshould be a subtype ofDickeSystem.xis a vector in the form[Q,q,P,p].ϵshould be the energy ofx. If this is not passed, it is computed usinghamiltonian(system)(x).
DickeModel.ClassicalDicke.Point — Methodfunction Point(system::DickeSystem;
Q::Real,
P::Real,
p::Real,
ϵ::Real,
sgn::Union{typeof(-),typeof(+)} = +)Returns a list [Q,q,P,p], where q is calculated with ClassicalDicke.q_of_ϵ. If there are no solutions for $q$, an error is raised.
Atomic boundary of energy shells
DickeModel.ClassicalDicke.minimum_nonnegative_Q_for_ϵ — Functionfunction minimum_nonnegative_Q_for_ϵ(system::DickeSystem,ϵ::Real)Computes the minimum nonnegative value of the parameter $Q$ accessible to the system at energy $\epsilon$.
Arguments
systemshould be a subtype ofDickeSystem.ϵis the energy.
DickeModel.ClassicalDicke.maximum_Q_for_ϵ — Functionfunction maximum_Q_for_ϵ(system::DickeSystem,ϵ::Real)Computes the maximum value of the parameter $Q$ accessible to the system at energy $\epsilon$.
Arguments
systemshould be a subtype ofDickeSystem.ϵis the energy.
DickeModel.ClassicalDicke.maximum_P_for_ϵ — Functionfunction maximum_P_for_ϵ(system::DickeSystem,ϵ::Real)Computes the maximum value of the parameter $P$ accessible to the system at energy $\epsilon$.
Arguments
systemshould be a subtype ofDickeSystem.ϵis the energy.