drivaerml#

DrivAerML dataset source for mesh pipelines.

Reads the DrivAerML dataset — 500 parametrically morphed variants of the DrivAer notchback vehicle with high-fidelity scale-resolving CFD (OpenFOAM v2212).

The dataset provides three mesh types per run:

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

  • volume — volumetric field data (VTU, ~50 GB each, split into parts)

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

File discovery and caching are handled internally using fsspec.

Attributes#

Classes#

DrivAerMLSource

Read meshes from the DrivAerML dataset on HuggingFace Hub.

Module Contents#

class physicsnemo_curator.domains.mesh.sources.drivaerml.DrivAerMLSource(
mesh_type: MeshType = 'boundary',
url: str = _DRIVAERML_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 DrivAerML 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, reconstructed from split parts)

  • "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 = DrivAerMLSource(mesh_type="boundary")
>>> len(source)
484
>>> mesh = next(source[0])
>>> source = DrivAerMLSource(mesh_type="slices")
>>> for mesh in source[0]:  # yields multiple slice planes
...     print(mesh.n_points)

Note

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

Return parameter descriptors for the DrivAerML source.

Returns:

Parameter list for CLI configuration.

Return type:

list[Param]

description: ClassVar[str] = 'DrivAerML dataset 500 DrivAer notchback variants with scale-resolving CFD'#
name: ClassVar[str] = 'DrivAerML'#
physicsnemo_curator.domains.mesh.sources.drivaerml.MeshType#
physicsnemo_curator.domains.mesh.sources.drivaerml.logger#