Simulation cases stop being re-curated per model: whole-case loads run 88x faster than VTK, and overlapped preprocessing costs 2.1% of a step
Synopsis
PhysicsNeMo-Mesh stores a simulation case as a GPU-native mesh with named boundaries and prescribed condition values, moving preprocessing from dataset curation to load time at each training step. On one x86 machine with local NVMe, a whole-case load is 88 times faster than reading VTK files; on one GB200, mesh operations run 6.2 to 1068 times faster than threaded VTK, and overlapped with training, preprocessing costs 2.1% of throughput for a 6.0M-parameter Transolver. In a synthetic heat-conduction study where geometry and wall conditions both vary, per-boundary conditions cut error from the geometry-only floor to 0.038–0.066.
Interpretation
A simulation case can now be stored whole as a GPU-native object, loaded without parsing text formats, with model features computed from the stored mesh at training time. The prior pipeline flattened each case on the CPU during curation into model-specific arrays holding only the fields one model consumes, so a new architecture required another pass over the raw data. For cold loads of one whole case from node-local NVMe on one x86 machine, DrivAerML is 88 times faster from the memory-mapped copy than from VTK, HiLiftAeroML is 8.0 times faster when both read the same fields, and SHIFT-SUV is 56 times faster.
Mesh operations moved to the GPU with batching and PyTorch automatic differentiation, under method names close to PyVista so existing post-processing scripts port readily. The baseline is the strongest batch VTK filter on the Grace CPUs of the same node with VTK's threaded backend on, and serial filters on one thread. On the 17,684,913-triangle DrivAerML car surface, rotating with a vector field is 6.2 times faster, cell normals 12 times, signed-distance queries 350 times, and linear subdivision 1068 times; on a tetrahedral volume, boundary extraction is 57 times and curl 13 times faster.
One stored DrivAerML dataset feeds Transolver, GeoTransolver and GLOBE, and adding a model takes a configuration block. Previously each model flattened solver output into custom arrays, and discarded named boundaries, operating conditions and vector columns were lost to every downstream model. In PhysicsNeMo's public external-aerodynamics recipe, all three models train from the same dataset directory, each computing its features at load time without re-curation.
Keeping each boundary's condition type and prescribed values lowers prediction error when geometry and wall conditions vary together. Geometry-only models sit at the theoretical floor of 0.526 at relative variation 0.5, and a global vector of five wall summaries lowers that to 0.232–0.251. In the synthetic 2D heat-conduction study, with per-boundary conditions stored, Transolver, the PointNet-style model and the transformer reach seed-median errors of 0.066, 0.056 and 0.038 at relative variation 0.5.
Perspective
The demonstrated scope is the mesh module of the open-source PhysicsNeMo library: the load benchmark ran on one x86 machine with local NVMe, the operation and overlap benchmarks ran on one GB200 node, the overlap benchmark used 6.0M- and 1.7M-parameter Transolvers, and the heat-conduction study is a two-dimensional Laplace problem. The intended readers are engineering and research teams preparing training data for PDE surrogates.
Overlapped preprocessing costs only 2.1% of throughput for the 6.0M-parameter model but 35.1% for the 1.7M-parameter model, because the smaller step is host-launch-bound and a deeper prefetch queue does not help. Caching normals and areas saves only a small part of the transform cost. The library checks shapes, dtypes and devices but not whether boundaries cover the interior, and it does not infer units or governing equations.
