qca-sim 1.7.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- qca/__init__.py +21 -0
- qca/cell.py +16 -0
- qca/cell_hubbard.py +77 -0
- qca/gates.py +6 -0
- qca_sim-1.7.0.dist-info/METADATA +153 -0
- qca_sim-1.7.0.dist-info/RECORD +10 -0
- qca_sim-1.7.0.dist-info/WHEEL +5 -0
- qca_sim-1.7.0.dist-info/licenses/LICENSE +20 -0
- qca_sim-1.7.0.dist-info/licenses/NOTICE +14 -0
- qca_sim-1.7.0.dist-info/top_level.txt +1 -0
qca/__init__.py
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# Copyright 2026 11-qlab
|
|
2
|
+
# SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
|
|
4
|
+
"""QCA simulator: Hubbard cell + exact diagonalization."""
|
|
5
|
+
from .cell import QCACell
|
|
6
|
+
from .gates import majority
|
|
7
|
+
from .cell_hubbard import (
|
|
8
|
+
basis,
|
|
9
|
+
hamiltonian,
|
|
10
|
+
ground_state,
|
|
11
|
+
polarization,
|
|
12
|
+
)
|
|
13
|
+
|
|
14
|
+
__all__ = [
|
|
15
|
+
"QCACell",
|
|
16
|
+
"majority",
|
|
17
|
+
"basis",
|
|
18
|
+
"hamiltonian",
|
|
19
|
+
"ground_state",
|
|
20
|
+
"polarization",
|
|
21
|
+
]
|
qca/cell.py
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# Copyright 2026 11-qlab
|
|
2
|
+
# SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
|
|
4
|
+
from dataclasses import dataclass
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
@dataclass
|
|
8
|
+
class QCACell:
|
|
9
|
+
"""A QCA cell with two electrons and polarization."""
|
|
10
|
+
|
|
11
|
+
polarization: float = -1.0 # -1 or +1
|
|
12
|
+
|
|
13
|
+
def switch(self, target: float, clock: float = 1.0) -> None:
|
|
14
|
+
"""Ideal clocked switching."""
|
|
15
|
+
if clock > 0.5:
|
|
16
|
+
self.polarization = 1.0 if target >= 0 else -1.0
|
qca/cell_hubbard.py
ADDED
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
# Copyright 2026 11-qlab
|
|
2
|
+
# SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
|
|
4
|
+
"""QCA cell exact diagonalization (Hubbard model).
|
|
5
|
+
|
|
6
|
+
4-dot cell, 2 excess electrons, inter-dot tunnelling t,
|
|
7
|
+
on-site U and inter-site Coulomb V, driver bias.
|
|
8
|
+
|
|
9
|
+
Site numbering:
|
|
10
|
+
0 --- 1
|
|
11
|
+
| |
|
|
12
|
+
3 --- 2 -> 0=TL, 1=TR, 2=BR, 3=BL
|
|
13
|
+
|
|
14
|
+
Polarization: P = (n0 + n2 - n1 - n3) / 2 in [-1, +1]
|
|
15
|
+
"""
|
|
16
|
+
from __future__ import annotations
|
|
17
|
+
from itertools import combinations
|
|
18
|
+
import numpy as np
|
|
19
|
+
|
|
20
|
+
ADJ = [(0, 1), (1, 2), (2, 3), (3, 0)]
|
|
21
|
+
DIAG = [(0, 2), (1, 3)]
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
def basis():
|
|
25
|
+
"""All 2-electron occupations of 4 dots (spinless)."""
|
|
26
|
+
return list(combinations(range(4), 2))
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
def hamiltonian(t: float = 0.05,
|
|
30
|
+
V_diag: float = 1.0,
|
|
31
|
+
V_adj: float = 0.2,
|
|
32
|
+
driver: float = 0.0,
|
|
33
|
+
onsite: float = 0.0):
|
|
34
|
+
"""Return (H, basis_list) for the 2-electron QCA cell."""
|
|
35
|
+
B = basis()
|
|
36
|
+
idx = {s: i for i, s in enumerate(B)}
|
|
37
|
+
n = len(B)
|
|
38
|
+
H = np.zeros((n, n), dtype=float)
|
|
39
|
+
|
|
40
|
+
coul = {}
|
|
41
|
+
for p in DIAG:
|
|
42
|
+
coul[tuple(sorted(p))] = V_diag
|
|
43
|
+
for p in ADJ:
|
|
44
|
+
coul[tuple(sorted(p))] = V_adj
|
|
45
|
+
|
|
46
|
+
for i, (a, b) in enumerate(B):
|
|
47
|
+
e = 2.0 * onsite + coul.get((a, b), 0.0)
|
|
48
|
+
e -= driver * ((a in (0, 2)) + (b in (0, 2))
|
|
49
|
+
- (a in (1, 3)) - (b in (1, 3))) / 2.0
|
|
50
|
+
H[i, i] = e
|
|
51
|
+
|
|
52
|
+
edges = []
|
|
53
|
+
for (p, q) in ADJ:
|
|
54
|
+
edges.append((p, q))
|
|
55
|
+
edges.append((q, p))
|
|
56
|
+
|
|
57
|
+
for i, (a, b) in enumerate(B):
|
|
58
|
+
for (x, y) in edges:
|
|
59
|
+
if x in (a, b) and y not in (a, b):
|
|
60
|
+
new = tuple(sorted([s for s in (a, b) if s != x] + [y]))
|
|
61
|
+
j = idx[new]
|
|
62
|
+
H[i, j] += -t
|
|
63
|
+
|
|
64
|
+
return H, B
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
def ground_state(H):
|
|
68
|
+
w, v = np.linalg.eigh(H)
|
|
69
|
+
return float(w[0]), v[:, 0]
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
def polarization(psi, B):
|
|
73
|
+
n = np.zeros(4)
|
|
74
|
+
for c, (a, b) in zip(np.abs(psi) ** 2, B):
|
|
75
|
+
n[a] += c
|
|
76
|
+
n[b] += c
|
|
77
|
+
return float((n[0] + n[2] - n[1] - n[3]) / 2.0)
|
qca/gates.py
ADDED
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: qca-sim
|
|
3
|
+
Version: 1.7.0
|
|
4
|
+
Summary: Quantum-dot Cellular Automata simulator: Hubbard cell exact diagonalization, native quantum gates, STA clocking
|
|
5
|
+
Author: 11-qlab
|
|
6
|
+
License-Expression: Apache-2.0
|
|
7
|
+
Keywords: quantum computing,QCA,toric code,surface code,STA clocking,fault tolerance
|
|
8
|
+
Classifier: Development Status :: 4 - Beta
|
|
9
|
+
Classifier: Intended Audience :: Science/Research
|
|
10
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
11
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
12
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
13
|
+
Classifier: Topic :: Scientific/Engineering :: Physics
|
|
14
|
+
Requires-Python: >=3.10
|
|
15
|
+
Description-Content-Type: text/markdown
|
|
16
|
+
License-File: LICENSE
|
|
17
|
+
License-File: NOTICE
|
|
18
|
+
Requires-Dist: numpy
|
|
19
|
+
Requires-Dist: scipy
|
|
20
|
+
Dynamic: license-file
|
|
21
|
+
|
|
22
|
+
# QCA Quantum
|
|
23
|
+
|
|
24
|
+
**Quantum-dot Cellular Automata as a native quantum computing platform.**
|
|
25
|
+
|
|
26
|
+
[]()
|
|
27
|
+
[]()
|
|
28
|
+
|
|
29
|
+
## What this is
|
|
30
|
+
|
|
31
|
+
For 30 years, quantum-dot cellular automata (QCA) has been treated as a
|
|
32
|
+
*classical* computing paradigm — bits encoded in electron positions, coupling
|
|
33
|
+
via electrostatic repulsion, clocked by four-phase electric fields.
|
|
34
|
+
|
|
35
|
+
This repository shows that framing is incomplete. **QCA is a native quantum
|
|
36
|
+
platform.** Every cell is a qubit. Every inter-cell coupling is an entangler.
|
|
37
|
+
Every QCA wire is a chain of two-qubit gates. And the ground state of an
|
|
38
|
+
N-cell QCA chain is a GHZ state, available for free.
|
|
39
|
+
|
|
40
|
+
## Eight findings
|
|
41
|
+
|
|
42
|
+
| # | Result | Evidence |
|
|
43
|
+
|---|---|---|
|
|
44
|
+
| F1 | QCA cells are entangled qubits, not classical bits | Bell fidelity 0.9975 at J/g = 20 |
|
|
45
|
+
| F2 | σz ⊗ σz coupling is a native CNOT | Concurrence 1.0000, truth table PASS |
|
|
46
|
+
| F3 | N-cell chain ground state is a GHZ resource | S(A) = ln 2, F_GHZ = 0.9999 |
|
|
47
|
+
| F4 | Clock rate is capped by Landau-Zener | T_adiabatic ~ 1/(2πΔ²), verified vs TDSE |
|
|
48
|
+
| F5 | STA breaks the clock speed limit | **5000× speedup** (T_edge 500 → 0.1) |
|
|
49
|
+
| F6 | MV3 parallel voter tolerates faults | 8/8 correct with 1 dead cell |
|
|
50
|
+
| F7 | Distance-3 surface code from native gates | [[9,1,3]], p_th ≈ 1e-2, 32 CZ/cycle |
|
|
51
|
+
| F8 | Logical Bell pair at F = 1.0000 | <Z_A Z_B> = <X_A X_B> = +1 |
|
|
52
|
+
|
|
53
|
+
## Install
|
|
54
|
+
|
|
55
|
+
```bash
|
|
56
|
+
git clone https://github.com/11-qlab/qca-quantum
|
|
57
|
+
cd qca-quantum
|
|
58
|
+
pip install -e .
|
|
59
|
+
pip install qiskit qiskit-aer qiskit-ibm-runtime # optional, for HW
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
Quickstart
|
|
63
|
+
|
|
64
|
+
Run the full stack end-to-end:
|
|
65
|
+
|
|
66
|
+
```bash
|
|
67
|
+
python3 examples/qca_quantum_processor.py
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
Run any single experiment:
|
|
71
|
+
|
|
72
|
+
```bash
|
|
73
|
+
python3 examples/qca_bell_gate.py # F1, F2
|
|
74
|
+
python3 examples/qca_ghz_3cell.py # F3
|
|
75
|
+
python3 examples/sta_clock.py # F4, F5
|
|
76
|
+
python3 examples/mv3_fixed.py # F6
|
|
77
|
+
python3 examples/qca_surface_code.py # F7
|
|
78
|
+
python3 examples/logical_cnot.py # F8
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
Submit to real IBM Quantum hardware:
|
|
82
|
+
|
|
83
|
+
```bash
|
|
84
|
+
export IBMQ_TOKEN=<your token from quantum.ibm.com>
|
|
85
|
+
python3 examples/ibm_run_all.py ibm_brisbane
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
Layout
|
|
89
|
+
|
|
90
|
+
```
|
|
91
|
+
examples/
|
|
92
|
+
qca_quantum_processor.py # full-stack demo
|
|
93
|
+
qca_bell_gate.py # native CZ/CNOT + Bell state
|
|
94
|
+
qca_ghz_3cell.py # GHZ from chain ground state
|
|
95
|
+
sta_clock.py # counter-diabatic QCA clock
|
|
96
|
+
sta_wire.py # STA at the wire level
|
|
97
|
+
mv3_fixed.py # fault-tolerant majority gate
|
|
98
|
+
qca_surface_code.py # distance-3 surface code
|
|
99
|
+
logical_cnot.py # transversal logical CNOT
|
|
100
|
+
molecular_qca_bisfc.py # bis-ferrocene molecular cell
|
|
101
|
+
qiskit_bell_real.py # 2-qubit tomography on HW
|
|
102
|
+
ibm_run_all.py # Bell + GHZ submission to IBM
|
|
103
|
+
src/qca/
|
|
104
|
+
cell_hubbard.py # exact diagonalization of QCA cell
|
|
105
|
+
__init__.py
|
|
106
|
+
docs/
|
|
107
|
+
FINDINGS.md # technical writeup
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
Key results
|
|
111
|
+
|
|
112
|
+
STA clock speedup
|
|
113
|
+
|
|
114
|
+
T_edge Baseline P STA P
|
|
115
|
+
0.10 +1.0000 -0.9978
|
|
116
|
+
1.00 +0.9952 -0.9988
|
|
117
|
+
50.0 +0.7869 -0.9978
|
|
118
|
+
500.0 -0.4023 -0.9977
|
|
119
|
+
|
|
120
|
+
Baseline needs T_edge ~ 500 for a clean flip. STA achieves it at T_edge = 0.1.
|
|
121
|
+
|
|
122
|
+
MV3 parallel voter under fault
|
|
123
|
+
|
|
124
|
+
Healthy 1 dead cell
|
|
125
|
+
Standard 5-cell majority 8/8 6/8
|
|
126
|
+
MV3 parallel voter (7 cells) 8/8 8/8
|
|
127
|
+
|
|
128
|
+
Molecular feasibility
|
|
129
|
+
|
|
130
|
+
Clock field E-field T_max P
|
|
131
|
+
20 meV 0.017 V/nm 259 K -0.89
|
|
132
|
+
100 meV 0.083 V/nm 1166 K -0.995
|
|
133
|
+
200 meV 0.167 V/nm 2324 K -0.999
|
|
134
|
+
|
|
135
|
+
Room-temperature operation is comfortable. Redox-safe up to ~0.5 V/nm.
|
|
136
|
+
|
|
137
|
+
Citation
|
|
138
|
+
|
|
139
|
+
If you use this work, please cite:
|
|
140
|
+
|
|
141
|
+
```
|
|
142
|
+
@misc{qca-quantum-2026,
|
|
143
|
+
title = {QCA as a Native Quantum Platform: 5000x Clock Speedup and
|
|
144
|
+
Fault-Tolerant Quantum Computing on Molecular Cellular Automata},
|
|
145
|
+
author = {11-qlab},
|
|
146
|
+
year = {2026},
|
|
147
|
+
url = {https://github.com/11-qlab/qca-quantum}
|
|
148
|
+
}
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
License
|
|
152
|
+
|
|
153
|
+
MIT
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
qca/__init__.py,sha256=PwxGxcoc2p20SC4iLdHYV1B3z-hNwCtusyCDKv1o8Bk,389
|
|
2
|
+
qca/cell.py,sha256=IrVuNJcjIY4qmWMBODMlMhssq5FFh5fHgoe4f6cXEV8,418
|
|
3
|
+
qca/cell_hubbard.py,sha256=HJ2IgB6GtygWTQLx5ExME3lo6BNv7Om1ClVyjunm6LI,1973
|
|
4
|
+
qca/gates.py,sha256=W5qFKqURP50Y6aKywOKSBB8LLegMpDQv2Ppda2h2jFM,206
|
|
5
|
+
qca_sim-1.7.0.dist-info/licenses/LICENSE,sha256=JZjieTMSHjMUX9teuk_kE3PVz3oAWdW3TL_jWtAY3cE,764
|
|
6
|
+
qca_sim-1.7.0.dist-info/licenses/NOTICE,sha256=3lg79ciRiRLhAH9MmDIzpW4y4wK2yocCTvz3epOFunY,347
|
|
7
|
+
qca_sim-1.7.0.dist-info/METADATA,sha256=dwZPmopaxq5lGfrxhwNw3MIUK-5VkzONqs157K7y3fE,4748
|
|
8
|
+
qca_sim-1.7.0.dist-info/WHEEL,sha256=YVMoNqKzERt-wjUZwJ33xBGAwnFl-4cqbYkTtWa4itE,91
|
|
9
|
+
qca_sim-1.7.0.dist-info/top_level.txt,sha256=SLXRfC8Q19BJWtmuMIkMpQc-abgsOIkwOnis7q9BKLM,4
|
|
10
|
+
qca_sim-1.7.0.dist-info/RECORD,,
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
Apache License
|
|
2
|
+
Version 2.0, January 2004
|
|
3
|
+
http://www.apache.org/licenses/
|
|
4
|
+
|
|
5
|
+
Copyright 2026 11-qlab
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
Copyright 2026 11-qlab
|
|
9
|
+
|
|
10
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
|
11
|
+
you may not use this file except in compliance with the License.
|
|
12
|
+
You may obtain a copy of the License at
|
|
13
|
+
|
|
14
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
|
15
|
+
|
|
16
|
+
Unless required by applicable law or agreed to in writing, software
|
|
17
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
|
18
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
19
|
+
See the License for the specific language governing permissions and
|
|
20
|
+
limitations under the License.
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
qca-sim
|
|
2
|
+
Copyright 2026 11-qlab
|
|
3
|
+
|
|
4
|
+
This product includes software developed at
|
|
5
|
+
11-qlab (https://github.com/11-qlab).
|
|
6
|
+
|
|
7
|
+
Third-party dependencies (via pip install):
|
|
8
|
+
- numpy (BSD-3-Clause)
|
|
9
|
+
- scipy (BSD-3-Clause)
|
|
10
|
+
- qiskit (Apache-2.0)
|
|
11
|
+
- qiskit-aer (Apache-2.0)
|
|
12
|
+
- qiskit-ibm-runtime (Apache-2.0)
|
|
13
|
+
|
|
14
|
+
See pyproject.toml for the full dependency list.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
qca
|