Source code for scpn_fusion.core.quantum_bridge
# SPDX-License-Identifier: AGPL-3.0-or-later | Commercial license available
# © Concepts 1996–2026 Miroslav Šotek. All rights reserved.
# © Code 2020–2026 Miroslav Šotek. All rights reserved.
# ORCID: 0009-0009-3560-0851
# Contact: www.anulum.li | protoscience@anulum.li
# SCPN Fusion Core — Quantum Bridge
from __future__ import annotations
import math
import subprocess
import sys
from pathlib import Path
_QUANTUM_SCRIPT_NAMES = (
"14_quantum_plasma_simulation.py",
"15_vqe_grad_shafranov.py",
"16_knm_vqe_fusion.py",
)
_QUANTUM_STEP_LABELS = (
"[1] Quantum Transport Simulation (Trotterization)",
"[2] Quantum Equilibrium Solver (VQE)",
"[3] Physics-Informed Knm-VQE (Topology Ansatz)",
)
_QUANTUM_SCRIPT_TIMEOUT_SECONDS = 1800.0
def _resolve_quantum_lab_path(base_path: str | Path | None = None) -> Path:
if base_path is not None:
return Path(base_path).expanduser().resolve()
return Path(__file__).resolve().parents[4] / "QUANTUM_LAB"
def _normalize_script_timeout_seconds(timeout_s: float) -> float:
timeout = float(timeout_s)
if not math.isfinite(timeout) or timeout <= 0.0:
raise ValueError("script_timeout_seconds must be finite and > 0.")
return timeout
[docs]
def run_quantum_suite(
*,
base_path: str | Path | None = None,
script_timeout_seconds: float = _QUANTUM_SCRIPT_TIMEOUT_SECONDS,
) -> dict[str, object]:
print("--- SCPN QUANTUM FUSION BRIDGE ---")
print("Leveraging Quantum Hardware for Plasma Physics")
timeout_seconds = _normalize_script_timeout_seconds(script_timeout_seconds)
lab_path = _resolve_quantum_lab_path(base_path)
if not lab_path.is_dir():
raise FileNotFoundError(f"Quantum Lab not found at {lab_path}")
script_paths = [lab_path / name for name in _QUANTUM_SCRIPT_NAMES]
missing = [p for p in script_paths if not p.is_file()]
if missing:
missing_text = ", ".join(p.name for p in missing)
raise FileNotFoundError(f"Quantum Lab missing required scripts: {missing_text}")
for step_label, script_path in zip(_QUANTUM_STEP_LABELS, script_paths):
print(f"\n{step_label}")
try:
subprocess.run(
[sys.executable, str(script_path)],
check=True,
timeout=timeout_seconds,
)
except subprocess.TimeoutExpired as exc:
raise RuntimeError(
f"Quantum script timed out: {script_path.name} (timeout={timeout_seconds:.1f}s)"
) from exc
except subprocess.CalledProcessError as exc:
raise RuntimeError(
f"Quantum script failed: {script_path.name} (exit={exc.returncode})"
) from exc
print("\n--- QUANTUM INTEGRATION COMPLETE ---")
return {
"ok": True,
"base_path": str(lab_path),
"scripts": [p.name for p in script_paths],
}
if __name__ == "__main__":
run_quantum_suite()