|
Download README.md from Efradeca/transolver-linearno-elasticity: direct link, hf CLI and curl.
- Browser
- Download file 16.3 kB
-
https://huggingface.co/Efradeca/transolver-linearno-elasticity/resolve/main/README.md
- Command line
-
hf download hf://Efradeca/transolver-linearno-elasticity/README.md
-
curl -L -o README.md https://huggingface.co/Efradeca/transolver-linearno-elasticity/resolve/main/README.md
16.3 kB
| license: mit | |
| library_name: pytorch | |
| tags: | |
| - neural-operator | |
| - pde-solver | |
| - physics-informed | |
| - computational-mechanics | |
| - elasticity | |
| - linear-attention | |
| - transolver | |
| - stress-prediction | |
| metrics: | |
| - relative-l2 | |
| model-index: | |
| - name: transolver-linearno-elasticity-eqreg | |
| results: | |
| - task: | |
| type: operator-learning | |
| name: Elastic von Mises stress-field prediction (Geo-FNO Elasticity) | |
| dataset: | |
| type: geo-fno-elasticity | |
| name: Geo-FNO Elasticity (Li et al., 2022) | |
| metrics: | |
| - type: relative-l2 | |
| value: 0.00597 | |
| name: Test relative L2 (shipped checkpoint, mean over 200 meshes) | |
| - type: r-squared | |
| value: 0.99986 | |
| name: Pooled R^2 vs FEM ground truth | |
| # Equilibrium-Regularized LinearNO — Elastic Stress Surrogate | |
| A neural-operator surrogate that predicts the per-node **von Mises stress field** of a hyper-elastic | |
| unit cell with an arbitrary central void, on the **Geo-FNO Elasticity** benchmark. It maps a 2-D | |
| unstructured mesh (972 nodes) directly to the stress field in **milliseconds on CPU**, replacing a | |
| per-geometry finite-element (FEM) solve for fast design-space exploration. | |
| Verified node-by-node against FEM: pooled **R² = 0.99986**, test relative-L2 **0.00597** on the shipped | |
| checkpoint. **Interactive demo:** https://huggingface.co/spaces/Efradeca/elastic-stress-surrogate | |
| > **At a glance.** The deployed value is *accuracy + speed*: **R² = 0.99986** vs FEM, milliseconds on CPU. | |
| > The equilibrium regularizer is a physical-consistency component with a well-characterized | |
| > accuracy/consistency **trade-off** (see *Evaluation*). | |
| ## Model Details | |
| ### Model Description | |
| The model is a **Transolver-family transformer operator** whose attention block is the asymmetric | |
| **LinearNO** linear-attention operator. It predicts the full symmetric Cauchy stress tensor | |
| (σ_xx, σ_yy, σ_xy) per node; the supervised target is the derived scalar von Mises stress. Its | |
| distinguishing component is a soft **equilibrium-residual regularizer** — the training loss penalizes the | |
| discrete divergence ‖∇·σ‖² so the predicted field approaches static mechanical equilibrium (∇·σ ≈ 0), | |
| with the divergence discretized by a **meshfree moving-least-squares (MLS)** operator that needs no mesh | |
| connectivity. | |
| - **Developed by:** Efradeca | |
| - **Model type:** Neural operator (transformer PDE surrogate) for 2-D static hyper-elastic stress | |
| - **Inputs / outputs:** node coordinates `(B, 972, 2)` → per-node von Mises stress `(B, 972)` | |
| - **Parameters:** 582,275 (the 3-channel equilibrium model; sized to match the official LinearNO | |
| Elasticity configuration, ≈585k, and ≤ our Transolver baseline's 713,665) | |
| - **License:** MIT | |
| - **Built on (not original to this work):** the **Transolver** solver (Wu et al., ICML 2024, MIT — its | |
| attention block is reused verbatim) and an independent, from-equations reimplementation of the | |
| **LinearNO** attention block (Hu et al., AAAI 2026). | |
| ### Novelty and prior work | |
| The soft equilibrium-residual penalty `λ‖∇·σ‖²` on a predicted stress field is **established prior art** | |
| (PI-UNet 2022; PiFNO 2024; and especially **P-DivGNN 2025**, which uses essentially the same | |
| soft-divergence loss and the same three-component Cauchy-stress target on an unstructured mesh — a | |
| periodic micro-RVE). We do **not** claim the idea. This | |
| repository's actual contribution is (1) a specific, previously-unattested **instantiation** — the penalty | |
| on a *transformer* operator with a *meshfree, connectivity-free* MLS divergence (exact on affine fields by | |
| the degree-1 GMLS reproduction property), distinct from the FE / FFT / finite-difference operators of all | |
| prior work — and (2) a **cross-operator analysis** that quantifies when that penalty actually helps. | |
| ### Model Sources | |
| - **Reference papers:** Transolver (arXiv:2402.02366, MIT); LinearNO (arXiv:2511.06294); Geo-FNO dataset | |
| (arXiv:2207.05209, MIT); closest prior work P-DivGNN (arXiv:2507.05291). | |
| - **Interactive demo (Space):** https://huggingface.co/spaces/Efradeca/elastic-stress-surrogate | |
| - **Full technical report + committed evidence:** the project repository (`docs/PAPER.md`, | |
| `docs/RESULTS.md`, and the `results/` run logs). | |
| ## Uses | |
| ### Direct Use | |
| Millisecond-scale, CPU prediction of the von Mises stress field of a hyper-elastic unit cell with a | |
| central void — for **design-space exploration / void-shape optimization**: screen many candidate | |
| geometries with the surrogate, then verify only the best few with FEM. | |
| ### Downstream Use | |
| A starting point for fine-tuning to related geometries, materials, or boundary conditions — which | |
| **requires retraining** on the corresponding FEM data. | |
| ### Out-of-Scope Use | |
| This is a **narrow surrogate, not a general stress solver**. Without retraining it is **not** valid for | |
| other materials (e.g. steel), other boundary conditions, or geometries outside the training distribution, | |
| and it **must not** be used as a certified solver for safety-critical decisions. | |
| ## Bias, Risks, and Limitations | |
| - **Narrow domain.** One benchmark, one hyper-elastic (rubber-like Rivlin–Saunders) material, one geometry | |
| family (unit cell, central void, radius 0.2–0.4, clamped bottom, tensile top). Not a foundation model. | |
| - **Units.** Stress is in **consistent non-dimensional benchmark units, not MPa** (traction = 100, | |
| C₁ = 1.86×10⁵); a physical-units result requires re-scaling to the target material. | |
| - **Run-to-run variance.** The training set is small (1000 samples), so per-seed results vary noticeably. | |
| We report median + mean ± std with the **full per-seed distribution** and do not hide outliers. The | |
| shipped checkpoint is the **best of 3** eqreg seeds (0.00597 < 0.00653 < 0.00754). | |
| - **Regularizer scope.** The supervised target is scalar von Mises; the tensor components are *latent*, | |
| shaped by a *discrete* ∇·σ penalty (a physical-consistency prior, not exact continuous momentum balance). | |
| - **The physics benefit is a trade-off, and partly operator-specific.** See *Evaluation → Findings*: the | |
| large residual reduction is mostly measured by the model's own operator, it costs ~+30% accuracy, and it | |
| nearly vanishes when the stress tensor is directly supervised. | |
| - **Out-of-distribution.** Accuracy degrades on geometries far from the training distribution (extreme | |
| voids). The regularizer keeps *its own MLS* residual low OOD, but — per the cross-operator analysis — | |
| that consistency gain is itself largely operator-specific, and it does **not** improve OOD accuracy. | |
| ### Recommendations | |
| Use within the training distribution; verify any safety-critical prediction with FEM; treat the | |
| equilibrium residual ‖∇·σ‖² as a physical-consistency indicator, not a correctness guarantee. | |
| ## How to Get Started with the Model | |
| ```python | |
| from huggingface_hub import snapshot_download | |
| import sys | |
| repo = snapshot_download("Efradeca/transolver-linearno-elasticity") | |
| sys.path.insert(0, repo) # model.py is bundled with the repo | |
| from model import load_checkpoint, predict_stress | |
| model, normalizer, info = load_checkpoint(f"{repo}/model.safetensors", device="cpu") | |
| # coords: (N, 2) node coordinates of a unit cell with a central void | |
| stress = predict_stress(model, coords, normalizer, info) # (N,) von Mises stress, CPU, < 50 ms | |
| ``` | |
| ## Training Details | |
| ### Training Data | |
| **Geo-FNO Elasticity** (Li et al., 2022, arXiv:2207.05209, MIT): FEM simulations of an incompressible | |
| Rivlin–Saunders hyper-elastic (`C₁ = 1.863×10⁵`, `C₂ = 9.79×10³`) `[0,1]²` unit cell with a random central | |
| void (radius 0.2–0.4), 972 nodes per sample; target = per-node von Mises stress. Split: **1000 train / | |
| 200 test** (first-1000 / last-200 of 2000, the upstream Transolver protocol). | |
| **Fixed boundary conditions (identical for every sample):** the bottom edge is **clamped** (zero | |
| displacement) and a uniform **tensile traction `t = [0, 100]`** acts on the top edge (`+y`); left/right | |
| edges are free. The model's only input is the 972 node coordinates — loads, supports, and material are | |
| **not** inputs (they are constant; only the void geometry varies). | |
| ### Training Procedure | |
| - **Preprocessing:** global z-score normalization of the target (de-normalized before the metric). The | |
| regularized model outputs 3 stress-tensor channels and derives von Mises. | |
| - **Hyperparameters:** 8 layers, hidden 128, 8 heads, `dim_head` 16, `M = 64` slices; `shared_qk` LinearNO | |
| attention, 3-channel output. AdamW (lr 1e-3, weight decay 1e-5), cosine annealing, **500 epochs**, batch | |
| size 1, gradient clipping 0.1. | |
| - **Loss:** relative-L2 (on von Mises) + `λ·‖∇·σ‖²` on interior nodes, **λ = 0.01**, MLS divergence with | |
| `k = 12` neighbors. | |
| - **Compute:** single NVIDIA A10 GPU (Modal); total project compute ≈ $90. CPU inference for the demo. | |
| ## Evaluation | |
| ### Testing Data, Factors & Metrics | |
| - **Testing data:** the 200 held-out FEM meshes. | |
| - **Factors:** in-distribution vs. out-of-distribution (geometry-stratified by void size). | |
| - **Metrics:** relative-L2 (primary); the discrete equilibrium residual ‖∇·σ‖²; pooled Pearson r and R² | |
| vs. FEM; peak-stress relative error. | |
| ### Results (Geo-FNO Elasticity test relative L2) | |
| We report **median** (robust to this dataset's high run-to-run variance) alongside mean ± std and seed | |
| count `n`. Accuracy-comparison rows use `torch.compile`; the equilibrium-regularized row is eager. Full | |
| committed per-seed distributions are in the repository (`docs/RESULTS.md`, `results/`). | |
| | Model | median | mean ± std | n | params | | |
| |---|---|---|---|---| | |
| | Published Transolver (Wu et al. 2024) | — | 0.0064 | — | ~0.7M | | |
| | Published LinearNO (Hu et al. 2026, M=64) | — | 0.0050 | — | — | | |
| | Transolver baseline (this work) | 0.00766 | 0.00827 ± 0.00222 | 6 | 713,665 | | |
| | LinearNO, M=64 (this work) | **0.00606** | 0.00645 ± 0.00173 | 8 | 713,089 | | |
| | LinearNO, M=256 (this work) | 0.00635 | 0.00622 ± 0.00071 | 3 | 765,313 | | |
| | **+ equilibrium regularizer (this model)** | 0.00653 | 0.00668 ± 0.00065 | 3 | 582,275 | | |
| **Accuracy: comparable to the baseline.** In this sample LinearNO's median (0.00606) is lower than our | |
| reproduced baseline's (0.00766) at fewer parameters, and it reaches the published ~0.0050 level on good | |
| seeds. Both models show **high run-to-run variance** (`torch.compile` non-determinism on 1000 samples), | |
| with the baseline's higher mean driven by 2 outlier seeds; an attempted mechanistic explanation | |
| (slice-attention instability) was tested and **not supported** by the evidence. LinearNO is therefore best | |
| read as **statistically comparable** to the baseline at ≤ its parameters, both reaching ~0.0064 on good | |
| seeds, without claiming an accuracy improvement. As a cross-check, we re-evaluated the authors' released | |
| official checkpoint on our data with their code and reproduced **0.005007**, confirming the dataset, split, | |
| and metric are identical, so the table is mutually comparable. | |
| **Verification against FEM ground truth** (200 test meshes; shipped checkpoint = best of 3 eqreg seeds): | |
| per-sample relative-L2 mean **0.00597** (median 0.00533), pooled Pearson **r = 0.99993**, **R² = 0.99986**, | |
| peak-stress relative error **0.27%** — reproducible via `scripts/verify_model.py` → `results/verify_model.json`. | |
| ### Research findings | |
| **1. The meshfree MLS operator is rigorously grounded.** It is a degree-1 GMLS derivative: *exact on | |
| affine fields* (~1e-14 in float64) and *O(h)-convergent* on smooth fields (fitted slope 1.01), validated | |
| on connectivity-free point clouds — no mesh required. | |
|  | |
| **2. The headline residual reduction is largely operator-specific ("gaming").** On a clean, | |
| same-architecture, epoch-matched ablation the regularizer cuts the residual **~325× as measured by the | |
| model's own (MLS) operator**, but an **independent FE operator** sees only **~6–53×** — at a **measured | |
| accuracy cost** (test rel-L2 0.00479 → 0.00621, +30%). A model-free control on exactly-divergence-free | |
| analytic fields confirms the FE operator is *comparable* to MLS off the void-rim slivers (the large raw | |
| gap is a sliver artifact), so the operator-agnostic reduction (~53×) still sits **an order of | |
| magnitude below** the trained-operator 325×. The gaming reproduces on the *literal* official LinearNO | |
| block (gap ~25×), so it is a property of the soft-penalty objective, not our implementation. | |
|  | |
| **3. On a supervised tensor the effect nearly vanishes.** On a second benchmark, **Tensile2d** (PLAID), | |
| where the full Cauchy tensor is *directly supervised*, the gaming gap collapses to **~1.3×** and the | |
| regularizer becomes nearly redundant — the supervised data already pins the field near its | |
| discrete-equilibrium floor. (This Tensile2d transfer is a **single-seed indicative** result and is **not** | |
| comparable to the PLAID Tensile2d leaderboard, which scores a different RRMSE metric on a withheld test.) | |
| **4. Out-of-distribution: a reported negative result.** The regularizer does **not** improve OOD accuracy | |
| (degradation +51.5% vs. LinearNO's +52.8%; the plain baseline degrades least, +45.1%). It keeps *its own* | |
| equilibrium residual low OOD (+7%), but on an orthogonal field-smoothness proxy it is indistinguishable | |
| from the unregularized models. | |
| **Takeaway:** the soft equilibrium penalty looks most impressive exactly where it is least physical (an | |
| unsupervised latent tensor), and its benefit largely disappears under direct tensor supervision. The | |
| deployed model's value is its accuracy (R² = 0.99986) and millisecond CPU speed. | |
| ## Technical Specifications | |
| ### Model Architecture and Objective | |
| Transolver-family transformer (coordinate encoder → 8 pre-norm blocks → linear decoder head) with the | |
| LinearNO asymmetric linear-attention block `φ(Q)·(ψᵀ(K)·V)` (φ softmax over the M slices, ψ over the N | |
| points). Objective = relative-L2 data loss on von Mises + λ·‖∇·σ‖² equilibrium penalty (meshfree MLS | |
| divergence). Output: 3 latent Cauchy-stress channels → von Mises. | |
| ### Compute Infrastructure | |
| - **Hardware:** single NVIDIA A10 GPU (Modal) for training; CPU for demo inference. | |
| - **Software:** PyTorch, einops, safetensors. | |
| ## Licenses & Attribution | |
| This model, its weights, and the bundled architecture code are **MIT**-licensed. It builds on and uses | |
| data from the following sources — please honor their licenses: | |
| - **Transolver** (Wu et al., ICML 2024) — attention block reused verbatim, **MIT**. | |
| - **Geo-FNO Elasticity** dataset (Li et al., 2022) — the training/evaluation data, **MIT**. | |
| - **Tensile2d** — the second-benchmark data ([`PLAID-datasets/Tensile2d`](https://huggingface.co/datasets/PLAID-datasets/Tensile2d), | |
| Casenave et al.), licensed **CC-BY-SA-4.0**. Any derived Tensile2d fields we redistribute (e.g. the demo | |
| data in the companion Space) are shared under the **same CC-BY-SA-4.0 (share-alike)** with attribution. | |
| The MIT license of this model applies to the code and weights, **not** to the CC-BY-SA-4.0 Tensile2d data. | |
| ## Citation | |
| If you use this model, please cite the underlying works. | |
| ```bibtex | |
| @inproceedings{wu2024transolver, | |
| title={Transolver: A Fast Transformer Solver for PDEs on General Geometries}, | |
| author={Wu, Haixu and Luo, Huakun and Wang, Haowen and Wang, Jianmin and Long, Mingsheng}, | |
| booktitle={International Conference on Machine Learning (ICML)}, | |
| year={2024} | |
| } | |
| @inproceedings{hu2026linearno, | |
| title={Transolver is a Linear Transformer: Revisiting Physics-Attention through the Lens of Linear Attention}, | |
| author={Hu and Liu and Qiao and Sun and Dou}, | |
| booktitle={AAAI Conference on Artificial Intelligence}, | |
| year={2026} | |
| } | |
| @article{li2022geofno, | |
| title={Fourier Neural Operator with Learned Deformations for PDEs on General Geometries}, | |
| author={Li, Zongyi and others}, | |
| journal={arXiv:2207.05209}, | |
| year={2022} | |
| } | |
| @article{guevaragarban2025pdivgnn, | |
| title={Physics-Informed Graph Neural Networks to Reconstruct Local Fields Considering Finite Strain Hyperelasticity}, | |
| author={Guevara Garban, Manuel R. and Chemisky, Yves and others}, | |
| journal={arXiv:2507.05291}, | |
| year={2025} | |
| } | |
| ``` | |
| ## Model Card Authors & Contact | |
| Efradeca — https://huggingface.co/Efradeca | |