windtunnel#

WindTunnel-20k dataset source for mesh pipelines.

Reads the WindTunnel-20k dataset — 19,812 OpenFOAM simulations of 1,000 unique automobile-like objects in a virtual wind tunnel.

The dataset provides one VTK mesh type per simulation:

  • pressure_field — pressure field interpolated onto the input mesh (VTK, surface data with point-data scalars)

Simulations are organised by data split (train, validation, test) and identified by unique alphanumeric simulation IDs. File discovery and caching are handled internally using fsspec.

Attributes#

Classes#

WindTunnelSource

Read pressure-field meshes from the WindTunnel-20k dataset.

Module Contents#

class physicsnemo_curator.domains.mesh.sources.windtunnel.WindTunnelSource(
split: Split = 'train',
url: str = _WINDTUNNEL_HF_URL,
storage_options: dict[str, object] | None = None,
cache_storage: str | None = None,
manifold_dim: int | Literal['auto'] = 'auto',
point_source: Literal['vertices', 'cell_centroids'] = 'vertices',
warn_on_lost_data: bool = True,
)#

Bases: physicsnemo_curator.core.base.Source[physicsnemo.mesh.Mesh]

Read pressure-field meshes from the WindTunnel-20k dataset.

Each index maps to one simulation. The split parameter selects which data partition to use ("train", "validation", "test", or "all" for the combined set).

Only the pressure_field_mesh.vtk files are supported (OBJ and PLY files in the dataset are not VTK-compatible).

Parameters:
  • split ({"train", "validation", "test", "all"}) – Data split to use. "all" combines all three splits.

  • url (str) – Base HuggingFace Hub URL. Override only for testing.

  • storage_options (dict[str, object] | None) – Extra fsspec keyword arguments.

  • cache_storage (str | None) – Local cache directory. None → temporary directory.

  • manifold_dim (int or {"auto"}) – Target manifold dimension for from_pyvista conversion.

  • point_source ({"vertices", "cell_centroids"}) – Point source mode for from_pyvista conversion.

  • warn_on_lost_data (bool) – Warn when data arrays are discarded during conversion.

Examples

>>> source = WindTunnelSource(split="train")
>>> len(source)
13900
>>> mesh = next(source[0])
>>> source = WindTunnelSource(split="all")
>>> len(source)
19812

Note

classmethod params() list[physicsnemo_curator.core.base.Param]#

Return parameter descriptors for the WindTunnel source.

Returns:

Parameter list for CLI configuration.

Return type:

list[Param]

description: ClassVar[str] = 'WindTunnel-20k dataset 19,812 OpenFOAM simulations of automobile-like objects'#
name: ClassVar[str] = 'WindTunnel-20k'#
physicsnemo_curator.domains.mesh.sources.windtunnel.Split#