qblox_scheduler.device_under_test.nv_element#
Device elements for NV centers.
Currently only for the electronic qubit, but could be extended for other qubits (eg. carbon qubit).
Classes#
Submodule containing the ports. |
|
Submodule with clock frequencies specifying the transitions to address. |
|
Convert the SpectroscopyOperation into a hermite, square, or gaussian microwave pulse. |
|
Submodule containing parameters to run the spinpump laser with a square pulse. |
|
Submodule containing parameters to read out the spin state of the NV center. |
|
Submodule containing parameters to run an ionization laser square pulse to reset the NV. |
|
Submodule containing parameters to run the ionization laser and the spin pump laser. |
|
Submodule containing parameters to perform an Rxy operation |
|
A device element representing an electronic qubit in an NV center. |
Module Contents#
- class Ports(/, name, *, parent: SchedulerBaseModel | None = None, **data: Any)[source]#
Bases:
qblox_scheduler.structure.model.SchedulerSubmoduleSubmodule containing the ports.
- class ClockFrequencies(/, name, *, parent: SchedulerBaseModel | None = None, **data: Any)[source]#
Bases:
qblox_scheduler.structure.model.SchedulerSubmoduleSubmodule with clock frequencies specifying the transitions to address.
- f01: qblox_scheduler.structure.types.Frequency = None[source]#
Microwave frequency to resonantly drive the electron spin state of a negatively charged diamond NV center from the 0-state to 1-state :cite:t:`DOHERTY20131`.
- spec: qblox_scheduler.structure.types.Frequency = None[source]#
Parameter that is swept for a spectroscopy measurement. It does not track properties of the device element.
- ge0: qblox_scheduler.structure.types.Frequency = None[source]#
Transition frequency from the m_s=0 state to the E_x,y state.
- ge1: qblox_scheduler.structure.types.Frequency = None[source]#
Transition frequency from the m_s=+-1 state to any of the A_1, A_2, or E_1,2 states.
- ionization: qblox_scheduler.structure.types.Frequency = None[source]#
Frequency of the green ionization laser for manipulation of the NVs charge state.
- class SpectroscopyOperationNV(/, name, *, parent: SchedulerBaseModel | None = None, **data: Any)[source]#
Bases:
qblox_scheduler.structure.model.SchedulerSubmoduleConvert the SpectroscopyOperation into a hermite, square, or gaussian microwave pulse.
This class contains parameters with a certain amplitude and duration for spin-state manipulation.
The modulation frequency of the pulse is determined by the clock
specinClockFrequencies.- amplitude: qblox_scheduler.structure.types.Amplitude = None[source]#
Amplitude of spectroscopy pulse.
- duration: qblox_scheduler.structure.types.Duration = None[source]#
Duration of the MW pulse.
- class ResetSpinpump(/, name, *, parent: SchedulerBaseModel | None = None, **data: Any)[source]#
Bases:
qblox_scheduler.structure.model.SchedulerSubmoduleSubmodule containing parameters to run the spinpump laser with a square pulse.
This should reset the NV to the \(|0\rangle\) state.
- amplitude: qblox_scheduler.structure.types.Amplitude = None[source]#
Amplitude of reset pulse.
- duration: qblox_scheduler.structure.types.Duration = None[source]#
Duration of reset pulse.
- class Measure(/, name, *, parent: SchedulerBaseModel | None = None, **data: Any)[source]#
Bases:
qblox_scheduler.structure.model.SchedulerSubmoduleSubmodule containing parameters to read out the spin state of the NV center.
Excitation with a readout laser from the \(|0\rangle\) to an excited state. Acquisition of photons when decaying back into the \(|0\rangle\) state.
- pulse_amplitude: qblox_scheduler.structure.types.Amplitude = None[source]#
Amplitude of readout pulse.
- pulse_duration: qblox_scheduler.structure.types.Duration = None[source]#
Readout pulse duration.
- acq_duration: qblox_scheduler.structure.types.Duration = None[source]#
Duration of the acquisition.
- acq_delay: qblox_scheduler.structure.types.Delay = None[source]#
Delay between the start of the readout pulse and the start of the acquisition.
- acq_channel: collections.abc.Hashable = None[source]#
Acquisition channel of this device element.
- time_source: qblox_scheduler.enums.TimeSource = None[source]#
Optional time source, in case the
Timetagacquisition protocols are used. Please see that protocol for more information.
- time_ref: qblox_scheduler.enums.TimeRef = None[source]#
Optional time reference, in case
TimetagorTimetagTraceacquisition protocols are used. Please see those protocols for more information.
- class ChargeReset(/, name, *, parent: SchedulerBaseModel | None = None, **data: Any)[source]#
Bases:
qblox_scheduler.structure.model.SchedulerSubmoduleSubmodule containing parameters to run an ionization laser square pulse to reset the NV.
After resetting, the qubit should be in its negatively charged state.
- amplitude: qblox_scheduler.structure.types.Amplitude = None[source]#
Amplitude of charge reset pulse.
- duration: qblox_scheduler.structure.types.Duration = None[source]#
Duration of the charge reset pulse.
- class CRCount(/, name, *, parent: SchedulerBaseModel | None = None, **data: Any)[source]#
Bases:
qblox_scheduler.structure.model.SchedulerSubmoduleSubmodule containing parameters to run the ionization laser and the spin pump laser.
This uses a photon count to perform a charge and resonance count.
- readout_pulse_amplitude: qblox_scheduler.structure.types.Amplitude = None[source]#
Amplitude of readout pulse.
- spinpump_pulse_amplitude: qblox_scheduler.structure.types.Amplitude = None[source]#
Amplitude of spin-pump pulse.
- readout_pulse_duration: qblox_scheduler.structure.types.Duration = None[source]#
Readout pulse duration.
- spinpump_pulse_duration: qblox_scheduler.structure.types.Duration = None[source]#
Spin-pump pulse duration.
- acq_duration: qblox_scheduler.structure.types.Duration = None[source]#
Duration of the acquisition.
- acq_delay: qblox_scheduler.structure.types.Delay = None[source]#
Delay between the start of the readout pulse and the start of the acquisition.
- acq_channel: collections.abc.Hashable = None[source]#
Default acquisition channel of this device element.
- class RxyNV(/, name, *, parent: SchedulerBaseModel | None = None, **data: Any)[source]#
Bases:
qblox_scheduler.structure.model.SchedulerSubmoduleSubmodule containing parameters to perform an Rxy operation using a Hermite or Gaussian pulse.
- amp180: qblox_scheduler.structure.types.Amplitude = None[source]#
Amplitude of \(\pi\) pulse.
- duration: qblox_scheduler.structure.types.Duration = None[source]#
Duration of the pi pulse.
- class BasicElectronicNVElement(/, name, **data: Any)[source]#
Bases:
qblox_scheduler.device_under_test.device_element.DeviceElementA device element representing an electronic qubit in an NV center.
The submodules contain the necessary device element parameters to translate higher-level operations into pulses. Please see the documentation of these classes.
Examples
Qubit parameters can be set through submodule attributes
from qblox_scheduler import BasicElectronicNVElement device_element = BasicElectronicNVElement("q2") device_element.rxy.amp180 = 0.1 device_element.measure.pulse_amplitude = 0.25 device_element.measure.pulse_duration = 300e-9 device_element.measure.acq_delay = 430e-9 device_element.measure.acq_duration = 1e-6 ...
Ellipsis
- spectroscopy_operation: SpectroscopyOperationNV[source]#
- clock_freqs: ClockFrequencies[source]#
- reset: ResetSpinpump[source]#
- charge_reset: ChargeReset[source]#
- pulse_compensation: qblox_scheduler.device_under_test.transmon_element.PulseCompensationModule[source]#
- _generate_config() dict[str, dict[str, qblox_scheduler.backends.graph_compilation.OperationCompilationConfig]][source]#
Generate part of the device configuration specific to a single qubit.
This method is intended to be used when this object is part of a device object containing multiple elements.
- generate_device_config() qblox_scheduler.backends.graph_compilation.DeviceCompilationConfig[source]#
Generate a valid device config for the qblox-scheduler.
This makes use of the
compile_circuit_to_device_with_config_validation()function.This enables the settings of this qubit to be used in isolation.