AneumoBench: A Source-Linked Benchmark for Synthetic-Geometry Transfer in Aneurysm CFD
Organizations: Artificial Intelligence Innovation and Incubation Institute, Fudan University, Shanghai, China · Shanghai Academy of Artificial Intelligence for Science, Shanghai, China · Human Phenome Institute, Fudan University, Shanghai, China · Huashan Hospital, Fudan University, Shanghai, China
Abstract
Scientific machine learning uses simulation data to train surrogate models for fast physical-field prediction across geometries. Local shape editing can expand limited geometry collections, but whether its variants improve prediction on unseen geometries, and how to allocate them across sources, require controlled evaluation. We introduce AneumoBench, a dataset and benchmark linking 401 source aneurysm geometries to 9,693 locally edited descendant records, with computational fluid dynamics (CFD) fields computed on both. It contains 80,752 steady velocity-pressure cases across eight inlet conditions and 9,715 transient sequences of velocity, pressure, and wall shear stress (WSS). Each sequence contains 100 frames sampled at 0.01-s intervals from a 1-s cardiac cycle. Mesh, point, and voxel interfaces support steady field prediction and WSS forecasting from four observed frames. With family-disjoint splits, we compare source-only training, descendant training, and descendant pretraining followed by source fine-tuning across nine architectures on 79 held-out sources. Under the reported schedules, two-stage training lowers steady-field and reset-window WSS errors relative to source-only training. With the number of sampled fields and training updates fixed within each comparison, GraphSAGE benefits from descendant training and from distributing a fixed number of descendants across more sources. For WSS, reset-window gains do not consistently persist through 96-step rollout, and lower trajectory error need not improve cycle-level shear metrics or hotspot localization. These data and protocols enable researchers to compare descendant selection and training strategies on the same unseen source geometries.
Figures & tables
| Resource | Data structure | Evaluation setting | Time dependence |
| AneuG-Flow | Generated aneurysm geometries | Geometry-to-field learning | Steady and pulsatile |
| AirfRANS | Airfoils and operating conditions | Data scarcity and extrapolation | Steady |
| APEBench | PDE trajectories | Training and rollout | Time-dependent |
| RealPDEBench | Simulation–measurement pairs | Simulation-to-measurement transfer | Time-dependent |
| AneumoBench | Source-linked geometry families | Unseen-source prediction and training-pool comparisons | Steady and pulsatile |
| Steady velocity | Stored-gauge pressure | Reset-window WSS | |||||||
| Model | R1 | R2 | R3 | R1 | R2 | R3 | R1 | R2 | R3 |
| Unstructured sampled points | |||||||||
| GraphSAGE | 0.8269 | 0.6812 | 0.6521 | 0.7131 | 0.5480 | 0.5525 | 0.3571 | 0.2561 | 0.2235 |
| Transolver | 1.0031 | 0.7329 | 0.6979 | 0.8672 | 0.5808 | 0.5783 | 0.1253 | 0.1092 | 0.1084 |
| Galerkin Transformer | 1.0033 | 0.8477 | 0.8150 | 0.8682 | 0.6417 | 0.6667 | 0.1210 | 0.1094 | 0.1090 |
| PointNet | 0.9859 | 0.9371 | 0.8899 | 0.8489 | 0.7732 | 0.7718 | 0.1889 | 0.1481 | 0.1484 |
| Model | Source-only | ||||
| GraphSAGE | |||||
| Transolver |
| Model | Reset window | 96-step rollout | Pattern | ||||
| R1 | R3 | R1 | R3 | ||||
| Transolver | 0.128 | 0.109 | 1.279 | 0.966 | Both improve | ||
| Voxel U-Net | 0.247 | 0.208 | 0.954 | 0.956 | Reset gain; rollout mixed | ||
| PointwiseMLP | 0.146 | – | – | 0.735 | – | – | Local-history reference |
| Persistence | 0.258 | – | – | 0.881 | – | – | Training-free |
| Endpoint | R1 initialization | R3 initialization |
| 96-step rollout RelL2 | ||
| TAWSS relative error | ||
| OSI absolute error |
Appendix figures & tables49 assets
Supplementary material from the paper’s appendix.
Appendix
| Release unit | Train | Validation | Test | Total | Evaluation treatment |
| Source geometries | 280 (69.8%) | 42 (10.5%) | 79 (19.7%) | 401 | Split unit |
| Descendant records, eligible | 6,687 (69.0%) | 1,055 (10.9%) | 1,951 (20.1%) | 9,693 | Inherit source split |
| Distinct wall-coordinate arrays | 6,638 | 1,052 | 1,943 | 9,633 | Coordinate-array equality |
| Descendant transient, available | 6,438 (69.1%) | 1,001 (10.7%) | 1,878 (20.2%) | 9,317 | Readable 101-entry HDF5 |
| Descendant transient, unavailable | 249 | 54 | 73 | 376 | Tracked in manifest; excluded from transient use |
| Source transient, archived/readable | 280 | 42 | 79 | 401 | Three train-only exclusions below |
| Population | Operational transition | Removed | Retained |
| Source acquisition inventory | Locally archived source surfaces | – | 427 |
| Sources | transient outputs (25) or no complete eight-flow steady set (1) | 26 | 401 |
| Raw descendant inventory | All records; every record has a source mapping | – | 10,660 |
| Descendants | Incomplete transient index (330) or missing eight-flow steady set (7), overlap 2 | 335 | 10,325 |
| Descendants | Otherwise complete but linked to one of the 26 excluded sources | 632 | 9,693 |
| Descendants | Missing conversion source files | 26 | 9,667 |
| Audit quantity | Population / comparison | Result |
| Surface variation | Source–descendant ( ) | 0.0519 [0.0421–0.0625] |
| Surface variation | Random source–source pairs ( ) | 0.0613 [0.0533–0.0743] |
| Descriptor proximity | Nearest sibling | 0.2056 [0.1481–0.2777] |
| Descriptor proximity | Nearest non-sibling | 0.2614 [0.2045–0.3343] |
| Exact coordinate arrays | Groups / affected / excess records | 47 / 107 / 60 |
| Distinct coordinate arrays | One canonical record per exact group | 9,633 |
| Cohort size | CFD coverage | Benchmark protocol | ||||||
| Resource | Source units | Synthetic records | Steady | Pulsatile cases (frames) | Linked lineage | Inherited split | Matched exposure | Recursive rollout |
| Aneurisk | 103 | – | – | – | n/a | n/a | n/a | – |
| CMHA | 143 | – | – | – | n/a | n/a | n/a | – |
| AneuG-Flow | – | 14,000 | 14,000 | 730 (80) | – | – | – | – |
| AneumoBench | 401 | 9,693 | 80,752 | 9,715 (100) | Yes | Yes | Yes | Yes |
| Quantity | Stored solver form | Released/evaluated form | Domain |
| Coordinates | Geometry source units standardized to metres | in m; optional unit-bbox copy for intervention | Volume or wall vertices |
| Velocity | Internal volume mesh | ||
| Pressure | in Pa | Internal volume mesh | |
| Wall shear stress | Kinematic wallShearStress vector | in Pa | Wall surface mesh |
| TAWSS | Not stored as a target | Cycle mean of in Pa | Wall surface vertices |
| OSI | Not stored as a target | Dimensionless vector-cycle index in | Wall surface vertices |
| Diagnostic | Source geometries | Descendants | ||
| Mean Reynolds number | 608 [479, 748] | 398 | 602 [477, 743] | 9,317 |
| Womersley | 2.01 [1.63, 2.55] | 398 | 2.03 [1.65, 2.56] | 9,317 |
| Peak velocity ( ) | 3.53 [2.7, 5.02] | 398 | 3.71 [2.75, 5.26] | 9,317 |
| WSS p99 (Pa) | 146 [83.1, 249] | 398 | 164 [93.4, 290] | 9,317 |
| Mean TAWSS (Pa) | 17 [10.3, 27.8] | 398 | 21.8 [13.2, 37.4] | 9,317 |
| Mean OSI | 0.0224 [0.0144, 0.0356] | 398 | 0.0182 [0.0125, 0.0274] | 9,317 |
| Data form | Principal contents | Benchmark role | Audited accounting |
| STL surface | Vascular lumen boundary | Geometry/provenance | 401 sources + 9,693 eligible descendant records |
| NIfTI mask | Binary voxelized lumen | Auxiliary binary geometry mask | Linked by geometry manifest |
| CFD mesh / VTU/VTK | Volume grid, boundary and field exports | Mesh-resolved CFD outputs and provenance | Availability recorded per modality |
| Steady HDF5 | Coordinates, boundary/flow features, , | Eight-flow field prediction | 3,208 source + 77,544 descendant files |
| Transient HDF5 | Volume mesh, , , boundary meshes, WSS, time | WSS 4 4 and 4 96 forecasting; volume fields retained | 401 archived source (398 usable) + 9,317 descendants |
| Task | Data form | Model input | Target | Within-case sampling | Primary endpoint | Extended diagnostics |
| Steady field | Point / unstructured | , boundary type, wall distance, mass flow | 20,000 sampled volume points; fixed diagnostic subset | Source RelL2 | MSE, RMSE, MAE, , direction | |
| Steady field | Voxel | Occupancy, query coordinates, mass flow | Complete constructed fluid mask | Source RelL2 | Same physical-unit metrics | |
| Transient reset | Point / surface | 4 WSS frames, wall query, phase | Next 4 WSS frames | 4,096 sampled wall points; fixed diagnostic subset; stride 5 | Source-window RelL2 | RMSE, magnitude and angle |
| Transient reset | Voxel | Occupancy grid, wall queries, 4 WSS frames, phase | Next 4 WSS frames | Same fixed wall subset | Source-window RelL2 | Same physical-unit metrics |
| Transient rollout | Point or voxel | Geometry, phase, and first 4 WSS frames | Next 96 frames | No ground-truth reset | Mean | Mean cumulative error, TAWSS, OSI, top-10%, peak time/magnitude |
| Stage | Input | Output | Recorded checks |
| Surface repair | Public-source triangular surface | Watertight repaired source surface | Topology defects, source identifier |
| Local deformation | Editing surface after sac removal and selected wall patch | Synthetic descendant surface | Source–descendant mapping and fixed output surface |
| Voxelization | Descendant or source STL | Binary NIfTI lumen mask | Geometry identifier, foreground/background convention |
| CFD preparation | Repaired STL | Named volume mesh and boundary patches | ANSYS 2026 R1; inlet/outlet/wall labels and mesh settings |
| Steady solve | Mesh and one mass-flow condition | volume fields | OpenFOAM v2312 icoFoam ; PISO; residual criterion and complete case configuration archived |
| Transient solve | Mesh and periodic waveform | 101-entry raw field sequence | OpenFOAM v2312 pimpleFoam ; s; PIMPLE/convergence logs and complete case configuration archived |
| Channel | Mean | Standard deviation |
| Steady source | ||
| 2,240 training flow cases; 514,573,832 points | ||
| Model | Steady | Transient |
| Unstructured sampled points | ||
| GraphSAGE | 0.37M | 0.37M |
| Transolver | 3.86M | 3.87M |
| Galerkin Transformer | 1.10M | 1.10M |
| PointNet | 0.23M | 0.23M |
| Regular voxel geometry ( ) | ||
| Model | Width | Depth | Heads | Batch (steady / transient) | Geometry/operator setting |
| PointwiseMLP (aux.) | 128 | 4 | – | – / 32 | Shared residual multilayer perceptron; no point interaction |
| PointNet | 16 | 8 | – | 32 / 64 | Point-set multilayer perceptron |
| GraphSAGE | 128 | 8 | – | 32 / 32 | 16-nearest-neighbor graph |
| Transolver | 256 | 8 | 8 | 16 / 16 | 32 physics-attention slices |
| Galerkin Transformer | 128 | 8 | 8 | 16 / 32 | Galerkin attention |
| U-Net | 64 | 4 | – | 32 / 16 | voxel grid |
| Regime | Training data | Initial weights | Steady epochs | Transient epochs | Learning rate | Selection / evaluation |
| R1 | Source geometries | Random | 200 | 200 | Minimum validation endpoint; held-out sources | |
| R2 | Synthetic descendants of training sources | Random | 200 | 50 | Source-validation selection; common source test | |
| R3 | Source training geometries | Best R2 checkpoint | 100 | 100 | Minimum validation endpoint; same test cohort |
| Model | Representation | Field | RelL2 | Physical-unit RMSE |
| PointNet | Point set | Velocity | 0.891 0.001 | 0.12606 0.00009 |
| Pressure | 0.773 0.003 | 130.7 0.2 | ||
| GraphSAGE | 16-NN graph | Velocity | 0.654 0.001 | 0.09486 0.00001 |
| Pressure | 0.560 0.006 | 96.4 0.3 | ||
| U-Net | voxel | Velocity | 0.704 0.002 | 0.09795 0.00010 |
| Pressure | 0.795 0.012 | 125.4 0.2 |
| Training pool | Records | Velocity RelL2 | Pressure RelL2 | Wins | ||
| Source geometries | 280 | 0.830 0.005 | – | 0.731 0.027 | – | – |
| Descendant | 280 | 0.815 0.002 | -1.7% | 0.706 0.012 | -3.3% | 3/3 |
| Descendant | 560 | 0.785 0.002 | -5.4% | 0.680 0.013 | -6.8% | 3/3 |
| Descendant | 1,120 | 0.762 0.003 | -8.2% | 0.663 0.003 | -9.2% | 3/3 |
| Descendant | 2,238 | 0.739 0.002 | -11.0% | 0.630 0.017 | -13.8% | 3/3 |
| Descendant | 4,422 | 0.738 0.006 | -11.1% | 0.635 0.004 | -13.0% | 3/3 |
| Velocity RelL2 | Pressure RelL2 | |||||
| Seed | Source only | Descendant | Paired | Source only | Descendant | Paired |
| 42 | 0.8263 | 0.7649 | -7.4% | 0.7008 | 0.6607 | -5.7% |
| 43 | 0.8274 | 0.7593 | -8.2% | 0.7529 | 0.6660 | -11.6% |
| 44 | 0.8361 | 0.7616 | -8.9% | 0.7383 | 0.6615 | -10.4% |
| Mean (SD) | 0.830 (0.005) | 0.762 (0.003) | -8.2 (0.7)% | 0.731 (0.027) | 0.663 (0.003) | -9.2 (3.1)% |
| Velocity RelL2 | Pressure RelL2 | |||||
| Allocation | Mean SD | Wins | Mean SD | Wins | ||
| 0.799 0.019 | – | – | 0.717 0.032 | – | – | |
| 0.818 0.012 | +0.018 | 0/3 | 0.743 0.027 | +0.026 | 0/3 | |
| 0.821 0.014 | +0.022 | 1/3 | 0.743 0.029 | +0.026 | 1/3 | |
| 0.848 0.022 | +0.049 | 0/3 | 0.786 0.040 | +0.069 | 1/3 | |
| Allocation | Stored-gauge RelL2 | Centered-pressure RelL2 | Centered-pressure RMSE (Pa) | Pressure-drop relative error |
| 0.717 | 1.082 | 96.47 | 0.514 | |
| 0.743 | 1.117 | 99.07 | 0.505 | |
| 0.743 | 1.127 | 98.60 | 0.546 | |
| 0.786 | 1.174 | 101.94 | 0.650 |
| Method | Window RelL2 | Rollout RelL2 | Mean cumulative RelL2 |
| Copy-last persistence | 0.2580 [0.2482, 0.2679] | 0.8806 [0.8785, 0.8828] | 0.7389 [0.7370, 0.7407] |
| Linear extrapolation | 0.3426 [0.3229, 0.3618] | 0.9929 [0.9802, 1.0135] | 0.8040 [0.7962, 0.8152] |
| History+phase ridge, no coordinates | 0.2706 [0.2613, 0.2810] | 0.9911 [0.9888, 0.9937] | 0.8624 [0.8582, 0.8668] |
| PointwiseMLP R1, seed 42 | 0.1463 [0.1341, 0.1596] | 0.7797 [0.7614, 0.7986] | 0.6446 [0.6282, 0.6612] |
| PointwiseMLP R1, 3-seed mean SD |
| Model | Regime | Reset RelL2 | Rollout RelL2 | TAWSS rel. | OSI abs. | Top-10% overlap |
| Transolver | R1 | 0.1253 | 1.5907 | 1.2793 | 0.0383 | 0.7898 |
| R2 | 0.1092 | 0.9810 | 0.8873 | 0.0602 | 0.8211 | |
| R3 | 0.1084 | 0.9836 | 0.8785 | 0.0569 | 0.8240 | |
| Voxel U-Net | R1 | 0.2369 | 0.9118 | 0.7673 | 0.0461 | 0.6128 |
| R2 | 0.2216 | 0.9450 | 0.8296 | 0.0380 | 0.4118 | |
| R3 | 0.2064 | 0.9824 | 0.8740 | 0.0381 | 0.6117 |
| Model | Seed | R1 reset | R3 reset | R1 rollout | R3 rollout | ||
| Transolver | 42 | 0.1253 | 0.1084 | -0.0169 | 1.5907 | 0.9836 | -0.6071 |
| 43 | 0.1272 | 0.1091 | -0.0181 | 1.1231 | 0.9467 | -0.1764 | |
| 44 | 0.1305 | 0.1083 | -0.0222 | 1.1219 | 0.9673 | -0.1546 | |
| Mean SD | |||||||
| Voxel U-Net | 42 | 0.2369 | 0.2064 | -0.0304 | 0.9118 | 0.9824 | +0.0707 |
| 43 | 0.2469 | 0.2098 | -0.0371 | 0.9835 | 0.9509 | -0.0326 |
| Feedback | Reset | 96-step rollout | TAWSS rel. | OSI abs. | Top-10% overlap | |
| 4 | Teacher forcing | |||||
| 4 | Full feedback | 0.1073 | 0.830 | |||
| 8 | Teacher forcing | 0.0273 | ||||
| 8 | Full feedback | |||||
| 16 | Teacher forcing | |||||
| 16 | Full feedback | 0.3673 | 0.2088 |
| Endpoint | R1 initialization | R3 initialization | Difference |
| Reset RelL2 | |||
| 96-step rollout RelL2 | |||
| Mean cumulative RelL2 | |||
| TAWSS relative error | |||
| OSI absolute error | |||
| Top-10% overlap |
| Method | Rollout RelL2 | Mean cumulative RelL2 | TAWSS rel. | OSI abs. |
| Persistence | 0.8806 | 0.7389 | 0.7254 | 0.0298 |
| Linear extrapolation | 0.9929 | 0.8040 | 0.8349 | 0.1482 |
| History+phase ridge | 0.9911 | 0.8624 | 0.9045 | 0.0696 |
| PointwiseMLP R1 | 0.7346 | 0.6013 | 0.5694 | 0.0287 |
| U-Net R3 | 0.9824 | 0.8171 | 0.8740 | 0.0381 |
| U-Net SS(0.5) | 0.9711 | 0.8084 | 0.8670 | 0.0364 |
| Model | Track | Regime | Drop abs. (Pa) | Drop rel. | |||||
| GraphSAGE | Points | R1 | 0.8269 | 0.8011 | 0.7131 | 0.6769 | 1.1994 | 186.6 | 0.5317 |
| GraphSAGE | Points | R3 | 0.6521 | 0.6395 | 0.5525 | 0.5287 | 0.9211 | 137.7 | 0.4176 |
| Transolver | Points | R1 | 1.0031 | 1.0009 | 0.8672 | 0.8021 | 1.0228 | 401.6 | 0.9962 |
| Transolver | Points | R3 | 0.6979 | 0.6714 | 0.5783 | 0.5062 | 0.8614 | 124.5 | 0.3864 |
| U-Net | Voxel | R1 | 0.9867 | 0.9867 | 0.8147 | 0.8147 | 1.0174 | – | – |
| U-Net | Voxel | R3 | 0.7050 | 0.7050 | 0.7930 | 0.7930 | 1.1333 | – | – |
| Model | Regime | Velocity RelL2 | Stored-gauge pressure RelL2 | Centered-pressure RelL2 |
| U-Net | R1 | 0.9803 | 1.5510 | 1.3582 |
| R2 | 0.8209 | 0.7442 | 1.0601 | |
| R3 | 0.7264 | 0.6702 | 0.9786 | |
| FNO | R1 | 1.0093 | 1.3407 | 1.2235 |
| R2 | 0.8585 | 1.0012 | 1.2836 | |
| R3 | 0.8403 | 0.9276 | 1.2037 |
| Velocity | Stored-gauge pressure | |||
| Evaluation | ||||
| Original inputs and scoring | ||||
| Active scoring, original inputs | ||||
| Active inputs and scoring | ||||
| Model | Fixed 4,096 | Fixed 8,192 | Full surface |
| Transolver | 0.108406 | 0.108419 | 0.108648 |
| Galerkin Transformer | 0.109043 | 0.108883 | 0.108975 |
| Track | Model | Base R3 | Learning rate | Synthetic normalization |
| Unstructured | Galerkin Transformer | 0.8150 / 0.6667 | 0.8227 / 0.6880 | 0.8143 / 0.6548 |
| Unstructured | GraphSAGE | 0.6521 / 0.5525 | 0.6550 / 0.5465 | 0.6542 / 0.5421 |
| Unstructured | PointNet | 0.8899 / 0.7718 | 0.8945 / 0.7598 | 0.9021 / 0.7687 |
| Unstructured | Transolver | 0.6979 / 0.5783 | 0.6997 / 0.5875 | 0.6997 / 0.5920 |
| Voxel | FNO | 0.8387 / 0.9126 | 0.8405 / 0.9278 | 0.8414 / 0.9106 |
| Voxel | U-FNO | 0.7568 / 0.7925 | 0.7603 / 0.8168 | 0.7622 / 0.8279 |
| Model | RelL2 95% CI | Mean MSE | Mean RMSE | Mean MAE |
| Unstructured | ||||
| GraphSAGE | 0.6521 [0.6070, 0.6982] | 1.342e-02 | 0.0948 | 0.0622 |
| Transolver | 0.6979 [0.6467, 0.7510] | 1.677e-02 | 0.1033 | 0.0673 |
| Galerkin Transformer | 0.8150 [0.7536, 0.8769] | 2.332e-02 | 0.1206 | 0.0786 |
| PointNet | 0.8899 [0.8257, 0.9593] | 2.291e-02 | 0.1260 | 0.0880 |
| Voxel | ||||
| Model | RelL2 95% CI | Mean MSE ( ) | Mean RMSE (Pa) | Mean MAE (Pa) | Mean case |
| Unstructured | |||||
| GraphSAGE | 0.5525 [0.4679, 0.6570] | 2.938e+04 | 96.151 | 75.164 | -0.9774 |
| Transolver | 0.5783 [0.5083, 0.6681] | 3.697e+04 | 107.712 | 85.817 | -1.0354 |
| Galerkin Transformer | 0.6667 [0.5741, 0.7917] | 4.912e+04 | 122.183 | 97.056 | -1.8980 |
| PointNet | 0.7718 [0.6782, 0.8885] | 4.202e+04 | 130.467 | 104.165 | -2.6911 |
| Voxel | |||||
| Model | RelL2 95% CI | Mean MSE | Mean RMSE | Mean MAE |
| Unstructured | ||||
| Transolver | 0.1084 [0.0969, 0.1218] | 9.021e+01 | 3.694 | 2.075 |
| Galerkin Transformer | 0.1090 [0.0977, 0.1221] | 9.595e+01 | 3.747 | 2.091 |
| PointNet | 0.1484 [0.1373, 0.1610] | 1.332e+02 | 4.582 | 2.648 |
| GraphSAGE | 0.2235 [0.2014, 0.2498] | 1.633e+02 | 5.577 | 3.240 |
| Voxel | ||||
| Reproduction task | Materials and use | Review | Full |
| Cohort and schema | Source-family splits, availability records, and the compact HDF5 sample; verifies identifiers, inherited splits, array shapes, units, and time grids. | ✓ | ✓ |
| Metric and report | Source-level result JSON files and evaluators; regenerates reported aggregates, paired intervals, tables, and figures. | ✓ | ✓ |
| Loader and evaluator example | Baseline configurations, loaders, and the compact sample; exercises data loading and endpoint computation on sample fields. | ✓ | ✓ |
| Checkpoint inference | Fixed 79-source WSS samples and actual Transolver weights; recomputes reset, rollout, and cycle metrics. | ✓ | ✓ |
| Source-only WSS training and adaptation | Native-resolution WSS arrays for 277 training and 42 validation sources, with training recipes and normalization statistics. | ✓ | ✓ |
| Steady allocation retraining | Pool manifests, selected descendant fields, common source fine-tuning fields, and complete steady validation and test fields. | – | ✓ |