Skip to content

QREv3 neutral atom models#3198

Closed
brad-lackey wants to merge 6 commits into
mainfrom
brlackey/neutral-atom-models
Closed

QREv3 neutral atom models#3198
brad-lackey wants to merge 6 commits into
mainfrom
brlackey/neutral-atom-models

Conversation

@brad-lackey
Copy link
Copy Markdown
Contributor

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.

Comment thread source/pip/qsharp/qre/models/qec/_surface_code_low_move.py Outdated
Comment thread source/pip/qsharp/qre/models/qec/_surface_code_low_move.py
Comment thread source/pip/qsharp/qre/models/qubits/_neutral_atoms.py Outdated
Comment thread source/pip/qsharp/qre/models/qubits/_neutral_atoms.py Outdated
encoding=Encoding.PHYSICAL,
arity=1,
time=0,
error_rate=0.00001,
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should this be configurable? It should also have a comment to explain why we currently do not set the error rate to 0.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a hack so that we can export the T gate without having to build a ISATransform wrapper around NeutralAtom. Once the magic state factories can handle T-gate error rates of 0, we can revert this back to zero.

encoding=Encoding.PHYSICAL,
arity=1,
time=2 * self.handoff_time,
error_rate=1e-4,
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should this be configurable? Is this value ever used or are we only using the move instruction to provide timing information?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It is, via the handoff_time keyword. The details of the move are handled at a higher level of the stack, so the only thing I can think of at the platform level for the PHYSICAL_MOVE is the handoff time.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I was referring to the hard coded error rate of 1e-4

@msoeken
Copy link
Copy Markdown
Member

msoeken commented May 11, 2026

Closed in favor of #3211 (after merge of #3192)

@msoeken msoeken closed this May 11, 2026
pull Bot pushed a commit to Mattlk13/qsharp that referenced this pull request May 11, 2026
NeutralAtom class: architecture for a generic neutral atom platform.

SurfaceCodeLowMove class: a variant of the surface code that does
syndrome extraction with local moves.

Added properties: ACCELERATION, VELOCITY, ATOM_SPACING to support
neutral atom platforms.

This fixes merge issues in microsoft#3198 after microsoft#3192. It does not include
updates to property handling and property constraints, which is noted in
microsoft#3210.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants