[Paraview] MPI-Error during using "Programmable Filter"...

Stefan Melber Stefan.Melber at DLR.de
Fri Jun 16 04:47:06 EDT 2017


Hi,

i have used a programmable filter (find it below) to calculate the 
lambda2-criterion from gradients of velocity. In serial mode this works 
fine - running it in parallel an error message comes up. Any idea what 
does it mean and whats wrong with the filter?

Best regards,

        Stefan




Executing with: 0
Executing with: 0
Executing with: 0
Executing with: 0
Executing with: 0
Executing with: 0
Executing with: 0
Executing with: 0

2385958
2406377
2220610
2292001
2144431
2331490
2061524
2344595
Traceback (most recent call last):
   File "<string>", line 22, in <module>
   File "<string>", line 76, in RequestData
   File 
"/opt/PARAVIEW_5_4_0_OpenGL2/ParaView-v5.4.0.bin/lib/site-packages/vtk/numpy_interface/algorithms.py", 
line 358, in max
     return _global_func(MaxImpl(), array, axis, controller)
   File 
"/opt/PARAVIEW_5_4_0_OpenGL2/ParaView-v5.4.0.bin/lib/site-packages/vtk/numpy_interface/algorithms.py", 
line 199, in _global_func
     max_dims, size = _reduce_dims(res, comm)
   File 
"/opt/PARAVIEW_5_4_0_OpenGL2/ParaView-v5.4.0.bin/lib/site-packages/vtk/numpy_interface/algorithms.py", 
line 168, in _reduce_dims
     comm.Allreduce([dims, mpitype], [max_dims, mpitype], MPI.MAX)
   File "MPI/Comm.pyx", line 715, in mpi4py.MPI.Comm.Allreduce 
(/opt/PARAVIEW_5_4_0_OpenGL2/ParaView-v5.4.0/VTK/ThirdParty/mpi4py/vtkmpi4py/src/mpi4py.MPI.c:99224)
mpi4py.MPI.Exception: MPI_ERR_OTHER: known error not in list
Traceback (most recent call last):
   File "<string>", line 22, in <module>
Traceback (most recent call last):
   File "<string>", line 76, in RequestData
   File "<string>", line 22, in <module>
   File "<string>", line 76, in RequestData
   File 
"/opt/PARAVIEW_5_4_0_OpenGL2/ParaView-v5.4.0.bin/lib/site-packages/vtk/numpy_interface/algorithms.py", 
line 358, in max
   File 
"/opt/PARAVIEW_5_4_0_OpenGL2/ParaView-v5.4.0.bin/lib/site-packages/vtk/numpy_interface/algorithms.py", 
line 358, in max
     return _global_func(MaxImpl(), array, axis, controller)
   File 
"/opt/PARAVIEW_5_4_0_OpenGL2/ParaView-v5.4.0.bin/lib/site-packages/vtk/numpy_interface/algorithms.py", 
line 199, in _global_func
     max_dims, size = _reduce_dims(res, comm)
     return _global_func(MaxImpl(), array, axis, controller)
   File 
"/opt/PARAVIEW_5_4_0_OpenGL2/ParaView-v5.4.0.bin/lib/site-packages/vtk/numpy_interface/algorithms.py", 
line 199, in _global_func
       File 
"/opt/PARAVIEW_5_4_0_OpenGL2/ParaView-v5.4.0.bin/lib/site-packages/vtk/numpy_interface/algorithms.py", 
line 168, in _reduce_dims
max_dims, size = _reduce_dims(res, comm)
     comm.Allreduce([dims, mpitype], [max_dims, mpitype], MPI.MAX)
   File "MPI/Comm.pyx", line 715, in mpi4py.MPI.Comm.Allreduce 
(/opt/PARAVIEW_5_4_0_OpenGL2/ParaView-v5.4.0/VTK/ThirdParty/mpi4py/vtkmpi4py/src/mpi4py.MPI.c:99224)
   File 
"/opt/PARAVIEW_5_4_0_OpenGL2/ParaView-v5.4.0.bin/lib/site-packages/vtk/numpy_interface/algorithms.py", 
line 168, in _reduce_dims
mpi4py.MPI.Exception:     MPI_ERR_OTHER: known error not in list
comm.Allreduce([dims, mpitype], [max_dims, mpitype], MPI.MAX)
   File "MPI/Comm.pyx", line 715, in mpi4py.MPI.Comm.Allreduce 
