common.title

Docs
Quantum Circuit
TYTAN CLOUD

QUANTUM GAMING


Desktop RAG

Overview
Terms of service

Privacy policy

Contact
Research

Sign in
Sign up
common.title

中性原子量子シミュレータBloqade.jlをみてみる。その3。断熱時間発展2。

Yuichiro Minato

2022/10/30 13:05

前回はオメガ固定でやりました。今回は両方を変化させてみてみます。量子ビットの並びは前回に続いて一次元系です。

今回もこちらからとりました。

https://queracomputing.github.io/Bloqade.jl/dev/tutorials/2.adiabatic/main/

時間は3マイクロ秒。最初にオメガの時間発展を設定します。

total_time = 3.0;
Ω_max = 2π * 4;
Ω = piecewise_linear(clocks = [0.0, 0.1, 2.1, 2.2, total_time], values = [0.0, Ω_max, Ω_max, 0, 0]);

そして、デルタの設定です。

U1 = -2π * 10;
U2 = 2π * 10;
Δ = piecewise_linear(clocks = [0.0, 0.6, 2.1, total_time], values = [U1, U1, U2, U2]);

プロットしてみます。

fig, (ax1, ax2) = plt.subplots(ncols = 2, figsize = (12, 4))
Bloqade.plot!(ax1, Ω)
ax1.set_ylabel("Ω/2π (MHz)")
Bloqade.plot!(ax2, Δ)
ax2.set_ylabel("Δ/2π (MHz)")
fig

今回も9量子ビット、量子ビット間の距離は5.72マイクロメートル

nsites = 9
atoms = generate_sites(ChainLattice(), nsites, scale = 5.72)

h = rydberg_h(atoms; Δ, Ω)

nqubits: 9
+
├─ [+] ∑ 2π ⋅ 8.627e5.0/|r_i-r_j|^6 n_i n_j
├─ [+] Ω(t) ⋅ ∑ σ^x_i
└─ [-] Δ(t) ⋅ ∑ n_i

各パラメータが見れます。

densities = []
for _ in TimeChoiceIterator(integrator, 0.0:1e-3:total_time)
push!(densities, rydberg_density(reg))
end
D = hcat(densities...);

fig, ax = plt.subplots(figsize = (10, 4))
shw = ax.imshow(real(D), interpolation = "nearest", aspect = "auto", extent = [0, total_time, 0.5, nsites + 0.5])
ax.set_xlabel("time (μs)")
ax.set_ylabel("site")
ax.set_xticks(0:0.2:total_time)
ax.set_yticks(1:nsites)
bar = fig.colorbar(shw)
fig

今度は縦軸が量子ビットで横軸が時間で、時間変化が見れます。

時間がたつごとに奇数量子ビットが1になっていくのが見れました。

© 2025, blueqat Inc. All rights reserved