proxima-fusion/coilstellaration
Viewer • Updated • 1.32M • 2.96k • 6
Single-file self-contained CPU ONNX submission (model.onnx, 36.54 MiB <= 50 MiB, opset 17, CPUExecutionProvider, no external .data sidecars) for Proxima Fusion's CoilStellaration benchmark (bench_version=1.0, dataset revision f505cc890ff2f5cf24a6d68f4b5156d0a3fecb5c, arXiv:2611.12689). Supports all 17 (NFP, N_c) topologies (NFP in {2..5}, N_c in {4..8}) across fixed_shape and variable_shape.
If-gated unrolled analytic-Jacobian Gauss-Newton step (Loop = 0 in the exported ONNX graph).PhysResNet (2 differentiable CorrectorStages), followed by a 16x16x64 (pdist_cov=1.2) Dual-Init selector (x_net vs. x_tmpl) and an If-gated unrolled analytic-Jacobian Gauss-Newton stage (14x14x48 LM grid, cg_iters = 14, col_eps = 1e-2) that executes only when the warm-start fails the discrete gate.val_holdout_suite.pkl (N = 360 fixed + N = 450 variable boundaries sampled from split="train"). Zero split="eval" data touched training or hyperparameter selection.split="eval" Results (bench_version=1.0, overall_score=0.5160)
| Track / Stratum | N | Mean Score | Median | p10 | Feas >= 0.9 | Strict Feas |
|---|---|---|---|---|---|---|
fixed_shape |
2,771 | 0.5176 | 0.4149 | 0.0237 | 36.45% | 33.31% |
fixed_shape/loose |
1,026 | 0.9458 | 1.0000 | 0.8086 | 86.65% | 81.29% |
fixed_shape/medium |
861 | 0.4049 | 0.3187 | 0.0536 | 13.94% | 10.22% |
fixed_shape/tight |
884 | 0.1303 | 0.0800 | 0.0049 | 0.11% | 0.11% |
variable_shape |
8,058 | 0.5144 | 0.4328 | 0.0257 | 33.36% | 29.32% |
variable_shape/loose |
2,697 | 0.9294 | 1.0000 | 0.7149 | 82.28% | 74.94% |
variable_shape/medium |
2,660 | 0.4703 | 0.4126 | 0.0692 | 17.26% | 12.78% |
variable_shape/tight |
2,701 | 0.1434 | 0.0871 | 0.0041 | 0.37% | 0.07% |
CPUExecutionProvider, intra_op=8, N = 200 / track)
Measured on an idle 8-vCPU allocation (separate from the 384-worker Slurm scoring array):
fixed_shape: mean = 125.9 ms, median = 123.5 ms, p90 = 166.7 ms, max = 249.3 msvariable_shape: mean = 141.0 ms, median = 128.5 ms, p90 = 206.6 ms, max = 353.1 mssplit="train", N = 360 / 450)
| Track | N | Mean Score | p10 | Feas >= 0.9 | Strict Feas |
|---|---|---|---|---|---|
fixed_shape |
360 | 0.4808 | 0.0276 | 31.67% | 28.33% |
variable_shape |
450 | 0.5263 | 0.0319 | 36.00% | 31.33% |
onnxruntime)
import numpy as np
import onnxruntime as ort
from huggingface_hub import hf_hub_download
path = hf_hub_download("Oursdesvosges/coilstellaration-phys-resnet-loopfree-universal", "model.onnx")
sess = ort.InferenceSession(path, providers=["CPUExecutionProvider"])
r_cos = np.zeros((5, 9), dtype=np.float32)
z_sin = np.zeros((5, 9), dtype=np.float32)
r_cos[0, 4], r_cos[1, 4], z_sin[1, 4] = 1.0, 0.15, 0.15
coil_x_n, coil_y_n, coil_z_n, currents = sess.run(
["coil_x_n", "coil_y_n", "coil_z_n", "currents"],
{
"boundary_r_cos": r_cos,
"boundary_z_sin": z_sin,
"requirement_metrics": np.array([0.4, 0.8, 3.0, 0.05], dtype=np.float32),
"n_field_periods": np.asarray(3, dtype=np.int64),
"n_coils_per_half_period": np.asarray(5, dtype=np.int64),
},
)