关于paraview中VOF的奇怪现象
-
@bestucan 大神说的对,我描述的还不够详细:
1.
此案例的网格是从ICEM
转换来的,电脑配置Intel(R) Core(TM) i7-6700 CPU 3.40Hz 3.41GHz 内核:4; 逻辑处理器:8
;然后把ICEM
的网格文件3D-0.4.msh
文件导入到此电脑
的VMware虚拟机
中;
2.
VMware虚拟机
的设置内存 2GB ;处理器 4;硬盘 60GB
;内置系统Ubuntu18.04.1
和OpenFOAM-7
以及ParaView-5.5.1-1-Qt5-MPI-Linux-64bit
;
3
通过在文件终端输入fluent3DMeshToFoam 3D-0.4.msh
转换成OpenFOAM网格;转换成功后在constant
文件夹下面出现polyMesh
文件夹:通过paraview
查看网格情况:
如下图:
关闭Output Messages
,看网格:
一切正常;
4
在system
中建立setFieldsDict
,并在终端执行:
VOF的两相区域
构建成功,在paraview
中查看:
初始:
取消Skip zero Time
之后Apply
,在查看aplha.water
,出现两相分界
5
整个文件进行拷贝,导入到一个纯Ubuntu
系统的电脑中(仅仅装有Ubuntu系统):
系统Ubuntu18.04.1
和OpenFOAM-7
以及ParaView-5.5.1-1-Qt5-MPI-Linux-64bit
;
打开paraview
,取消Skip zero Time
之后Apply
,在查看aplha.water
,仅仅出现单相
计算保存一个时间步
,打开paraview
,直接查看aplha.water
,出现两相分界
去除
保存的时间步
,打开paraview
,查看aplha.water
,又仅仅出现单相
6
即使是在纯Ubuntu
系统的电脑中进行.msh
的网格转换,在不进行计算保存时间步,还是在paraview
中显示单相
; -
你这描述的太详细了
先来谈谈这个描述问题。为什么要描述这么详细,因为环节太多,每个都可能出错,所以要尽量描述可能出错的细节(比如alpha.water文件内容)而忽略不怎么可能会影响的细节(比如cpu型号、硬盘大小)。当然这些的前提是无法缩小错误范围,而你已经缩小错误范围了。就是在“纯ubuntu”(ubunut单系统,对应的叫双系统或者虚拟机环境)
即使是在纯Ubuntu系统的电脑中进行.msh的网格转换,在不进行计算保存时间步,还是在paraview中显示单相。
所以这个问题实际上可以先限定在这一句话。也就是说前面的问题可能是这这个问题引起的,先解决这个小问题,如果大问题不存在了更好,如果还存在,才需要去考虑那些操作。
就跟调程序一样,先十分确保小部件小程序正常工作。才去找它们联合工作的错误,这样可以忽略小部件错误的可能,把排错精力放在联合上。
然后是错误分析。如果勾选skip zero是无法看见0时间步的alpha.water的,你点了一下,不勾选它,所以能看见alpha.water的。说明软件能理解你的操作意图(显示alpha.water)。
而结果不如你所想,再往下捋就是:
- 显始的那个文件就是你想要显始的文件么?
- 你想要显始的文件是你预想的内容么?
1: 修改你认为显示的那个 alpah.water 的显始名称,确定 paraview 里看到的 alpha.water 名称跟着变了,确定就是这个文件的。
操作:为了修改在paraview里的名称不能直接修改文件的名称,而要打开 alpha.water 。把object的名称加上自定义字符比如flag 。(以后这种过程可能会出错,因为有些名字有修改规则,改了就不能正常运行,但这里可以这样改)
object alpha_flag.water;
这个过程看起来很蠢很多余,但这确实是一个环节。错误往往出现在忽视的地方。文件多了很容易出现这个问题。
2.已经找到了就是这个文件,paraview 显始的就是它,但不如我所想,那么是paraview读错了?还是读对了但实际上只是文件的内容不如你所想?到这基本就解决了。
如果你眼睁睁看着alpha.water里的场里的值一大片1,而paraview里就是没有显示。你可以找paraview的开发团队报bug了
我不是大神,我只是耗的时间多,熟能生巧,你投入时间长了,你也可以
-
@bestucan 大神你太牛掰了,一下就把问题解决了,收下我的膝盖
按照您的方式,真的好用:
改alpha_flag.water
,在paraview
中选alpha_flag.wate
出现两相
而选择alpha.wate
为单相
:
还想请教下:
不过为什么除了alpha_flag.water
还多出来了个alpha.water
,是否是因为文件名alpha.water
,所以才会出现alpha.water
;但是读取的object
却是alpha_flag.water
:如果写成
object alpha_flag.water
开始计算,这样是否会影响计算结果呢? -
@Zhoujq 签名里的链接都是维基百科的,国内登不太稳定,我换了,现在应该没问题了。
换名字当然会影响计算,文件名和 object 名应该是一样的。这种修改方式只是为了放大不同找出来问题。如果你怀疑是文件名影响或者最想orig影响……咦!你的怎么是org
你把文件名加上标识符接着读啊,把怀疑的也读上。
alpha.water -> alpha_file_flag.water alpah.water里的object -> alpha_object_flag alpha.water.orig -> alpha_file_flag_o.water.orig alpah.water.orig里的object -> alpha_object_flag_o.water.orig。
这样无论显始什么都被你打上标签了,你都知道是从哪来的,paraview 能看到的东西也知道是什么东西了。如果 alpha.water 还阴魂不散就一个文件一个文件的把 0 文件夹移空,总会有那么一个,你移走它,就读不出 alpha.water 。它就是那个鬼
-
@东岳 哈哈,老师,不知道啥情况,本来就一台电脑有这种情况,昨天测试后两台电脑都出现了,最后连虚拟机都变成这样了~幸亏提前找到了病根~要不都不知道啥问题~
alpha.water
和alpha.water.orig
文件里的object
只要都是object alpha.water;
在paraview
就只有一个alpha.water
选项,它实际读取的是alpha.water.orig
文件里的object alpha.water;
所以显示的是单相;
把alpha.water.orig
文件里的object
改为object alpha_.water;
,然后复制文件去掉orig
变成alpha.water
文件,这时里面的还是object alpha_.water;
但是在终端执行setFields
后,alpha.water
文件里的object alpha_.water;
自动变成了object alpha.water;
,并没有人工修改~
这时查看paraview
,同时出现了alpha.water
和alpha_.water
;本来带有.orig
的文件不该读取,不知道为什么读取了~这个bug
太坑人了;还是要再次感谢 @bestucan ;