Parallel Files#

The VTK library supports parallel file formats. Reading meshes broken up into several files is natively supported by VTK and PyVista.

from __future__ import annotations

import os
from pathlib import Path

import pyvista as pv
from pyvista import examples

Let’s go ahead and download the sample dataset containing an pyvista.UnstructuredGrid broken up into several files.

Let’s inspect where this downloaded our dataset by setting load=False and looking at the directory containing the file we downloaded.

filename = examples.download_blood_vessels(load=False)
path = str(Path(filename).parent)
os.listdir(path)
['T0000000500.pvtu', 'T0000000500']
os.listdir(str(Path(path) / "T0000000500"))
['000.vtu', '003.vtu', '001.vtu', '002.vtu']

Note that a .pvtu file is available alongside a directory. This directory contains all the parallel files or pieces that make the whole mesh. We can simply read the .pvtu file and VTK will handle putting the mesh together. In PyVista, this is accomplished through pyvista.read().

mesh = pv.read(filename)
mesh
HeaderData Arrays
UnstructuredGridInformation
N Cells39353
N Points48823
X Bounds5.300e+01, 1.210e+02
Y Bounds5.000e+01, 9.700e+01
Z Bounds6.400e+01, 1.820e+02
N Arrays5
NameFieldTypeN CompMinMax
node_valuePointsint3210.000e+003.000e+00
simerr_typePointsint3210.000e+003.000e+00
densityCellsfloat3212.203e-015.232e-01
velocityCellsfloat323-3.607e-018.989e-02
shearstressCellsfloat3216.160e-051.726e-02


Plot the pieced together mesh

mesh.plot(scalars="node_value", categories=True)
read parallel
mesh.plot(scalars="density")
read parallel

Total running time of the script: (0 minutes 1.192 seconds)

Gallery generated by Sphinx-Gallery