sampling沿直线取数据,发现个别位置的数据有缺失
-
对某溃坝算力,用sampling沿垂向取密度,获取自由面的位置。
在做网格独立性验证时,突然发现某些位置的数据,存在数据异常,甚至数据缺失。
目前已经采取的改进措施:(1) 改变并行方法 (2)略微修改x坐标
这两个方法都没有效果。
哪位遇到过类似的问题,如何解决?
Lines { type sets; libs (sampling); enabled true; writeControl adjustableRunTime; writeInterval 0.01; interpolationScheme cellPoint; setFormat raw; fixedLocations false; fields ( rho ); sets ( line01 { type uniform; axis xyz; start (2.002 0 -0.24); end (2.002 0 0.04); nPoints 1000; } line02 { type uniform; axis xyz; start (2.502 0 -0.24); end (2.502 0 0.04); nPoints 1000; } line03 { type uniform; axis xyz; start (3.002 0 -0.24); end (3.002 0 0.04); nPoints 1000; } line04 { type uniform; axis xyz; start (3.502 0 -0.24); end (3.502 0 0.04); nPoints 1000; } line05 { type uniform; axis xyz; start (4.0 0 -0.24); end (4.0 0 0.04); nPoints 1000; } line06 { type uniform; axis xyz; start (4.5 0 -0.24); end (4.5 0 0.04); nPoints 1000; } line07 { type uniform; axis xyz; start (4.65 0 -0.24); end (4.65 0 0.04); nPoints 1000; } ); }
-
这是其中的两个位置的垂向分布。在Mesh4中,第二个位置的数据就出现了缺损。目前搞不清楚怎么回事。这块数据缺失,很影响对计算结果的解读。
-
网格用blockMesh生成,纯流体,没有结构物。
对沿线分布数据的时间分辨率要求很高,如果用paraview中导出线上的数据,时间上的分辨率不够。
也许,用topoSet选取局部网格,大概也可以 -
@lizhisongsjtu
我之前是用of2206,axis
用distance
试下。另外网格划分有1000个吗,1000个点是否会很密了?x_0_1 { type uniform; axis distance; start (0.00010000 0.00000100 -1.72500000); end (0.00010000 1.99999900 -1.72500000); nPoints 100; }
-
统一回复一下:
感谢给的热心解答。
用线提取密度的垂向变化(内波),表面波的probe暂时不适用这个问题。
有效解决方案:
方案A:用toposet选取一定区域的网格,输出rho,这就有了xyzrho的数据。然后根据需要的xz坐标,做插值即可。
方案B:选取全局的网格,输出cuttingPlane上的数据。
方案C:输出特定等直面的数据。方案A灵活,但操作复杂;方案B数据最全,但存储空间比较大;方案C直接,对三维工况不友好。
这都是后处理的技巧,能获得需要的数据。