Stack Configurations
- class squidasm.run.stack.config.StackConfig(**data)
Configuration for a single stack (i.e. end node).
- name:
strName of the stack.
- qdevice_typ:
strType of the quantum device.
- qdevice_cfg:
AnyConfiguration of the quantum device, allowed configuration depends on type.
- classmethod from_file(path)
Load the configuration from a YAML file.
- Return type:
- classmethod perfect_generic_config(name)
Create a configuration for a stack with a generic quantum device without any noise or errors.
- Return type:
Generic QDevice
The generic qdevice implements the following native gates:
X, Y, Z
Rot_X, Rot_Y, Rot_Z
H
CNOT, CZ
The rotation gates will rotate the qubit around the specified axis with a given angle.
- class squidasm.run.stack.config.GenericQDeviceConfig(**data)
The configuration for a generic quantum device.
- classmethod from_file(path)
Load the configuration from a YAML file.
- Return type:
Any
- classmethod perfect_config(num_qubits=100)
Create a configuration for a device without any noise or errors.
- Parameters:
num_qubits (
int) – number of qubits in the device.- Return type:
GenericQDeviceConfig
- num_qubits:
intNumber of qubits in the quantum device.
- num_comm_qubits:
intNumber of communication qubits. Not used.
- T1:
floatEnergy or longitudinal relaxation time in nanoseconds.
- T2:
floatDephasing or transverse relaxation time in nanoseconds.
- init_time:
floatQubit initialization time in nanoseconds.
- single_qubit_gate_time:
floatSingle qubit gate execution time in nanoseconds.
- two_qubit_gate_time:
floatTwo qubit gate execution time in nanoseconds.
- measure_time:
floatQubit measurement time in nanoseconds.
- single_qubit_gate_depolar_prob:
floatProbability of error in each single qubit gate operation.
- two_qubit_gate_depolar_prob:
floatProbability of error in each two qubit gate operation.
- external_params:
Optional[dict]Dictionary of extra parameters that have no direct impact on the qdevice model, but are physically associated with the qdevice. It is typically used for parameters that relate to the entanglement generation, such as emission_fidelity.
NV QDevice
The NV qdevice implements the following native gates:
Rot_X, Rot_Y, Rot_Z
CXDIR, CYDIR
The CXDIR and CYDIR gates will rotate the target qubit like a Rot_X or Rot_Y gate with a given angle, but the direction of the rotation is controlled by the control qubit. Specifically:
The topology of the NV qdevice only allows for CXDIR and CYDIR gates between the electron and the carbon qubits.
- class squidasm.run.stack.config.NVQDeviceConfig(**data)
The configuration for a nitrogen vacancy (NV) quantum device.
- classmethod from_file(path)
Load the configuration from a YAML file.
- Return type:
Any
- classmethod perfect_config(num_qubits=100)
Create a configuration for a device without any noise or errors.
- Parameters:
num_qubits (
int) – number of qubits in the device.- Return type:
NVQDeviceConfig
- num_qubits:
intNumber of qubits in the quantum device.
- electron_init_depolar_prob:
floatProbability of error during electron initialization.
- electron_single_qubit_depolar_prob:
floatProbability of error during electron single gate operation.
- prob_error_0:
floatProbability of measuring a 1 instead of 0 in an electron measurement.
- prob_error_1:
floatProbability of measuring a 0 instead of 1 in an electron measurement.
- carbon_init_depolar_prob:
floatProbability of error during carbon initialization.
- carbon_z_rot_depolar_prob:
floatProbability of error during carbon single gate operation.
- ec_gate_depolar_prob:
floatProbability of error during native NV two qubit operation between electron and carbon.
- electron_T1:
floatEnergy or longitudinal relaxation time in nanoseconds for the electron.
- electron_T2:
floatDephasing or transverse relaxation time in nanoseconds for the electron.
- carbon_T1:
floatEnergy or longitudinal relaxation time in nanoseconds for carbon qubits.
- carbon_T2:
floatDephasing or transverse relaxation time in nanoseconds for carbon qubits..
- carbon_init:
floatCarbon qubit initialization time in nanoseconds.
- carbon_rot_x:
floatCarbon x rotation gate time in nanoseconds.
- carbon_rot_y:
floatCarbon y rotation gate time in nanoseconds.
- carbon_rot_z:
floatCarbon z rotation gate time in nanoseconds.
- electron_init:
floatElectron qubit initialization time in nanoseconds.
- electron_rot_x:
floatElectron x rotation gate time in nanoseconds.
- electron_rot_y:
floatElectron y rotation gate time in nanoseconds.
- electron_rot_z:
floatElectron z rotation gate time in nanoseconds.
- ec_controlled_dir_x:
floatTwo qubit controlled x rotation gate time in nanoseconds.
- ec_controlled_dir_y:
floatTwo qubit controlled y rotation gate time in nanoseconds.
- measure:
floatElectron measurement time in nanoseconds.
- external_params:
Optional[dict]Dictionary of extra parameters that have no direct impact on the qdevice model, but are physically associated with the qdevice. It is typically used for parameters that relate to the entanglement generation, such as emission_fidelity.