Skip to content

Commit

Permalink
Merge pull request #33 from QuEraComputing/dev_0.3.0
Browse files Browse the repository at this point in the history
Release 0.3.0
  • Loading branch information
weinbe58 authored Apr 5, 2023
2 parents a9b5947 + 06c8098 commit 6f9d37b
Show file tree
Hide file tree
Showing 9 changed files with 269 additions and 110 deletions.
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"

[project]
name = "quera-ahs-utils"
version = "0.2.0"
version = "0.3.0"
authors = [
{ name="Phillip Weinberg", email="pweinberg@quera.com" },
{ name="John Long", email="jlong@quera.com" }
Expand Down
2 changes: 1 addition & 1 deletion src/quera_ahs_utils/_version.py
Original file line number Diff line number Diff line change
@@ -1 +1 @@
__version__ = '0.2.0'
__version__ = '0.3.0'
13 changes: 8 additions & 5 deletions src/quera_ahs_utils/ir.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,11 @@
import json
import numpy as np

from quera_ahs_utils.quera_ir import *
import quera_ahs_utils.drive as drive
from quera_ahs_utils.quera_ir.task_specification import (QuEraTaskSpecification,
Lattice, EffectiveHamiltonian, RydbergHamiltonian, RabiFrequencyAmplitude,
RabiFrequencyPhase, Detuning, GlobalField, LocalField)



__all__ = [
Expand Down Expand Up @@ -100,15 +103,15 @@ def get_local_shifting_field(detuning: Detuning):
return quera_to_braket.get_braket_field(detuning.local)

@staticmethod
def get_driving_field(rydberg: Rydberg):
def get_driving_field(rydberg: RydbergHamiltonian):
return DrivingField(
amplitude=quera_to_braket.get_amplitude(rydberg.rabi_frequency_amplitude),
detuning=quera_to_braket.get_detuning(rydberg.detuning),
phase=quera_to_braket.get_phase(rydberg.rabi_frequency_phase)
)

@staticmethod
def get_shifting_field(rydberg: Rydberg):
def get_shifting_field(rydberg: RydbergHamiltonian):
magnitude = quera_to_braket.get_braket_field(rydberg.detuning.local)

if magnitude != None:
Expand Down Expand Up @@ -182,7 +185,7 @@ def get_detuning(driving: braket_ir.DrivingField, shifting: Optional[braket_ir.S

@staticmethod
def get_rydberg(driving: braket_ir.DrivingField, shifting: Optional[braket_ir.ShiftingField] = None):
return Rydberg(
return RydbergHamiltonian(
rabi_frequency_amplitude = braket_to_quera.get_rabi_frequency_amplitude(driving),
rabi_frequency_phase=braket_to_quera.get_rabi_frequency_phase(driving),
detuning=braket_to_quera.get_detuning(driving, shifting)
Expand All @@ -208,7 +211,7 @@ def get_effective_hamiltonian(hamiltonian_ir: braket_ir.Hamiltonian):
)

@staticmethod
def get_lattice(setup: braket_ir.Setup):
def get_lattice(setup: braket_ir.Setup):
return Lattice(sites=setup.ahs_register.sites, filling=setup.ahs_register.filling)

def quera_task_to_braket_ahs(task_specification: QuEraTaskSpecification) -> Tuple[int,AnalogHamiltonianSimulation]:
Expand Down
97 changes: 0 additions & 97 deletions src/quera_ahs_utils/quera_ir.py

This file was deleted.

Empty file.
70 changes: 70 additions & 0 deletions src/quera_ahs_utils/quera_ir/capabilities.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
from pydantic import BaseModel

__all__ = ["QuEraCapabilities"]


class RydbergGlobalCapabilities(BaseModel):
rabi_frequency_min: float
rabi_frequency_max: float
rabi_frequency_resolution: float
rabi_frequency_slew_rate_max: float
detuning_min: float
detuning_max: float
detuning_resolution: float
detuning_slew_rate_max: float
phase_min: float
phase_max: float
phase_resolution: float
time_min: float
time_max: float
time_resolution: float
time_delta_min: float

class RydbergLocalCapabilities(BaseModel):
detuning_min: float
detuning_max: float
detuning_slew_rate_max: float
site_coefficient_min: float
site_coefficient_max: float
number_local_detuning_sites: int
spacing_radial_min: float
time_resolution: float
time_delta_min: float

class RydbergCapabilities(BaseModel):
c6_coefficient: float
global_: RydbergGlobalCapabilities
local: RydbergLocalCapabilities

class Config:
fields = {
'global_': 'global'
}

class LatticeGeometryCapabilities(BaseModel):
spacing_radial_min: float
spacing_vertical_min: float
position_resolution: float
number_sites_max: int

class LatticeAreaCapabilities(BaseModel):
width: float
height: float

class LatticeCapabilities(BaseModel):
number_qubits_max: int
area: LatticeAreaCapabilities
geometry: LatticeGeometryCapabilities

class TaskCapabilities(BaseModel):
number_shots_min: int
number_shots_max: int

class DeviceCapabilities(BaseModel):
task: TaskCapabilities
lattice: LatticeCapabilities
rydberg: RydbergCapabilities

class QuEraCapabilities(BaseModel):
version: str
capabilities: DeviceCapabilities
30 changes: 30 additions & 0 deletions src/quera_ahs_utils/quera_ir/task_results.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
from enum import Enum
from pydantic import BaseModel, conlist, conint

__all__ = [
"QuEraTaskResults",
]

class QuEraShotStatusCode(str, Enum):
Completed = "Completed"
MissingPreSequence = "MissingPreSequence"
MissingPostSequence = "MissingPostSequence"
MissingMeasurement = "MissingMeasurement"

class QuEraTaskStatusCode(str, Enum):
Created = "Created"
Running = "Running"
Completed = "Completed"
Failed = "Failed"
Cancelled = "Cancelled"

class QuEraShotResult(BaseModel):
shot_status: QuEraShotStatusCode = QuEraShotStatusCode.MissingMeasurement
pre_sequence: conlist(conint(ge=0, le=1), min_items=0) = []
post_sequence: conlist(conint(ge=0, le=1), min_items=0) = []

class QuEraTaskResults(BaseModel):
task_status: QuEraTaskStatusCode = QuEraTaskStatusCode.Failed
shot_outputs: conlist(QuEraShotResult, min_items=0) = []


Loading

0 comments on commit 6f9d37b

Please sign in to comment.