Cross-Domain Pretraining for Steady-State Neural CFD Surrogates
Organizations: Carnegie Mellon University · New York University · Polymathic AI · Princeton University · Flatiron Institute, Center for Computational Astrophysics · Flatiron Institute, Center for Computational Mathematics · Flatiron Institute, Scientific Computing Core
Abstract
Neural surrogates for computational fluid dynamics (CFD) have the potential to greatly enhance engineering innovation through accelerating simulation. However, the primary limitation for neural surrogates is the lack of generalization to geometries and applications beyond the training set, which is significant given the diversity of engineering scenarios. Currently, this is addressed by generating a new dataset for a specific application; however, this requires running costly numerical solvers. In this work, we take a step toward addressing this by studying neural surrogates trained across different geometries, boundary conditions, and fidelities. We find that cross-domain pretraining improves zero- and few-shot performance on held-out datasets relative to both training from scratch and transferring from domain-specific experts. In particular, finetuning a pretrained, cross-domain model can achieve 2-3x lower errors at the same sample size and use 8x fewer samples to achieve the same error, compared to training from scratch. This benefit is architecture agnostic and improves with model size and pretraining dataset diversity. Furthermore, we study how and why cross-domain pretraining works in CFD surrogates, and find that simply pooling steady-state datasets is both sufficient and effective. Given the high cost of generating CFD data, leveraging existing datasets through cross-domain pretraining will likely be a valuable strategy as future surrogates expand to tackle new problems and use cases.
Figures & tables
| Name | Geometry | Closure | Solver | # Samples | # Cells | Re # | Inlet (m/s) | AoA ( ∘ ) |
|---|---|---|---|---|---|---|---|---|
| DrivAerNet++ | DrivAer Car | RANS | OpenFOAM | 8000 | 24M | 8e6 | 30 | - |
| DrivAerML | DrivAer Car | SA-DDES | OpenFOAM | 500 | 160M | 7.2e6 | 38.9 | - |
| WindsorML | Windsor Body | WMLES | Volcano | 355 | 280M | 2.9e6 | 40 | - |
| AhmedML ∗ | Ahmed Body | SA-DDES | OpenFOAM | 500 | 20M | 7.7e5 | 1 | - |
| SHIFT-Sub ∗ | Submarine | RANS | Luminary | 100 | 32M | 3.2e7 | 5 | - |
| Emmi Wing | Tapered Wings | RANS SA | OpenFOAM | 30,000 | 3.3M | 5-20e6 | [150, 300] | [-10, 10] |
| Held-out Datasets: | AhmedML | SHIFT-Sub | SHIFT-CCA | HiLiftAeroML | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| FT Samples: | 0 | 2 | 4 | 8 | 0 | 2 | 4 | 8 | 0 | 2 | 4 | 8 | 0 | 2 | 4 | 8 |
| No Pretraining | ||||||||||||||||
| Random init. | 0.68 | 0.54 | 0.49 | 0.34 | 0.64 | 0.39 | 0.33 | 0.33 | 0.68 | 0.23 | 0.23 | 0.23 | 0.81 | 0.63 | 0.64 | 0.63 |
| Domain Experts | ||||||||||||||||
| DrivAerNet++ | 0.53 | 0.18 | 0.15 | 0.12 | 0.61 | 0.22 | 0.13 | 0.10 | 0.73 | 0.15 | 0.11 | 0.11 | 1.10 | 0.53 | 0.47 | 0.46 |
| Emmi-Wing | 0.73 | 0.21 | 0.21 | 0.19 | 0.66 | 0.24 | 0.19 | 0.16 | 0.61 | 0.14 | 0.12 | 0.12 | 1.10 | 0.52 | 0.48 | 0.49 |
| Model | DrivAerNet | Emmi-Wing | WindsorML | Double-Delta | DrivAerML | SuperWing |
|---|---|---|---|---|---|---|
| DrivAerNet | 0.143 | 0.855 | 0.470 | 0.973 | 0.401 | 0.830 |
| Emmi-Wing | 0.809 | 0.030 | 0.617 | 1.239 | 0.830 | 0.742 |
| WindsorML | 0.678 | 0.747 | 0.067 | 0.956 | 0.701 | 0.736 |
| Double-Delta | 0.766 | 0.657 | 0.587 | 0.057 | 0.781 | 0.668 |
| DrivAerML | 0.421 | 0.786 | 0.458 | 0.966 | 0.048 | 0.803 |
| SuperWing | 0.973 | 0.648 | 0.705 | 1.255 | 1.006 | 0.047 |
Appendix figures & tables35 assets
Supplementary material from the paper’s appendix.
Appendix
| SMART | SMART-IC | AB-UPT | Transolver++ | ||||
|---|---|---|---|---|---|---|---|
| Parameter | Value | Parameter | Value | Parameter | Value | Parameter | Value |
| Model size | 32.0M | Model size | 32.4M | Model size | 36.1M | Model size | 29.1M |
| Hidden dim | 384 | Hidden dim | 384 | Hidden dim | 384 | Hidden dim | 384 |
| Heads | 8 | Heads | 8 | Heads | 8 | Heads | 8 |
| Enc./dec. blocks | 12 | Enc./dec. blocks | 8 | Shared blocks | ppscscs | Layers | 12 |
| Num latents | 4096 | Num latents | 4096 | Supernodes | 1024 | Slices | 32 |
| Held-out Datasets: | AhmedML | SHIFT-Sub | SHIFT-CCA | HiLiftAeroML | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| FT Samples: | 0 | 2 | 4 | 8 | 0 | 2 | 4 | 8 | 0 | 2 | 4 | 8 | 0 | 2 | 4 | 8 |
| No Pretraining | ||||||||||||||||
| Random init. | 0.68 | 0.35 | 0.33 | 0.25 | 0.65 | 0.32 | 0.28 | 0.30 | 0.69 | 0.28 | 0.27 | 0.26 | 0.82 | 0.63 | 0.63 | 0.61 |
| Domain Experts | ||||||||||||||||
| DrivAerNet++ | 0.61 | 0.24 | 0.21 | 0.16 | 0.62 | 0.28 | 0.23 | 0.17 | 0.71 | 0.19 | 0.16 | 0.16 | 0.90 | 0.53 | 0.48 | 0.48 |
| Emmi-Wing | 0.74 | 0.24 | 0.22 | 0.19 | 0.68 | 0.29 | 0.24 | 0.22 | 0.70 | 0.20 | 0.18 | 0.17 | 1.02 | 0.60 | 0.54 | 0.53 |
| Held-out Datasets: | AhmedML | SHIFT-Sub | SHIFT-CCA | HiLiftAeroML | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| FT Samples: | 0 | 2 | 4 | 8 | 0 | 2 | 4 | 8 | 0 | 2 | 4 | 8 | 0 | 2 | 4 | 8 |
| No Pretraining | ||||||||||||||||
| Random Init. | 0.68 | 0.36 | 0.34 | 0.30 | 0.64 | 0.31 | 0.29 | 0.27 | 0.68 | 0.22 | 0.21 | 0.20 | 0.81 | 0.61 | 0.59 | 0.58 |
| Domain Experts | ||||||||||||||||
| DrivAerNet++ | 0.59 | 0.27 | 0.27 | 0.19 | 0.57 | 0.28 | 0.24 | 0.22 | 0.79 | 0.21 | 0.19 | 0.18 | 0.97 | 0.56 | 0.46 | 0.51 |
| Emmi-Wing | 0.70 | 0.27 | 0.24 | 0.21 | 0.66 | 0.29 | 0.24 | 0.22 | 0.65 | 0.21 | 0.18 | 0.18 | 1.01 | 0.58 | 0.50 | 0.49 |
| Model | DrivAerNet | DrivAerML | Emmi-Wing | WindsorML | SuperWing | Double-Delta | Mean | |
|---|---|---|---|---|---|---|---|---|
| Expert | SMART | 0.142 | 0.047 | 0.030 | 0.065 | 0.047 | 0.055 | 0.064 |
| AB-UPT | 0.148 | 0.057 | 0.030 | 0.068 | 0.058 | 0.064 | 0.071 | |
| Transolver++ | 0.150 | 0.067 | 0.029 | 0.074 | 0.063 | 0.071 | 0.076 | |
| Joint | SMART | 0.173 | 0.134 | 0.041 | 0.074 | 0.082 | 0.090 | 0.099 |
| AB-UPT | 0.177 | 0.148 | 0.041 | 0.080 | 0.089 | 0.097 | 0.105 | |
| Transolver++ | 0.184 | 0.166 | 0.044 | 0.097 | 0.107 | 0.124 | 0.120 |
| Quantity | Dataset-specific | Global |
|---|---|---|
| Pressure coefficient | , | |
| Skin friction coefficient | , | |
| Velocity | , | , , |
| Simulation parameters | ||
| Geometry and queries | , | , |
| Estimated from simulation | for every field | None |
| Held-out Datasets: | AhmedML | SHIFT-Sub | SHIFT-CCA | HiLiftAeroML | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| FT Samples: | 0 | 2 | 4 | 8 | 0 | 2 | 4 | 8 | 0 | 2 | 4 | 8 | 0 | 2 | 4 | 8 |
| No Pretraining | ||||||||||||||||
| Random Init. | 0.82 | 0.42 | 0.40 | 0.33 | 0.82 | 0.38 | 0.31 | 0.30 | 0.85 | 0.22 | 0.21 | 0.21 | 0.90 | 0.65 | 0.65 | 0.64 |
| Domain Experts | ||||||||||||||||
| DrivAerNet++ | 0.53 | 0.15 | 0.13 | 0.12 | 0.89 | 0.19 | 0.12 | 0.09 | 0.89 | 0.13 | 0.11 | 0.10 | 0.94 | 0.55 | 0.47 | 0.46 |
| Emmi-Wing | 0.71 | 0.20 | 0.20 | 0.19 | 0.67 | 0.24 | 0.17 | 0.15 | 0.68 | 0.14 | 0.12 | 0.12 | 0.82 | 0.54 | 0.46 | 0.46 |
| Model | Normalization | DrivAerNet | DrivAerML | Emmi-Wing | WindsorML | SuperWing | Double-Delta | Mean |
|---|---|---|---|---|---|---|---|---|
| Expert | Dataset-specific | 0.142 | 0.047 | 0.030 | 0.067 | 0.048 | 0.057 | 0.065 |
| Global | 0.142 | 0.046 | 0.030 | 0.067 | 0.047 | 0.058 | 0.065 | |
| Joint | Dataset-specific | 0.173 | 0.134 | 0.043 | 0.074 | 0.082 | 0.090 | 0.099 |
| Global | 0.172 | 0.132 | 0.041 | 0.074 | 0.079 | 0.091 | 0.098 |
| Held-out Datasets: | AhmedML | SHIFT-Sub | SHIFT-CCA | HiLiftAeroML | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| FT Samples: | 0 | 2 | 4 | 8 | 0 | 2 | 4 | 8 | 0 | 2 | 4 | 8 | 0 | 2 | 4 | 8 |
| No Pretraining | ||||||||||||||||
| Random Init. | 0.77 | 0.57 | 0.54 | 0.40 | 0.83 | 0.53 | 0.49 | 0.47 | 0.87 | 0.53 | 0.45 | 0.46 | 0.87 | 0.76 | 0.75 | 0.76 |
| Domain Experts | ||||||||||||||||
| DrivAerNet++ | 0.57 | 0.17 | 0.14 | 0.12 | 0.64 | 0.31 | 0.23 | 0.19 | 0.88 | 0.34 | 0.26 | 0.24 | 0.97 | 0.65 | 0.57 | 0.49 |
| Emmi-Wing | 0.81 | 0.22 | 0.21 | 0.19 | 0.77 | 0.38 | 0.31 | 0.27 | 0.77 | 0.28 | 0.26 | 0.26 | 0.98 | 0.62 | 0.54 | 0.57 |
| Model | DrivAerNet | Emmi-Wing | WindsorML | Double-Delta | DrivAerML | SuperWing |
|---|---|---|---|---|---|---|
| Joint (Base) | 0.174 | 0.043 | 0.075 | 0.091 | 0.134 | 0.082 |
| Joint (121M) | 0.150 | 0.039 | 0.072 | 0.070 | 0.074 | 0.074 |
| Joint (6xSteps) | 0.150 | 0.029 | 0.069 | 0.063 | 0.073 | 0.041 |
| Held-out Datasets: | AhmedML | SHIFT-Sub | SHIFT-CCA | HiLiftAeroML | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| FT Samples: | 0 | 2 | 4 | 8 | 0 | 2 | 4 | 8 | 0 | 2 | 4 | 8 | 0 | 2 | 4 | 8 |
| Joint (Base) | 0.31 | 0.12 | 0.10 | 0.09 | 0.52 | 0.14 | 0.10 | 0.09 | 0.52 | 0.11 | 0.10 | 0.10 | 0.90 | 0.46 | 0.34 | 0.33 |
| Joint (121M) | 0.31 | 0.12 | 0.09 | 0.08 | 0.53 | 0.16 | 0.11 | 0.08 | 0.55 | 0.09 | 0.08 | 0.08 | 0.92 | 0.45 | 0.32 | 0.28 |
| Joint (6xSteps) | 0.32 | 0.12 | 0.10 | 0.08 | 0.61 | 0.16 | 0.10 | 0.09 | 0.55 | 0.10 | 0.09 | 0.09 | 1.11 | 0.44 | 0.32 | 0.30 |
| Model | DrivAerNet | Emmi-Wing | WindsorML | Double-Delta | DrivAerML | SuperWing |
|---|---|---|---|---|---|---|
| Joint (Base) | 0.174 | 0.043 | 0.075 | 0.091 | 0.134 | 0.082 |
| Joint (IC) | 0.176 | 0.075 | 0.076 | 0.098 | 0.144 | 0.098 |
| Held-out Datasets: | AhmedML | SHIFT-Sub | SHIFT-CCA | HiLiftAeroML | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| FT Samples: | 0 | 2 | 4 | 8 | 0 | 2 | 4 | 8 | 0 | 2 | 4 | 8 | 0 | 2 | 4 | 8 |
| No Pretraining | ||||||||||||||||
| Random init. | 0.82 | 0.74 | 0.65 | 0.25 | 0.88 | 0.53 | 0.39 | 0.37 | 0.97 | 0.18 | 0.16 | 0.16 | 0.96 | 0.68 | 0.69 | 0.68 |
| Domain Experts | ||||||||||||||||
| DrivAerNet++ | 0.65 | 0.21 | 0.17 | 0.14 | 0.87 | 0.36 | 0.20 | 0.13 | 0.96 | 0.13 | 0.08 | 0.07 | 1.08 | 0.59 | 0.53 | 0.52 |
| Emmi-Wing | 0.85 | 0.24 | 0.22 | 0.20 | 0.90 | 0.40 | 0.30 | 0.22 | 0.89 | 0.12 | 0.10 | 0.10 | 1.12 | 0.58 | 0.51 | 0.52 |
| Held-out Datasets: | AhmedML | SHIFT-Sub | SHIFT-CCA | HiLiftAeroML | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| FT Samples: | 0 | 2 | 4 | 8 | 0 | 2 | 4 | 8 | 0 | 2 | 4 | 8 | 0 | 2 | 4 | 8 |
| No Pretraining | ||||||||||||||||
| Random init. | 0.65 | 0.61 | 0.60 | 0.49 | 0.41 | 0.35 | 0.34 | 0.32 | 0.41 | 0.30 | 0.31 | 0.31 | 0.77 | 0.73 | 0.74 | 0.73 |
| Domain Experts | ||||||||||||||||
| DrivAerNet++ | 0.64 | 0.17 | 0.14 | 0.12 | 0.45 | 0.19 | 0.13 | 0.12 | 0.44 | 0.20 | 0.18 | 0.18 | 0.86 | 0.62 | 0.56 | 0.55 |
| Emmi-Wing | 0.75 | 0.19 | 0.19 | 0.18 | 0.49 | 0.19 | 0.16 | 0.15 | 0.39 | 0.19 | 0.18 | 0.18 | 1.39 | 0.63 | 0.59 | 0.61 |
| Held-out Datasets: | AhmedML | SHIFT-Sub | SHIFT-CCA | HiLiftAeroML | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| FT Samples: | 0 | 2 | 4 | 8 | 0 | 2 | 4 | 8 | 0 | 2 | 4 | 8 | 0 | 2 | 4 | 8 |
| No Pretraining | ||||||||||||||||
| Random init. | 0.98 | 0.57 | 0.47 | 0.36 | 1.00 | 0.42 | 0.33 | 0.36 | 0.99 | 0.21 | 0.21 | 0.21 | 0.98 | 0.62 | 0.63 | 0.63 |
| Domain Experts | ||||||||||||||||
| DrivAerNet++ | 0.63 | 0.24 | 0.21 | 0.18 | 0.85 | 0.24 | 0.13 | 0.09 | 1.14 | 0.14 | 0.09 | 0.08 | 1.48 | 0.53 | 0.46 | 0.46 |
| Emmi-Wing | 1.01 | 0.28 | 0.30 | 0.27 | 1.01 | 0.29 | 0.21 | 0.18 | 0.91 | 0.13 | 0.10 | 0.10 | 1.13 | 0.51 | 0.46 | 0.47 |
| Held-out Datasets: | AhmedML | SHIFT-Sub | SHIFT-CCA | HiLiftAeroML | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| FT Samples: | 0 | 2 | 4 | 8 | 0 | 2 | 4 | 8 | 0 | 2 | 4 | 8 | 0 | 2 | 4 | 8 |
| No Pretraining | ||||||||||||||||
| Random init. | 0.26 | 0.26 | 0.25 | 0.25 | 0.26 | 0.25 | 0.25 | 0.25 | 0.35 | 0.24 | 0.25 | 0.25 | 0.53 | 0.49 | 0.50 | 0.49 |
| Domain Experts | ||||||||||||||||
| DrivAerNet++ | 0.19 | 0.09 | 0.07 | 0.06 | 0.27 | 0.08 | 0.07 | 0.06 | 0.39 | 0.12 | 0.11 | 0.11 | 0.97 | 0.38 | 0.33 | 0.33 |
| Emmi-Wing | 0.29 | 0.12 | 0.13 | 0.12 | 0.24 | 0.09 | 0.09 | 0.08 | 0.25 | 0.12 | 0.11 | 0.12 | 0.77 | 0.37 | 0.35 | 0.36 |