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 - specin- ClockFrequencies.
- 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 - Timetagacquisition protocols are used. Please see that protocol for more information.
 - time_ref[source]#
- Optional time reference, in case - Timetagor- TimetagTraceacquisition 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 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 quantify_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: 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.