nv_element#
Device elements for NV centers.
Currently only for the electronic qubit, but could be extended for other qubits (eg. carbon qubit).
Module Contents#
Classes#
Submodule containing the ports. |
|
Submodule with clock frequencies specifying the transitions to address. |
|
Convert the SpectroscopyOperation into a hermite 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. |
- class Ports(parent: qcodes.instrument.base.InstrumentBase, name: str, *, microwave: str | None = None, optical_control: str | None = None, optical_readout: str | None = None)[source]#
Bases:
qcodes.instrument.InstrumentModule
Submodule containing the ports.
- class ClockFrequencies(parent: qcodes.instrument.base.InstrumentBase, name: str, *, f01: float = math.nan, spec: float = math.nan, ge0: float = math.nan, ge1: float = math.nan, ionization: float = math.nan)[source]#
Bases:
qcodes.instrument.InstrumentModule
Submodule with clock frequencies specifying the transitions to address.
- f01[source]#
Microwave frequency to resonantly drive the electron spin state of a negatively charged diamond NV center from the 0-state to 1-state Doherty et al. [DMD+13].
- class SpectroscopyOperationHermiteMW(parent: qcodes.instrument.base.InstrumentBase, name: str, *, amplitude: float = math.nan, duration: float = 8e-06)[source]#
Bases:
qcodes.instrument.InstrumentModule
Convert the SpectroscopyOperation into a hermite 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
spec
inClockFrequencies
.
- class ResetSpinpump(parent: qcodes.instrument.base.InstrumentBase, name: str, amplitude: float = math.nan, duration: float = 5e-05)[source]#
Bases:
qcodes.instrument.InstrumentModule
Submodule containing parameters to run the spinpump laser with a square pulse.
This should reset the NV to the \(|0\rangle\) state.
- class Measure(parent: qcodes.instrument.base.InstrumentBase, name: str, *, pulse_amplitude: float = math.nan, pulse_duration: float = 2e-05, acq_duration: float = 5e-05, acq_delay: float = 0, acq_channel: Hashable = 0, time_source: quantify_scheduler.enums.TimeSource = TimeSource.FIRST, time_ref: quantify_scheduler.enums.TimeRef = TimeRef.START)[source]#
Bases:
qcodes.instrument.InstrumentModule
Submodule 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.
- time_source[source]#
Optional time source, in case the
Timetag
acquisition protocols are used. Please see that protocol for more information.
- time_ref[source]#
Optional time reference, in case
Timetag
orTimetagTrace
acquisition protocols are used. Please see those protocols for more information.
- class ChargeReset(parent: qcodes.instrument.base.InstrumentBase, name: str, *, amplitude: float = math.nan, duration: float = 2e-05)[source]#
Bases:
qcodes.instrument.InstrumentModule
Submodule containing parameters to run an ionization laser square pulse to reset the NV.
After resetting, the qubit should be in its negatively charged state.
- class CRCount(parent: qcodes.instrument.base.InstrumentBase, name: str, *, readout_pulse_amplitude: float = math.nan, spinpump_pulse_amplitude: float = math.nan, readout_pulse_duration: float = 2e-05, spinpump_pulse_duration: float = 2e-05, acq_duration: float = 5e-05, acq_delay: float = 0, acq_channel: Hashable = 0)[source]#
Bases:
qcodes.instrument.InstrumentModule
Submodule containing parameters to run the ionization laser and the spin pump laser.
This uses a photon count to perform a charge and resonance count.
- class RxyHermite(parent: qcodes.instrument.base.InstrumentBase, name: str, *, amp180: float = math.nan, skewness: float = 0, duration: float = 2e-08)[source]#
Bases:
qcodes.instrument.InstrumentModule
Submodule containing parameters to perform an Rxy operation using a Hermite pulse.
- class BasicElectronicNVElement(name: str, **kwargs)[source]#
Bases:
quantify_scheduler.device_under_test.device_element.DeviceElement
A device element representing an electronic qubit in an NV center.
The submodules contain the necessary qubit 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 quantify_scheduler import BasicElectronicNVElement qubit = BasicElectronicNVElement("q2") qubit.rxy.amp180(0.1) qubit.measure.pulse_amplitude(0.25) qubit.measure.pulse_duration(300e-9) qubit.measure.acq_delay(430e-9) qubit.measure.acq_duration(1e-6) ...
Ellipsis
- spectroscopy_operation: SpectroscopyOperationHermiteMW[source]#
Submodule
SpectroscopyOperationHermiteMW
.
- clock_freqs: ClockFrequencies[source]#
Submodule
ClockFrequencies
.
- reset: ResetSpinpump[source]#
Submodule
ResetSpinpump
.
- charge_reset: ChargeReset[source]#
Submodule
ChargeReset
.
- pulse_compensation: quantify_scheduler.device_under_test.transmon_element.PulseCompensationModule[source]#
Submodule
PulseCompensationModule
.
- rxy: RxyHermite[source]#
Submodule
Rxy
.
- _generate_config() dict[str, dict[str, quantify_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() quantify_scheduler.backends.graph_compilation.DeviceCompilationConfig [source]#
Generate a valid device config for the quantify-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.