加密网格周围的结果不连续
-
@李东岳东岳老师,各位老师,大家好。
最近尝试使用AMR和SHM算同一个算例,但是输出的时间步结果中,p或者U总有一个在加密网格周围不连续,显示出非物理的结果。
我最开始怀疑这可能是因为解场在网格细化和重新平衡后需要多个时间步才能完全调整和平滑(这个想法很呆),还向blastAMR库的作者留言咨询了一下,他说“Generally, we cannot run a CFD simulation for even a single step with a degrading field - it will mess up the accuracy from that point onward; so, this is not allowed to happen.”
从气泡的运动和计算结果来看,AMR和SHM的结果都能和实验结果对比得很好。
所以这会不会是结果输出或者通量校正哪里没设置好,比如correcPhi, correctFluxes之类的,不知道大家有没有遇到类似的问题,想请大家指导,给点经验,谢谢!💡 AMR结果(展示的是后半段结果):
💡 SHM结果(展示的是前半段结果):
以下是fvSchemes文件信息
/·························分割线·························/ ddtSchemes { default CrankNicolson 0.9; } gradSchemes { default pointCellsLeastSquares;//Gauss linear;// } divSchemes { default none; div(rhoPhi,U) Gauss limitedLinearV 1; div(phi,alpha) Gauss vanLeer; div(phirb,alpha) Gauss interfaceCompression; div(((rho*nuEff)*dev2(T(grad(U))))) Gauss linear; } laplacianSchemes { default Gauss linear corrected; } interpolationSchemes { default linear; } snGradSchemes { default corrected; } fluxRequired { default no; p_rgh; pcorr; alpha.water; }
以下是fvSolution文件信息
solvers { "alpha.water.*" { advectionScheme isoAdvection;//geoAdvection;// reconstructionScheme plicRDF; //RDFadvect isoInverseDistance // advectionScheme MULESScheme;//geoAdvection;// // reconstructionScheme isoAlpha; //plicRDF; //RDFadvect isoInverseDistance // isoAdvector parameters vof2IsoTol 1e-6; surfCellTol 1e-6; nAlphaBounds 3; snapTol 1e-12; clip true; gradAlphaNormal false; writeVTK false; // MULES parameters nAlphaCorr 2; cAlpha 1; icAlpha 0; MULESCorr yes; nLimiterIter 3; alphaApplyPrevCorr yes; solver smoothSolver; smoother symGaussSeidel; tolerance 1e-8; relTol 0; minIter 1; // parameters read by both isoAdvector and MULES nAlphaSubCycles 1; } pcorr { solver GAMG; smoother DIC; tolerance 1e-10; relTol 0; } pcorrFinal { $pcorr; relTol 0; } p_rgh { solver GAMG; smoother DIC; tolerance 1e-07; relTol 0.001; } p_rghFinal { $p_rgh; tolerance 1e-8; /* Should be 1 to 2 orders of magnitude smaller than alpha.phase1.*.surfCellTol */ relTol 0; } "(U|k|epsilon).*" { solver smoothSolver; smoother symGaussSeidel; tolerance 1e-07; relTol 0; } } PIMPLE { momentumPredictor yes; nOuterCorrectors 1; nCorrectors 3; nNonOrthogonalCorrectors 1; correctPhi true; pRefCell 0; pRefValue 0; } relaxationFactors { equations { ".*" 1; } }
补充上我的环境及求解器信息:
openfoam: v2312 solver: interFlow AMR: BlastAMR
-
@李东岳 东岳老师好,感谢您的关注和回复。
这里是我之前有点表述得太混乱。简单来说,上述第二个图里梯形的加密是我用SHM加进去的,相当于:第一个图是AMR加密时的结果,第二个图是SHM加密时的结果(没用AMR)。我在左上角新加了标注。
但不管是哪种加密,都有一个问题:在网格加密等级出现变化的地方,会出现不连续的解场。
并且我对比发现要么是(p连续,则U不连续),要么是(U连续,则p不连续)。由于SHM的结果也是这样,所以我猜应该和AMR没有关系,可能是我的求解设置哪里有点问题,所以发帖咨询一下大家。