Синтаксис для класса VTK HEXAHEDRON - PullRequest
1 голос
/ 06 января 2020

Я пытаюсь отобразить скалярное поле, связанное с 20 неподключенными кубами, в Paraview. Для этого я пытаюсь использовать класс HEXAHEDRON vtk. Файл, который я создал, выглядит следующим образом:

Test
ASCII
DATASET POLYDATA
POINTS 160 FLOAT
19.098110 12.993696 27.966301
23.098110 12.993696 27.966301
23.098110 16.993696 27.966301
...
HEXAHEDRA 120 600
4 0 1 5 4
4 1 2 6 5
4 2 3 7 6
4 3 0 4 7
4 0 1 2 3
4 4 5 6 7
4 8 9 13 12
4 9 10 14 13
4 10 11 15 14
4 11 8 12 15
4 8 9 10 11
4 12 13 14 15
...

Однако Paraview выдает ошибку "Unrecognized keyword: 3". Я попытался изменить ключевое слово на POLYGONS, и Paraview был счастлив (хотя я не был, поскольку все кубы были объединены).

Какое ключевое слово подходит для класса VTK_HEXAHEDRON? Я пытался HEXAHEDRA, HEXAHEDRON и HEXAHEDRONS безуспешно ...

Спасибо, Марта

Ответы [ 2 ]

3 голосов
/ 07 января 2020

Вы должны использовать ключевое слово VTK_HEXAHEDRON. Для получения дополнительной информации см. Раздел 19.3 Форматы файлов VTK в Руководство пользователя VTK .

0 голосов
/ 07 января 2020

Вы можете использовать Python для создания me sh, а затем meshio (один из моих проектов) для записи в любом формате, который вам нравится, например, VTK.

import meshio
import numpy

hex_mesh = meshio.Mesh(
    numpy.array(
        [
            [0.0, 0.0, 0.0],
            [1.0, 0.0, 0.0],
            [1.0, 1.0, 0.0],
            [0.0, 1.0, 0.0],
            [0.0, 0.0, 1.0],
            [1.0, 0.0, 1.0],
            [1.0, 1.0, 1.0],
            [0.0, 1.0, 1.0],
        ]
    ),
    {"hexahedron": numpy.array([[0, 1, 2, 3, 4, 5, 6, 7]])},
)

meshio.write("out.vtk", hex_mesh)
# vtk DataFile Version 4.2
written by meshio v3.3.1
ASCII
DATASET UNSTRUCTURED_GRID
POINTS 8 double
0.0 0.0 0.0 1.0 0.0 0.0 1.0 1.0 0.0 0.0 1.0 0.0 0.0 0.0 1.0 1.0 0.0 1.0 1.0 1.0 1.0 0.0 1.0 1.0
CELLS 1 9
8
0
1
2
3
4
5
6
7
CELL_TYPES 1
12
...