Skip to content

Commit dc88fa1

Browse files
committed
Update speed_test to use the current API.
1 parent 02322ff commit dc88fa1

File tree

1 file changed

+24
-27
lines changed

1 file changed

+24
-27
lines changed

test/speed_test.jl

+24-27
Original file line numberDiff line numberDiff line change
@@ -1,44 +1,41 @@
1+
using QSimulator
12

23
function speed_test(repeats)
3-
Hnat, controlHams, controlFields, controlFreqs = sim_setup(16, 2000, 4)
4+
T_f = 1000.0
5+
sys = sim_setup(4, T_f)
6+
dt = 1.0
47

58
# run once for JIT
6-
evolution_unitary(Hnat, controlHams, controlFields, controlFreqs)
7-
parallel_evolution_unitary(Hnat, controlHams, controlFields, controlFreqs)
9+
unitary_propagator(sys, dt, 0.0, T_f, parallelize=false)
10+
unitary_propagator(sys, dt, 0.0, T_f, parallelize=true)
811

912
# then time each
1013
tserial = @elapsed for ct = 1:repeats
11-
evolution_unitary(Hnat, controlHams, controlFields, controlFreqs)
14+
unitary_propagator(sys, dt, 0.0, T_f, parallelize=false)
1215
end
1316

1417
tparallel = @elapsed for ct = 1:repeats
15-
parallel_evolution_unitary(Hnat, controlHams, controlFields, controlFreqs)
18+
unitary_propagator(sys, dt, 0.0, T_f, parallelize=true)
1619
end
1720

1821
println("Serial execution in $(tserial/repeats) seconds")
1922
println("Parallel execution in $(tparallel/repeats) seconds")
2023

21-
tserial, tparallel
24+
tserial/repeats, tparallel/repeats
2225
end
2326

24-
function sim_setup(dimension,
25-
numTimeSteps,
26-
numControls)
27-
#Create a random natural hamiltonian
28-
tmpMat = randn(dimension, dimension) + 1im*randn(dimension, dimension)
29-
Hnat = tmpMat+tmpMat'
30-
31-
#Create random control Hamiltonians
32-
controlHams = Array(Matrix{Complex128}, numControls)
33-
for ct = 1:numControls
34-
tmpMat[:] = randn(dimension, dimension) + 1im*randn(dimension, dimension)
35-
controlHams[ct] = tmpMat+tmpMat'
36-
end
37-
#Create random controlfields
38-
controlFields = randn(numControls, numTimeSteps)
39-
40-
#Control frequencies
41-
controlFreqs = randn(numControls)
42-
43-
return Hnat, controlHams, controlFields, controlFreqs
44-
end
27+
function sim_setup(dimension, numTimeSteps)
28+
α = -0.350
29+
J = 0.002
30+
Ω = 0.010
31+
Q1 = Duffing("q1", 0.0, α, dimension)
32+
Q2 = Duffing("q2", 1.0, α, dimension)
33+
34+
drive = MicrowaveControl("CR", 1.0, timeStep=1.0)
35+
sys = Q1 + Q2 + FlipFlop(Q1, Q2, J) + RotatingSemiClassicalDipole(Field(drive), Q2, Ω)
36+
37+
seq = ones(int(numTimeSteps))
38+
load_sequence!(drive, seq)
39+
40+
return sys
41+
end

0 commit comments

Comments
 (0)