自由液面捕捉
-
各位老师好,我现在在用interFoam跑一个溃坝的算例,我想在controldict里面设置捕捉自由液面高程(确定alpha=0.5的x和y),我自己尝试了一下,采用如下设置,但是输出的结果与我的想法不太一样(输出的并不只有alpha=0.5),请问各位老师,我应该如何修改才能达成我的需求
这是我提取的结果:
如下是我controldict中的设置:
freeSurface //自由表面高程 { type surfaces; libs ("libsampling.so"); interpolationScheme cell; writeControl timeStep; writeInterval 20; surfaceFormat vtk; fields ( alpha.water ); surfaces { freeSurface { type isoSurfaceCell; isoField alpha.water; isoValue 0.5; interpolate true; regularise false; } } }
-
VOF的原理是保证界面足够的尖锐,如果不尖锐,那就是算法本身的问题,谈不到界面了。所以VOF算法,能用的算法,可以保证alpha尽可能在0.5左右,所以界面就是非0非1的值。
你设置的这个代码,我看了下相关描述。我并没有看过他们的算法,所以底层我也不了解。不过你可以试试把0.5改成0.9或者0.1看看,是否有太大的差别。我觉得应该差不多。
Description A surface formed by the iso value. After "Polygonising A Scalar Field Using Tetrahedrons", Paul Bourke (http://paulbourke.net/geometry/polygonise) and "Regularised Marching Tetrahedra: improved iso-surface extraction", G.M. Treece, R.W. Prager and A.H. Gee. See isoSurface. This is a variant which does tetrahedrisation from triangulation of face to cell centre instead of edge of face to two neighbouring cell centres. This gives much lower quality triangles but they are local to a cell. SourceFiles isoSurfaceCell.C isoSurfaceCellTemplates.C