找到vof中interface的位置
-
@linhan-ge 绝大部分几何重构方法都是使用一阶欧拉显式方法处理VOF方程中的时间项的,具体到代码就是
// Initialising dVf with upwind values // i.e. phi[facei]*alpha1[upwindCell[facei]]*dt dVf_ = upwind<scalar>(mesh_, phi_).flux(alpha1_)*mesh_.time().deltaT(); // Do the isoAdvection on surface cells timeIntegratedFlux(); // Synchronize processor patches syncProcPatches(dVf_, phi_); // Adjust dVf for unbounded cells limitFluxes(); // Advect the free surface alpha1_ -= fvc::surfaceIntegrate(dVf_);
fvc::surfaceIntegrate(dVf_)
就是用来计算当前时间步流过控制体表面的主相体积占控制体体积的比值。isoAdvector
获取重构好的interface比较困难。在PLIC
方法中则会定义交界面为$\vec{n} \cdot \vec{X} + D_0 = 0$,通过求解$\vec{n}$和$D_0$得到interface的近似平面。我们组最近会开源一个基于PLIC方法的二维求解器,在里面可以很方便地得到这个interface的空间位置,三维的预计年底开源,文章正在审。参考 https://doi.org/10.1002/fld.4664 -
-
@linhan-ge 测试过,另外可以参看一下Johan Roenby的说法:"For you surface tension people, I believe you will also need an improved estimate of the curvature, right? This information is somehow contained in the difference in surface normal direction between adjacent surface cells. Hmm... still thinking about how to cook this up in a consistent and robust way for general meshes..." 来自https://www.cfd-online.com/Forums/openfoam-news-announcements-other/180439-isoadvector-release.html