4 multi control
In [ ]:
Copied!
import numpy as np
import qubex as qx
from qubex.simulator import Control, Coupling, QuantumSimulator, QuantumSystem, Transmon
import numpy as np
import qubex as qx
from qubex.simulator import Control, Coupling, QuantumSimulator, QuantumSystem, Transmon
In [ ]:
Copied!
qubits = [
Transmon(
label="Q01",
dimension=3,
frequency=7.648,
anharmonicity=-0.33,
relaxation_rate=0.00005,
dephasing_rate=0.00005,
),
Transmon(
label="Q02",
dimension=3,
frequency=8.275,
anharmonicity=-0.33,
relaxation_rate=0.00005,
dephasing_rate=0.00005,
),
]
system = QuantumSystem(
objects=qubits,
couplings=[
Coupling(
pair=("Q01", "Q02"),
strength=0.01,
),
],
)
simulator = QuantumSimulator(system)
qubits = [
Transmon(
label="Q01",
dimension=3,
frequency=7.648,
anharmonicity=-0.33,
relaxation_rate=0.00005,
dephasing_rate=0.00005,
),
Transmon(
label="Q02",
dimension=3,
frequency=8.275,
anharmonicity=-0.33,
relaxation_rate=0.00005,
dephasing_rate=0.00005,
),
]
system = QuantumSystem(
objects=qubits,
couplings=[
Coupling(
pair=("Q01", "Q02"),
strength=0.01,
),
],
)
simulator = QuantumSimulator(system)
In [ ]:
Copied!
system.hamiltonian
system.hamiltonian
In [ ]:
Copied!
duration = 30
tau = 10
x180 = qx.pulse.FlatTop(
duration=duration,
amplitude=np.pi / (duration - tau),
tau=tau,
)
y180 = x180.shifted(np.pi / 2)
schedule = qx.PulseSchedule()
with schedule as s:
s.add("Q01", x180)
s.barrier()
s.add("Q01", y180)
s.add("Q02", x180)
s.add("Q02", y180)
schedule.plot()
waveforms = schedule.get_sampled_sequences()
duration = 30
tau = 10
x180 = qx.pulse.FlatTop(
duration=duration,
amplitude=np.pi / (duration - tau),
tau=tau,
)
y180 = x180.shifted(np.pi / 2)
schedule = qx.PulseSchedule()
with schedule as s:
s.add("Q01", x180)
s.barrier()
s.add("Q01", y180)
s.add("Q02", x180)
s.add("Q02", y180)
schedule.plot()
waveforms = schedule.get_sampled_sequences()
In [ ]:
Copied!
control_0 = Control(
target=qubits[0].label,
frequency=qubits[0].frequency,
waveform=waveforms[qubits[0].label],
)
control_0.plot()
control_1 = Control(
target=qubits[1].label,
frequency=qubits[1].frequency,
waveform=waveforms[qubits[1].label],
)
control_1.plot()
control_0 = Control(
target=qubits[0].label,
frequency=qubits[0].frequency,
waveform=waveforms[qubits[0].label],
)
control_0.plot()
control_1 = Control(
target=qubits[1].label,
frequency=qubits[1].frequency,
waveform=waveforms[qubits[1].label],
)
control_1.plot()
In [ ]:
Copied!
initial_state = system.state(
{
"Q01": "0",
"Q02": "1",
}
)
initial_state
initial_state = system.state(
{
"Q01": "0",
"Q02": "1",
}
)
initial_state
In [ ]:
Copied!
result = simulator.mesolve(
controls=[control_0, control_1],
initial_state=initial_state,
)
result = simulator.mesolve(
controls=[control_0, control_1],
initial_state=initial_state,
)
In [ ]:
Copied!
final_state = result.states[-1]
final_state
final_state = result.states[-1]
final_state
In [ ]:
Copied!
result.plot_population_dynamics()
result.plot_population_dynamics(qubits[0].label)
result.plot_population_dynamics(qubits[1].label)
result.plot_population_dynamics()
result.plot_population_dynamics(qubits[0].label)
result.plot_population_dynamics(qubits[1].label)
In [ ]:
Copied!
result.display_bloch_sphere(qubits[0].label)
result.display_bloch_sphere(qubits[1].label)
result.display_bloch_sphere(qubits[0].label)
result.display_bloch_sphere(qubits[1].label)