並列フィルタ

並列フィルタ#

VTKライブラリーは並列ファイル・フォーマットをサポートしています.複数のファイルに分割されたメッシュの読み込みは,VTKおよびPyVistaでネイティブにサポートされています.

from __future__ import annotations

from pathlib import Path

import pyvista as pv
from pyvista import examples

いくつかのファイルに分割された pyvista.UnstructuredGrid を含むサンプルデータセットをダウンロードしてみましょう.

load=False を設定し,ダウンロードしたファイルがあるディレクトリを見て,データセットがどこにダウンロードされたかを調べてみましょう.

filename = examples.download_blood_vessels(load=False)
path = Path(filename).parent
list(path.iterdir())
[PosixPath('/home/runner/.cache/pyvista_3/pvtu_blood_vessels/blood_vessels.zip.unzip/blood_vessels/T0000000500.pvtu'), PosixPath('/home/runner/.cache/pyvista_3/pvtu_blood_vessels/blood_vessels.zip.unzip/blood_vessels/T0000000500')]
list((path / 'T0000000500').iterdir())
[PosixPath('/home/runner/.cache/pyvista_3/pvtu_blood_vessels/blood_vessels.zip.unzip/blood_vessels/T0000000500/002.vtu'), PosixPath('/home/runner/.cache/pyvista_3/pvtu_blood_vessels/blood_vessels.zip.unzip/blood_vessels/T0000000500/001.vtu'), PosixPath('/home/runner/.cache/pyvista_3/pvtu_blood_vessels/blood_vessels.zip.unzip/blood_vessels/T0000000500/000.vtu'), PosixPath('/home/runner/.cache/pyvista_3/pvtu_blood_vessels/blood_vessels.zip.unzip/blood_vessels/T0000000500/003.vtu')]

.pvtu ファイルはディレクトリの横にあるので注意してください.このディレクトリには,メッシュ全体を構成するすべての並列ファイルまたはピースが含まれています. .pvtu ファイルを読み取るだけで,VTKがメッシュをまとめます.PyVista では、これは pyvista.read() によって実現されます。

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


つなぎ合わせたメッシュをプロットします

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

Tags: load

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

Sphinx-Galleryによるギャラリー