Source code for braket.device_schema.quera.quera_ahs_paradigm_properties_v1

# Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License"). You
# may not use this file except in compliance with the License. A copy of
# the License is located at
#
#     http://aws.amazon.com/apache2.0/
#
# or in the "license" file accompanying this file. This file is
# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
# ANY KIND, either express or implied. See the License for the specific
# language governing permissions and limitations under the License.

from decimal import Decimal
from typing import Annotated, List, Optional, Tuple

from pydantic.v1 import BaseModel, Field

from braket.schema_common import BraketSchemaBase, BraketSchemaHeader


[docs] class Area(BaseModel): """ The area of the FOV Attributes: width (Decimal): Largest allowed difference between x coordinates of any two sites (measured in meters) height (Decimal): Largest allowed difference between y coordinates of any two sites (measured in meters) """ width: Decimal height: Decimal
[docs] class Geometry(BaseModel): """ Spacing or number of sites or rows Attributes: spacingRadialMin (Decimal): Minimum radial spacing between any two sites in the lattice (measured in meters) spacingVerticalMin (Decimal): Minimum spacing between any two rows in the lattice (measured in meters) positionResolution (Decimal): Resolution with which site positions can be specified (measured in meters) numberSitesMax (int): Maximum number of sites that can be placed in the lattice """ spacingRadialMin: Decimal spacingVerticalMin: Decimal positionResolution: Decimal numberSitesMax: int
[docs] class Lattice(BaseModel): """ Spacing or number of sites or rows Attributes: area : The rectangular area available for arranging atomic sites geometry : Limitations of atomic site arrangements """ area: Area geometry: Geometry
[docs] class RydbergGlobal(BaseModel): """ Constraints for the parameters of the driving field that drives the ground-to-Rydberg transition uniformly on all atoms Attributes: rabiFrequencyRange (Tuple[Decimal,Decimal]): Achievable Rabi frequency range for the global Rydberg drive waveform (measured in rad/s) rabiFrequencyResolution (Decimal): Resolution with which global Rabi frequency amplitude can be specified (measured in rad/s) rabiFrequencySlewRateMax (Decimal): Maximum slew rate for changing the global Rabi frequency (measured in (rad/s)/s) detuningRange(Tuple[Decimal,Decimal]): Achievable detuning range for the global Rydberg pulse (measured in rad/s) detuningResolution(Decimal): Resolution with which global detuning can be specified (measured in rad/s) detuningSlewRateMax (Decimal): Maximum slew rate for detuning (measured in (rad/s)/s) phaseRange(Tuple[Decimal,Decimal]): Achievable phase range for the global Rydberg pulse (measured in rad) phaseResolution(Decimal): Resolution with which global Rabi frequency phase can be specified (measured in rad) timeResolution(Decimal): Resolution with which times for global Rydberg drive parameters can be specified (measured in s) timeDeltaMin(Decimal): Minimum time step with which times for global Rydberg drive parameters can be specified (measured in s) timeMin (Decimal): Minimum duration of Rydberg drive (measured in s) timeMax (Decimal): Maximum duration of Rydberg drive (measured in s) """ rabiFrequencyRange: Tuple[Decimal, Decimal] rabiFrequencyResolution: Decimal rabiFrequencySlewRateMax: Decimal detuningRange: Tuple[Decimal, Decimal] detuningResolution: Decimal detuningSlewRateMax: Decimal phaseRange: Tuple[Decimal, Decimal] phaseResolution: Decimal timeResolution: Decimal timeDeltaMin: Decimal timeMin: Decimal timeMax: Decimal
[docs] class RydbergLocal(BaseModel): """ Constraints for the parameters of the local detuning Attributes: detuningRange(Tuple[Decimal,Decimal]): Achievable detuning range for the local detuning pattern (measured in rad/s) detuningSlewRateMax(Decimal): Maximum slew rate for changing the local detuning (measured in (rad/s)/s) siteCoefficientRange(Tuple[Decimal,Decimal]): Achievable site coefficient range for the local detuning pattern (unitless) numberLocalDetuningSitesMax(Decimal): Maximum number of sites available for the local detuning pattern spacingRadialMin(Decimal): Minimum radial spacing between any two sites with non-zero local detuning (measured in meter) timeResolution(Decimal): Resolution with which times for local detuning time series can be specified (measured in s) timeDeltaMin(Decimal): Minimum step between times for local detuning time series (measured in s) """ detuningRange: Tuple[Decimal, Decimal] detuningSlewRateMax: Decimal siteCoefficientRange: Tuple[Decimal, Decimal] numberLocalDetuningSitesMax: Decimal spacingRadialMin: Decimal timeResolution: Decimal timeDeltaMin: Decimal
[docs] class Rydberg(BaseModel): """ Parameters determining the limitations of the Rydberg Hamiltonian Attributes: c6Coefficient (Decimal): Rydberg-Rydberg C6 interaction coefficient (measured in (rad/s)*m^6) rydbergGlobal (RydbergGlobal): Rydberg Global rydbergLocal (Optional[RydbergLocal]): Rydberg Local. Defaults to None. """ c6Coefficient: Decimal rydbergGlobal: RydbergGlobal rydbergLocal: Optional[RydbergLocal] = None
[docs] class PerformanceLattice(BaseModel): """ Uncertainties of atomic site arrangements Attributes: positionErrorAbs (Decimal): Total error of the atom position during coherent evolution relative to the lab frame, and combines lattice site position and thermal atom position errors. (measured in meters) sitePositionError (Decimal): Systematic, pattern-dependent error between specified and actual lattice site positions. (measured in meters) atomPositionError (Decimal): Random error in the atom position during coherent evolution as a result of thermal motion. (measured in meters) fillingErrorTypical (Annotated[Decimal, Field(ge=0, le=1)]): Typical probability of failing to occupy a site specified by user as 'filled'. These probabilities are dependent on the pattern and site position within the pattern. Normalized to 1. fillingErrorWorst (Annotated[Decimal, Field(ge=0, le=1)]): Worst-case probability of failing to occupy a site specified by user as 'filled'. Upper bound that includes the pattern-dependence and site position dependence. Normalized to 1. vacancyErrorTypical (Annotated[Decimal, Field(ge=0, le=1)]): Typical probability of erroneously filling a site specified by user as 'unfilled'. These probabilities can be dependent on the pattern and site position within the pattern, and can change slightly with time. Normalized to 1. vacancyErrorWorst (Annotated[Decimal, Field(ge=0, le=1)]): Worst-case probability of erroneously filling a site specified by user as 'unfilled'. Upper bound that includes the pattern-dependence, site position dependence and time-variation of this probability. Normalized to 1. atomLossProbabilityTypical (Annotated[Decimal, Field(ge=0, le=1)]): Typical probability of atom loss from a filled site between the first and second image. These probabilities can be dependent on the pattern and site position within the pattern, and can change slightly with time. Normalized to 1. atomLossProbabilityWorst (Annotated[Decimal, Field(ge=0, le=1)]): Worst-case probability of atom loss from a filled site between the first and second image. Upper bound that includes the pattern-dependence, site position dependence and time-variation of this probability. Normalized to 1. atomCaptureProbabilityTypical (Annotated[Decimal, Field(ge=0, le=1)]): Typical probability of atom capture into an empty site between the first and second image. These probabilities can be dependent on the pattern and site position within the pattern, and can change slightly with time. Normalized to 1. atomCaptureProbabilityWorst (Annotated[Decimal, Field(ge=0, le=1)]): Worst-case probability of atom capture into an empty site between the first and second image. Upper bound that includes the pattern-dependence, site position dependence and time-variation of this probability. Normalized to 1. atomDetectionErrorFalsePositiveTypical (Annotated[Decimal, Field(ge=0, le=1)]): Typical probability of a false-positive atom detection error. These probabilities can be dependent on the pattern and site position within the pattern, and can change slightly with time. Normalized to 1. atomDetectionErrorFalsePositiveWorst (Annotated[Decimal, Field(ge=0, le=1)]): Worst-case probability of a false-positive atom detection error. Upper bound that includes the pattern-dependence, site position dependence and time-variation of this probability. Normalized to 1. atomDetectionErrorFalseNegativeTypical (Annotated[Decimal, Field(ge=0, le=1)]): Typical probability of a false-negative atom detection error. These probabilities can be dependent on the pattern and site position within the pattern, and can change slightly with time. Normalized to 1. atomDetectionErrorFalseNegativeWorst (Annotated[Decimal, Field(ge=0, le=1)]): Worst-case probability of a false-negative atom detection error. Upper bound that includes the pattern-dependence, site position dependence and time-variation of this probability. Normalized to 1. """ positionErrorAbs: Decimal sitePositionError: Decimal atomPositionError: Decimal fillingErrorTypical: Annotated[Decimal, Field(ge=0, le=1)] fillingErrorWorst: Annotated[Decimal, Field(ge=0, le=1)] vacancyErrorTypical: Annotated[Decimal, Field(ge=0, le=1)] vacancyErrorWorst: Annotated[Decimal, Field(ge=0, le=1)] atomLossProbabilityTypical: Annotated[Decimal, Field(ge=0, le=1)] atomLossProbabilityWorst: Annotated[Decimal, Field(ge=0, le=1)] atomCaptureProbabilityTypical: Annotated[Decimal, Field(ge=0, le=1)] atomCaptureProbabilityWorst: Annotated[Decimal, Field(ge=0, le=1)] atomDetectionErrorFalsePositiveTypical: Annotated[Decimal, Field(ge=0, le=1)] atomDetectionErrorFalsePositiveWorst: Annotated[Decimal, Field(ge=0, le=1)] atomDetectionErrorFalseNegativeTypical: Annotated[Decimal, Field(ge=0, le=1)] atomDetectionErrorFalseNegativeWorst: Annotated[Decimal, Field(ge=0, le=1)]
[docs] class RabiCorrection(BaseModel): """ Correction factors for calculating the fraction of the expected Rabi oscillation frequency as a function of ramp time, in the absence of any local detuning pattern. Attributes: rampTime (Decimal): The ramp time. (measured in s) rabiCorrection (Annotated[Decimal, Field(ge=0.0, le=1.0)]): The fraction of the expected rabi oscillation frequency. Normalized to the range [0.0, 1.0]. """ rampTime: Decimal rabiCorrection: Annotated[Decimal, Field(ge=0.0, le=1.0)]
[docs] class PerformanceRydbergGlobal(BaseModel): """ Performance metrics for the global driving field Attributes: rabiFrequencyErrorRel (Decimal): Total error in the Rabi frequency due to inhomogeneity and variations in time, relative to the specified value. (unitless) rabiFrequencyGlobalErrorRel (Decimal): RMS Rabi frequency variation in time as a relative value. (unitless) rabiFrequencyInhomogeneityRel (Decimal): RMS Rabi frequency inhomogeneity over the user region, relative to the specified value. (unitless) groundDetectionError (Annotated[Decimal, Field(ge=0, le=1)]): Probability of mis-detecting a ground-state atom as a Rydberg-state atom. (unitless) rydbergDetectionError (Annotated[Decimal, Field(ge=0, le=1)]): Probability of mis-detecting a Rydberg-state atom as a ground-state atom. (unitless) groundPrepError (Annotated[Decimal, Field(ge=0, le=1)]): Probability of failing to initialize an atom in the ground state prior to user-programmed coherent evolution, in the absence of any local detuning pattern. Normalized to 1. rydbergPrepErrorBest (Annotated[Decimal, Field(ge=0, le=1)]): Probability of failing to initialize an atom in the Rydberg state by an optimal (for that site) user specified pi-pulse from the ground state at maximum Rabi frequency, in the absence of any local detuning pattern. Normalized to 1. rydbergPrepErrorWorst (Annotated[Decimal, Field(ge=0, le=1)]): Worst-case probability of failing to initialize an atom in the Rydberg state by a user specified pi-pulse from the ground state at maximum Rabi frequency, optimized for a different site, in the absence of any local detuning pattern. Normalized to 1. T1Single (Decimal): Typical lifetime of the Rydberg state for a single non-interacting qubit in the absence of drive, as measured by a pi-wait-pi protocol. (measured in s) T1Ensemble (Decimal): Lifetime of the Rydberg state for an ensemble of non-interacting qubits distributed over the user region, in the absence of drive, as measured by a pi-wait-pi protocol. (measured in s) T2StarSingle (Decimal): Typical dephasing time of a single non-interacting qubit in the absence of drive, as measured by a Ramsey protocol. Includes coherent and incoherent processes. (measured in s) T2StarEnsemble (Decimal): Dephasing time of an ensemble of non-interacting qubits distributed over the user region, in the absence of drive, as measured by a Ramsey protocol. Includes coherent and incoherent processes. (measured in s) T2EchoSingle (Decimal): Typical dephasing time of a single non-interacting qubit in the absence of drive, as measured by a spin-echo dynamical decoupling protocol. This measurement isolates the effects of incoherent processes. (measured in s) T2EchoEnsemble (Decimal): Dephasing time of an ensemble of non-interacting qubits distributed over the user region, in the absence of drive, as measured by a spin-echo dynamical decoupling protocol. This measurement isolates the effects of incoherent processes. (measured in s) T2RabiSingle (Decimal): Typical decoherence time of a single driven qubit, as measured by a Rabi oscillation protocol with variable pulse duration a maximum Rabi frequency. Includes coherent and incoherent processes. (measured in s) T2RabiEnsemble (Decimal): Decoherence time of an ensemble of non-interacting driven qubits distributed over the user region, as measured by a Rabi oscillation protocol with variable pulse duration at maximum Rabi frequency. Includes coherent and incoherent processes. (measured in s) T2BlockadedRabiSingle (Decimal): Typical decoherence time of a single pair of driven blockaded qubits, as measured by a Rabi oscillation protocol with variable pulse duration a maximum Rabi frequency. Includes coherent and incoherent processes. (measured in s) T2BlockadedRabiEnsemble (Decimal): Decoherence time of an ensemble of pairs of driven blockaded qubits distributed over the user region (different pairs do not interact with each other), as measured by a Rabi oscillation protocol with variable pulse duration at maximum Rabi frequency. Includes coherent and incoherent processes. (measured in s) detuningError (Decimal): Systematic error from specified value of the global detuning averaged over the user region. (measured in rad/s) detuningInhomogeneity (Decimal): RMS inhomogeneity of the detuning over the user region. (measured in rad/s) rabiAmplitudeRampCorrection (List[RabiCorrection]): dynamic correction curve of effective single-qubit on-resonant Rabi oscillation frequency driven by a triangular amplitude waveform, relative to the specified value. """ rabiFrequencyErrorRel: Decimal rabiFrequencyGlobalErrorRel: Decimal rabiFrequencyInhomogeneityRel: Decimal groundDetectionError: Annotated[Decimal, Field(ge=0, le=1)] rydbergDetectionError: Annotated[Decimal, Field(ge=0, le=1)] groundPrepError: Annotated[Decimal, Field(ge=0, le=1)] rydbergPrepErrorBest: Annotated[Decimal, Field(ge=0, le=1)] rydbergPrepErrorWorst: Annotated[Decimal, Field(ge=0, le=1)] T1Single: Decimal T1Ensemble: Decimal T2StarSingle: Decimal T2StarEnsemble: Decimal T2EchoSingle: Decimal T2EchoEnsemble: Decimal T2RabiSingle: Decimal T2RabiEnsemble: Decimal T2BlockadedRabiSingle: Decimal T2BlockadedRabiEnsemble: Decimal detuningError: Decimal detuningInhomogeneity: Decimal rabiAmplitudeRampCorrection: List[RabiCorrection]
[docs] class PerformanceRydbergLocal(BaseModel): """ Performance metrics for the local detuning Attributes: detuningErrorRms(Decimal): Shot-to-shot RMS error on the time component of the local detuning values (local detuning waveform) siteCoefficientErrorRms(Decimal): Site-to-site RMS error on the spatial component of the local detuning values (site coefficients) errorRateIncoherentBright(Decimal): Incoherent error rate for locally-addressed sites at max local detuning errorRateIncoherentDark(Decimal): Incoherent error rate at a site that is not locally-addressed due to crosstalk from a single locally-addressed site at min distance and at max local detuning crosstalk(Decimal): Fractional local detuning induced at a site that is not locally-addressed due to crosstalk from a single locally-addressed site """ detuningErrorRms: Decimal siteCoefficientErrorRms: Decimal errorRateIncoherentBright: Decimal errorRateIncoherentDark: Decimal crosstalk: Decimal
[docs] class PerformanceRydberg(BaseModel): """ Performance metrics of the global driving field and the local detuning Attributes: rydbergGlobal (PerformanceRydbergGlobal): Performance of Rydberg Global rydbergLocal (Optional[PerformanceRydbergLocal]): Performance of Rydberg Local """ rydbergGlobal: PerformanceRydbergGlobal rydbergLocal: Optional[PerformanceRydbergLocal] = None
[docs] class Performance(BaseModel): """ Parameters determining the limitations of the QuEra device Attributes: performanceLattice (PerformanceLattice): Uncertainties of atomic site arrangements performanceRydberg (PerformanceRydberg): Parameters determining the limitations the Rydberg simulator """ lattice: PerformanceLattice rydberg: PerformanceRydberg
[docs] class QueraAhsParadigmProperties(BraketSchemaBase): """ This defines the properties common to ahs Quera devices. Attributes: area: the area of the FOV geometry: spacing or number of sites or rows qubits: the number of qubits rydberg: the constraint of rydberg performance: the performance of rydberg or atom detection Examples: >>> import json >>> input_json = { ... "braketSchemaHeader": { ... "name": "braket.device_schema.quera.quera_ahs_paradigm_properties", ... "version": "1", ... }, ... "qubitCount": 256, ... "lattice":{ ... "area": { ... "width": 100.0e-6, ... "height": 100.0e-6, ... }, ... "geometry": { ... "spacingRadialMin": 4.0e-6, ... "spacingVerticalMin": 2.5e-6, ... "positionResolution": 1e-7, ... "numberSitesMax": 256, ... } ... }, ... "rydberg": { ... "c6Coefficient": 2*math.pi(3.14) *862690, ... "rydbergGlobal": { ... "rabiFrequencyRange": [0, 2*math.pi(3.14) *4.0e6], ... "rabiFrequencyResolution": 400 ... "rabiFrequencySlewRateMax": 2*math.pi(3.14) *4e6/100e-9, ... "detuningRange": [-2*math.pi(3.14) *20.0e6,2*math.pi(3.14) *20.0e6], ... "detuningResolution": 0.2, ... "detuningSlewRateMax": 2*math.pi(3.14) *40.0e6/100e-9, ... "phaseRange": [-99,99], ... "phaseResolution": 5e-7, ... "timeResolution": 1e-9, ... "timeDeltaMin": 1e-8, ... "timeMin": 0, ... "timeMax": 4.0e-6, ... }, ... "rydbergLocal" : { ... "detuningRange": [0, 2 * math.pi * 50.0e6], ... "detuningSlewRateMax": 0.2, ... "siteCoefficientRange": [0.0, 0.2], ... "numberLocalDetuningSitesMax": 0.2, ... "spacingRadialMin": 0.2, ... "timeResolution": 0.2, ... "timeDeltaMin": 0.3, ... } ... }, ... "performance": { ... "lattice":{ ... "positionErrorAbs": 0.025e-6, ... "sitePositionError": 0.025e-6, ... "atomPositionError": 0.025e-6, ... "fillingErrorTypical": 0.005, ... "fillingErrorWorst": 0.01, ... "vacancyErrorTypical": 0.005, ... "vacancyErrorWorst": 0.005, ... "atomLossProbabilityTypical": 0.01, ... "atomLossProbabilityWorst": 0.01, ... "atomCaptureProbabilityTypical": 0.01, ... "atomCaptureProbabilityWorst": 0.01, ... "atomDetectionErrorFalsePositiveTypical": 0.01, ... "atomDetectionErrorFalsePositiveWorst": 0.01, ... "atomDetectionErrorFalseNegativeTypical": 0.01, ... "atomDetectionErrorFalseNegativeWorst": 0.01, ... }, ... "rydberg":{ ... "rydbergGlobal":{ ... "rabiFrequencyErrorRel:": 0.01, ... "rabiFrequencyGlobalErrorRel": 0.01, ... "rabiFrequencyInhomogeneityRel": 0.01, ... "groundDetectionError": 0.01, ... "rydbergDetectionError":0.1, ... "groundPrepError": 0.01, ... "rydbergPrepErrorBest": 0.05, ... "rydbergPrepErrorWorst": 0.05, ... "T1Single": 100e-6, ... "T1Ensemble": 100e-6, ... "T2StarSingle": 5e-6, ... "T2StarEnsemble": 5e-6, ... "T2EchoSingle": 5e-6, ... "T2EchoEnsemble": 5e-6, ... "T2RabiSingle": 5e-6, ... "T2RabiEnsemble": 5e-6, ... "T2BlockadedRabiSingle":5e-6, ... "T2BlockadedRabiEnsemble": 5e-6, ... "detuningError": 1e6, ... "detuningInhomogeneity": 1e6, ... "rabiAmplitudeRampCorrection":[ ... { ... "rampTime":50e-9, ... "rabiCorrection": 0.92 ... }, ... { ... "rampTime": 75e-9, ... "rabiCorrection": 0.97 ... }, ... { ... "rampTime": 100e-9, ... "rabiCorrection": 1.00 ... } ... ] ... }, ... "rydbergLocal":{ ... "detuningErrorRms:": 0.01, ... "siteCoefficientErrorRms:": 0.01, ... "errorRateIncoherentBright:": 0.01, ... "errorRateIncoherentDark:": 0.01, ... "crosstalk:": 0.01, ... }, ... }, ... }, ... } >>> QueraAhsParadigmProperties.parse_raw_schema(json.dumps(input_json)) """ _PROGRAM_HEADER = BraketSchemaHeader( name="braket.device_schema.quera.quera_ahs_paradigm_properties", version="1" ) braketSchemaHeader: BraketSchemaHeader = Field(default=_PROGRAM_HEADER, const=_PROGRAM_HEADER) qubitCount: int lattice: Lattice rydberg: Rydberg performance: Performance