Программируемый фильтр для добавления зависящих от времени данных ячейки/точки в неструктурированную сетку vtu/pvtu в PaPython

Программы на Python
Anonymous
Программируемый фильтр для добавления зависящих от времени данных ячейки/точки в неструктурированную сетку vtu/pvtu в Pa

Сообщение Anonymous »

Я написал программируемый фильтр Python в Paraview, который с учетом неструктурированного объекта сетки (исходный формат vtu/pvtu) и извлечения точек/ячейок из Paraview изменяет значение выбранных пользователем данных ячейки/точки в выбранных точках. сетки:

Код: Выделить всё

dof = "ax_bc"
value = 1.0

import vtk
import numpy as np
# Example usage
input0 = inputs[0]
input1 = inputs[1]

# Get the input data objects
if input0 is None or input1 is None:
raise ValueError("One or both input VTK objects are missing.")

# Get the point data arrays
point_data0 = input0.GetPointData()
point_data1 = input1.GetPointData()

# Get the "array one" point data array in the first input
array_one = point_data0.GetArray(dof)
if array_one is None:
raise ValueError("The first input VTK object does not have a " + dof + " array.")

# Get the vtkOriginalPointIds array from the second input
original_ids = point_data1.GetArray("vtkOriginalPointIds")
if original_ids is None:
raise ValueError(
"The second input VTK object does not have a 'vtkOriginalPointIds' array."
)

# Convert VTK arrays to NumPy arrays
if np.any((original_ids < 0) | (original_ids >= input0.GetNumberOfPoints())):
raise IndexError("One or more original IDs are out of bounds for the first input VTK object.")

# Assign values to the dofs based on the original ids
array_one[original_ids] = value

point_data0.append(array_one, dof)
point_data0.Modified()
Теперь я хотел бы использовать другой программируемый фильтр (или, если это невозможно, сценарий оболочки Paraview или сценарий Python) для добавления (установки новых данных ячейки/точки и изменения) зависящей от времени ячейки. / указать данные в моей сетке. Я нашел очень плохую документацию о том, как использовать время в неструктурированных сетках Python/VTU и сделать его читабельным для Paraview. Например, я хотел бы добавить массив точечных данных «ax_bc» как массив, зависящий от времени. Каким путем мне следует следовать?
Я нашел несколько решений, связанных с многоблочными наборами данных, но я также читал о последующих проблемах, связанных с распараллеливанием (мне нужно будет экспортировать в формат pvtu) .

Подробнее здесь: https://stackoverflow.com/questions/788 ... unstructur

Вернуться в «Python»