A trained Transolver neural operator from the open-source scirex library (JAX/Flax) for the Chip cooling benchmark. The weights are the last-epoch weights of the run described below and are stored as model.safetensors.
| Metric | Recorded at training time | Re-evaluated with infer.py |
Published reference |
|---|---|---|---|
| Test relative L2 | 0.281% | 0.30% | – |
| Test MAE | 0.665 K | 0.686 K | POD-NN, Curl and Hu: MAE 1.534 K, R² 0.998 |
| Test RMSE | – | 1.185 K | – |
Lower is better, except for Spearman correlations. Figures are those of the ScireX results table and benchmark pages: benchmark page and the GitHub README. This is the full-normalisation variant of the Transolver run. The training-time column is what was recorded for it when it was trained. The re-evaluated column was obtained by loading this repo's config.json (its normalisation statistics pass infer.py's check against the benchmark data) and running scripts/benchmarks/chip_cooling/infer.py on the 400 test samples (CPU). These are the values you should expect to reproduce.
Input: 6 boundary-condition parameters of a dual-chip cold plate. Output: steady-state temperature (K) on a 2D slice (11,110 mesh nodes). 1600 training and 400 test samples. The normalisation statistics are in config.json; the weights are unusable without them.
Trained on the data of Curl & Hu (2026), Dryad doi:10.5061/dryad.k0p2ngfp5, released under CC0 1.0.
Transolver, 1,807,561 parameters. Adam with weight decay 1e-6, gradient clipping 1.0, LR 1e-4 with 50 warm-up epochs then cosine to 1e-6, batch 4. All 11,110 nodes; 5 layers, width 256, 8 heads, 32 slices. Temperature z-scored with one scalar, parameters z-scored per parameter (training statistics only). Relative L2 loss, 500 epochs, seed 42, final-epoch weights. About 1.8M trainable parameters per model. Training time: see the GitHub docs page.
Full setup: doc/benchmarks/chip_cooling/results/comparative.md.
hf download zenteiq-ai/scirex-transolver-chip-cooling --local-dir ckpt/scirex-transolver-chip-cooling
Then run the benchmark's scripts/benchmarks/chip_cooling/infer.py from the GitHub repository. The exact command is under Reproduce below. Check your install against sample.safetensors, which holds one test input (input) and the model's expected output (expected_output). config.json holds the model settings and the normalisation statistics.
From a checkout of the GitHub repository at tag v1.0.0:
hf download zenteiq-ai/scirex-transolver-chip-cooling --local-dir ckpt/scirex-transolver-chip-cooling
python scripts/benchmarks/chip_cooling/infer.py \
--checkpoint ckpt/scirex-transolver-chip-cooling \
--run transolver \
--data-dir $DATA_ROOT/chip_cooling
$DATA_ROOT is the folder that holds the benchmark datasets (see reproducibility.md).
Results table for this benchmark: comparative.md.
Valid only within the trained input ranges of the benchmark data. Not for safety-critical design without separate validation. Bug reports: GitHub Issues.
Same benchmark, other models:
| Model | Repo |
|---|---|
| FNO | zenteiq-ai/scirex-fno-chip-cooling |
| GINO | zenteiq-ai/scirex-gino-chip-cooling |
| WNO | zenteiq-ai/scirex-wno-chip-cooling |
Same model, other benchmarks:
| Benchmark | Repo |
|---|---|
| Darcy flow 2D (data-driven) | zenteiq-ai/scirex-transolver-darcy |
| Darcy flow 2D (physics-only, extra-fields run) | zenteiq-ai/scirex-transolver-darcy-physics-extra-fields |
| Pipe flow | zenteiq-ai/scirex-transolver-pipe |
| Navier-Stokes 2D | zenteiq-ai/scirex-transolver-navier-stokes |
| AirfRANS | zenteiq-ai/scirex-transolver-airfrans |
| Car-Design-ShapeNetCar | zenteiq-ai/scirex-transolver-shapenetcar |
| Car-CFD | zenteiq-ai/scirex-transolver-car-cfd |
The weights are released under the Apache License 2.0 (see LICENSE; dataset credit in NOTICE). The code is LGPL-3.0. Cite the software through the CITATION.cff in the GitHub repository and the architecture paper:
model.safetensors 7 MBsample.safetensors 44.7 kB