ahmedml#

AhmedML dataset source for mesh pipelines.

Reads the AhmedML dataset — 500 geometric variations of the Ahmed Car Body with transient hybrid RANS-LES CFD (OpenFOAM v2212, ~20 M cells per case).

The dataset provides three mesh types per run:

  • boundary — surface mesh with flow fields (VTP, ~83 MB each)

  • volume — volumetric field data (VTU, ~5.6 GB each)

  • slices — x/y/z-normal slice planes with flow fields (VTP)

File discovery and caching are handled internally using fsspec.

Attributes#

Classes#

AhmedMLSource

Read meshes from the AhmedML dataset on HuggingFace Hub.

Module Contents#

class physicsnemo_curator.domains.mesh.sources.ahmedml.AhmedMLSource(
mesh_type: MeshType = 'boundary',
url: str = _AHMEDML_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 meshes from the AhmedML dataset on HuggingFace Hub.

Each index maps to one simulation run. The mesh_type parameter selects which mesh to load for each run:

  • "boundary" — surface mesh (VTP) with flow fields

  • "volume" — volumetric mesh (VTU, single file per run)

  • "slices" — x/y/z-normal slice planes (VTP); yields multiple meshes per index

Parameters:
  • mesh_type ({"boundary", "volume", "slices"}) – Which mesh to read from each run directory.

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

  • storage_options (dict[str, object] | None) – Extra fsspec keyword arguments (e.g. {"token": "hf_..."}).

  • 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 = AhmedMLSource(mesh_type="boundary")
>>> len(source)
500
>>> mesh = next(source[0])
>>> source = AhmedMLSource(mesh_type="slices")
>>> for mesh in source[0]:
...     print(mesh.n_points)

Note

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

Return parameter descriptors for the AhmedML source.

Returns:

Parameter list for CLI configuration.

Return type:

list[Param]

description: ClassVar[str] = 'AhmedML dataset 500 Ahmed Car Body variants with hybrid RANS-LES CFD'#
name: ClassVar[str] = 'AhmedML'#
physicsnemo_curator.domains.mesh.sources.ahmedml.MeshType#