找到vof中interface的位置
-
@litong189456 目前我的工作还没考虑气相的可压缩性,考虑可压缩性后,控制体内的密度就不再是VOF的函数了,一些控制方程也要改,应该不容易搞
-
@队长别开枪 最近想钻研下isoadvector,想请教大神一些基本问题。
相方程中的时间项在isoadvector代码的哪个部分求解的呢?找了一圈只找到advection那项。
@队长别开枪 在 找到vof中interface的位置 中说:求解过程中的0.5等值面提取没搞过啊,只有后处理的时候提取过iso-surface。你说的这个需要在求解过程中确定interface的位置,使用OpenFoam最新的iso-Advector或者PLIC-VOF吧,这两个都属于几何重构方法,求解过程中可以得到interface的位置信息。
这里,您说的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