Skip to content

Commit 7fbd4f1

Browse files
SebastianM-CDatseris
authored andcommitted
Add quadrupole surface vibrations system (#77)
* Add quadrupole surface vibrations system * Improve docstring - Add more references - Add initial conditions
1 parent 79a6ddf commit 7fbd4f1

File tree

2 files changed

+51
-0
lines changed

2 files changed

+51
-0
lines changed

src/continuous_famous_systems.jl

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -219,6 +219,51 @@ function hhjacob!(J, u, p, t)
219219
end
220220

221221

222+
"""
223+
qbh(u0=[]; A=1., B=0.55, D=0.4)
224+
225+
```math
226+
\\begin{aligned}
227+
\\dot{q}_0 &= A p_0 \\\\
228+
\\dot{q}_2 &= A p_2 \\\\
229+
\\dot{p}_0 &= -A q_0 -3 \\frac{B}{\\sqrt{2}} (q_2^2 - q_1^2) - D q_1 (q_1^2 + q_2^2) \\\\
230+
\\dot{p}_2 &= -q_2 (A + 3\\sqrt{2} B q_1 + D (q_1^2 + q_2^2)) (x^2 - y^2)
231+
\\end{aligned}
232+
```
233+
234+
These equations of motion correspond to a Hamiltonian used [1,2] in nuclear
235+
physics to study the quadrupole vibrations of the nuclear surface.
236+
237+
```math
238+
H(p_0, p_2, q_0, q_2) = \\frac{A}{2}\\left(p_0^2+p_2^2\\right)+\\frac{A}{2}\\left(q_0^2+q_2^2\\right)
239+
+\\frac{B}{\\sqrt{2}}q_0\\left(3q_2^2-q_0^2\\right) +\\frac{D}{4}\\left(q_0^2+q_2^2\\right)^2
240+
```
241+
242+
The Hamiltonian has a similar structure with the Henon-Heiles one, but it has an added fourth order term
243+
and presents a nontrivial dependence of chaoticity with the increase of energy [3].
244+
The default initial condition is chaotic.
245+
246+
[1]: Eisenberg, J.M., & Greiner, W., Nuclear theory 2 rev ed. Netherlands: North-Holland pp 80 (1975)
247+
[2]: Baran V. and Raduta A. A., International Journal of Modern Physics E, **7**, pp 527--551 (1998)
248+
[3]: Micluta-Campeanu S., Raportaru M.C., Nicolin A.I., Baran V., Rom. Rep. Phys. **70**, pp 105 (2018)
249+
"""
250+
function qbh(u0=[0., -2.5830294658973876, 1.3873470962626937, -4.743416490252585]; A=1., B=0.55, D=0.4)
251+
return CDS(qeom, u0, [A, B, D])
252+
end
253+
function qeom(z, p, t)
254+
@inbounds begin
255+
A, B, D = p
256+
p₀, p₂ = z[1], z[2]
257+
q₀, q₂ = z[3], z[4]
258+
259+
return SVector{4}(
260+
-A * q₀ - 3 * B / 2 * (q₂^2 - q₀^2) - D * q₀ * (q₀^2 + q₂^2),
261+
-q₂ * (A + 3 * 2 * B * q₀ + D * (q₀^2 + q₂^2)),
262+
A * p₀,
263+
A * p₂
264+
)
265+
end
266+
end
222267

223268
"""
224269
lorenz96(N::Int, u0 = rand(M); F=0.01)

test/continuous_systems.jl

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,3 +64,9 @@ end
6464
@test xyz[i] == data[:, i]
6565
end
6666
end
67+
68+
@testset "Quadrupole boson Hamiltonian" begin
69+
ds = Systems.qbh()
70+
tr = trajectory(ds, 20.0)
71+
@test size(tr) == (2001, 4)
72+
end

0 commit comments

Comments
 (0)