QREv3 neutral atom models#3198
Conversation
| @dataclass | ||
| class SurfaceCodeLowMove(ISATransform): | ||
| """ | ||
| This class models the gate-based rotated surface code. |
There was a problem hiding this comment.
Could we add details about the "low-move" nature of this transform. Further, is there a reference that discusses this which we could add to the docstring?
| space_formula = linear_function(2 * self.distance**2 - 1) | ||
|
|
||
| # Each standard syndrome extraction cycle consists of ancilla preparation, 4 | ||
| # rounds of CNOTs, and measurement. (See Fig. 2 in arXiv:1009.3686). |
There was a problem hiding this comment.
Refers to CNOT in the comment, but gate that is used is CZ.
|
|
||
| @dataclass | ||
| class NeutralAtom(Architecture): | ||
| """A movement-aware neutral-atom architecture.""" |
There was a problem hiding this comment.
We should add doc strings about the various fields that can be configured, their units, and their default value.
| atom_spacing: int = field(default=3) # In units of microns. | ||
| max_velocity: int = field(default=1) # In units m/s. | ||
| max_acceleration: int = field(default=5000) # In units m/s^2. |
There was a problem hiding this comment.
Are these the most natural units to choose? Why not meters or nano-meters for the atom spacing? We could also use a float value here and then convert it to bits using the helper function.
| encoding=Encoding.PHYSICAL, | ||
| arity=1, | ||
| time=0, | ||
| error_rate=0.00001, |
There was a problem hiding this comment.
Should this be configurable? It should also have a comment to explain why we currently do not set the error rate to 0.
| encoding=Encoding.PHYSICAL, | ||
| arity=1, | ||
| time=2 * self.handoff_time, | ||
| error_rate=1e-4, |
There was a problem hiding this comment.
Should this be configurable? Is this value ever used or are we only using the move instruction to provide timing information?
NeutralAtom class: architecture for a generic neutral atom platform.
SurfaceCodeLowMove class: a variant of the surface code that does syndome extraction with local moves.
Added properties: ACCELERATION, VELOCITY, ATOM_SPACING to support neutral atom platforms.