(/opt/PARAVIEW_5_4_0_OpenGL2/ParaView-v5.4.0/VTK/ThirdParty/mpi4py/vtkmpi4py/src/mpi4py.MPI.c:99224)
mpi4py.MPI.Exception: MPI_ERR_OTHER: known error not in list







grad =inputs[0].PointData["Gradients"]

npoints =len(grad)

printnpoints

data =[]

fori inrange(npoints):

# Gradients

dvx =grad[i,:][0]

dvy =grad[i,:][1]

dvz =grad[i,:][2]

# Symmetrical part of flow tensor -> S

s0 =dvx[0]

s1 =0.5*(dvx[1] +dvy[0])

s2 =0.5*(dvx[2] +dvz[0])

s3 =0.5*(dvy[0] +dvx[1])

s4 =dvy[1];

s5 =0.5*(dvy[2] +dvz[1])

s6 =0.5*(dvz[0] +dvx[2])

s7 =0.5*(dvz[1] +dvy[2])

s8 =dvz[2]

# Antisymmetrical part of flow tensor -> Omega

Omega0 =0.0

Omega1 =0.5*(dvx[1] -dvy[0])

Omega2 =0.5*(dvx[2] -dvz[0])

Omega3 =0.5*(dvy[0] -dvx[1])

Omega4 =0.0

Omega5 =0.5*(dvy[2] -dvz[1])

Omega6 =0.5*(dvz[0] -dvx[2])

Omega7 =0.5*(dvz[1] -dvy[2])

Omega8 =0.0

# Matrix M = (S^2 + Omega^2)

# M is symmetric

# | m0 m1 m2 |

# M = | m1 m3 m4 |

# | m2 m4 m5 |

m0 =s0*s0 +s1*s3 +s2*s6 +Omega1*Omega3 +Omega2*Omega6

m1 =s0*s1 +s1*s4 +s2*s7 +Omega2*Omega7

m2 =s0*s2 +s1*s5 +s2*s8 +Omega1*Omega5

m3 =s3*s1 +s4*s4 +s5*s7 +Omega3*Omega1 +Omega5*Omega7

m4 =s3*s2 +s4*s5 +s5*s8 +Omega3*Omega2

m5 =s6*s2 +s7*s5 +s8*s8 +Omega6*Omega2 +Omega7*Omega5

# computing now the eigenvalues of M

# | M - lambda I | = 0

# returns the characteristic equation:

# lambda^3 + p*lambda^2 + q*lambda + r = 0

# due to symmetric Matrix the following assumption can be made:

# all three eigenvalues will be real root values ( no imaginary parts )

p =-1*( m0 +m3 +m5)

q =-1*( m1*m1 +m2*m2 +m4*m4 -m0*m3 -m0*m5 -m3*m5)

r =-1*( m0*m3*m5 +2*m1*m2*m4 -m2*m2*m3 -m4*m4*m0 -m1*m1*m5)

# computing now the reduced equation

# lambda^3 + s*lambda + t = 0

sx =(3.0*q -p*p) /3.0

t =(2.0*math.pow(p, 3.0) /27.0) -(p *q /3.0) +r

# calculate unordered eigenvalues (Cardano's method)

# -> at first check if ( 1.0 / sqrtt(-s^3) ) can be computed

l =[0,0,0]

if((sx *sx *sx) <-1e-16):

tmp1 =math.sqrt( -1*sx /3.0)

tmp2 =-1*t /(2.0*tmp1*tmp1*tmp1)

c1 =2.0*tmp1

c2 =math.acos( min((1., max((-1., tmp2))) ) ) /3.0

l[0] =c1 *math.cos(c2) -p /3.0

l[1] =c1 *math.cos(c2 +2.*math.pi/3.) -p /3.0

l[2] =c1 *math.cos(c2 +4.*math.pi/3.) -p /3.0

# sort eigenvalues

# lambda1 <= lambda2 <= lambda3

l.sort()

# save second eigenvalue

data.append(l[1])

output.PointData.append(data, "lambda2")










-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/paraview/attachments/20170616/3d50f4fd/attachment.html>


More information about the ParaView mailing list