Paraview(v4.1.0 64位,OSX 10.9.2)给出了以下错误:
通用警告:在/Users/kitware/Dashboards/MyTests/NightlyMaster/ParaViewSuperbuild-Release/paraview/src/paraview/VTK/IO/Legacy/vtkDataReader.cxx,第1388行 读取ascii数据时出错。数据大小可能与声明不匹配。
我不确定为什么。我已经仔细检查了那些字段是否都是预期的长度,并且没有值是NaN,inf或其他非常大的值。问题始于时间步长16的输出(0-15不产生错误)。从图形上看,步骤0-15按预期生成我的数据图;步骤16显示“Y / Yc”系列具有意外的大点(0.5625,2.86616e + 36)。
答案 0 :(得分:4)
过去6个月我一直面临同样的问题,一直在努力寻找解决方案。我有以下理由解释错误(http://www.cfd-online.com/Forums/paraview/139451-error-while-reading-vtk-files-paraview.html#post503315):
我查看了其他论坛,他们一般都说过#2和#3以及可能的解决方案 - 它一般都有效。但是,以上都没有解决我的问题。
我注意到ASCII文件中存储的一些解决方案值小到10.e-34。我有一种感觉,下溢情况可能会引发问题。我检查了我的代码中的下溢情况并将它们四舍五入为0.这解决了问题,解决方案始终显示而没有错误消息。
我希望这也能解决你的问题。
答案 1 :(得分:0)
这可能无法解决Inf / NaN问题,但如果vtk文件中的数字太大或太小(即1e-50,1e45),则可能会导致相同的错误。
在这种情况下,一种解决方案是更改数据类型规范。当我遇到这个问题时,我将数据类型指定为" float",它使用32位浮点表示(与" float32"相同)。将其更改为" float64"使用64位双精度表示,这与我生成使用双精度的vtk文件的C ++代码一致。这可以消除这个问题。
答案 2 :(得分:0)
如果您使用的是Fortran,当您写入文件但未在代码中将其关闭时,也会出现此问题。
例如:
do i=1,10
write(numb,'(i3)')i
open(unit=1, file='test'//numb//'.vtk')
write(1,*).......
enddo