如何使用python计算paraview中的特征值?

时间:2018-03-23 18:49:12

标签: python eigenvalue paraview

我有一个单元数据F,它是一个3x3矩阵的数组。如何计算sqrt(F * F.T矩阵的特征值),然后追加这个新的细胞数据?

更新1:这是我的代码。由于行

,它不起作用
composer install

我该如何解决呢?

C = F.Arrays[0] * F.Arrays[0].T

1 个答案:

答案 0 :(得分:2)

我找到了一种方法:

import numpy as np
import vtk
from vtk.numpy_interface import dataset_adapter as da
from vtk.numpy_interface.algorithms import sqrt as sqrt
from vtk.numpy_interface.algorithms import eigenvalue as eigenvalue
from numpy import linalg as LA

F = inputs[0].GetBlock(0).GetCellData().GetArray('F')

arr = []
for j in range(0, F.GetNumberOfTuples()) :
    f = F.GetTuple(j)
    f = np.reshape(f, (3,3))
    f = f.T*f
    lmbda = np.sqrt(LA.eigvals(f))
    arr.append(lmbda)

vtk_arr = da.VTKArray(arr)
output.CellData.append(vtk_arr,"Lambdas")