讨论 Fluent计算效率优于OpenFOAM
-
@wwzhao @cccrrryyy 您好!我还处于入门阶段,一边用OpenFOAM,一边学OpenFOAMwiki上的3weeks 和编程查询,我的fvSchemes和fvSolution文件如下,目前调试经验是在fvSchemes中设置fluxScheme Tadmor;算得比设置Kurganov;要快。我后面再试下各位的设置,再过来交流。
/*--------------------------------*- C++ -*----------------------------------*\ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | Website: https://openfoam.org \\ / A nd | Version: 6 \\/ M anipulation | \*---------------------------------------------------------------------------*/ FoamFile { version 2.0; format ascii; class dictionary; location "system"; object fvSchemes; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // fluxScheme Tadmor;// Kurganov; ddtSchemes { default Euler; } gradSchemes { grad(U) cellLimited Gauss linear 1; grad(nuTilda) cellLimited Gauss linear 1; grad(e) cellLimited Gauss linear 1; } divSchemes { default none; div(tauMC) Gauss linear; div(phi,nuTilda) Gauss linearUpwind limited; } laplacianSchemes { default Gauss linear corrected; } interpolationSchemes { default linear; } snGradSchemes { default corrected; } wallDist { method meshWave; } // ************************************************************************* //
/*--------------------------------*- C++ -*----------------------------------*\ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | Website: https://openfoam.org \\ / A nd | Version: 6 \\/ M anipulation | \*---------------------------------------------------------------------------*/ FoamFile { version 2.0; format ascii; class dictionary; location "system"; object fvSolution; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // solvers { p { solver GAMG; tolerance 1e-7; relTol 0.01; smoother GaussSeidel; cacheAgglomeration off; nCellsInCoarsestLevel 20; agglomerator faceAreaPair; mergeLevels 1; } Phi { $p; } pFinal { $p; tolerance 1e-06; relTol 0; } "(k|omega|epsilon|nuTilda|U|R|v2|f|kt|kl|e)" { solver smoothSolver; smoother GaussSeidel; nSweeps 1; tolerance 1e-20; relTol 0.01; } "(rho|rhoU|rhoE)" { solver diagonal; } } // ************************************************************************* //
-
@Foamer24 感谢分享!我没用过fluxScheme,所以这里什么比较好不太清楚。时间步我一般刚开始都是1e-06,之后根据最大CFL数再去调。我个人的感觉是如果需要调到5e-07以下我就会比较注意了,这种量级感觉算的相当慢了。我的网格有内流和外流两部分,内流的话边界层在0.1mm上下,和你差不多。这个就用雷诺数估算了一下。外流(射流)的话就没care边界层了。
我觉得时间步的绝对大小参考意义比较小,毕竟也看你的硬件好坏。可能单个时间步需要的时间(我的大概在一分多钟)和总时间步数(我的大概50,000左右)比较有比较价值。另外,我的ddtScheme一般用backward,因为是二阶的。对流项我也一般不用迎风格式,迎风格式对LES好像不太好。线性求解器里面我的压力方程一直是用PCG在解,没用GAMG。这个点其实我很关心,就是PCG和GAMG到底孰优孰劣,希望有经验的来探讨下!
你这个同样的网格用Fluent只需要1e-06这种量级的时间步吗?这个感觉不科学啊,同样的网格怎么会差这么多呢。
-
@东岳 在 讨论 Fluent计算效率优于OpenFOAM 中说:
你需要深挖一下
给你举个例子,下面是运算的一个log文件,时间步长非常小,2e-5,算2天之后,结果完全可以是正确的,但我觉得有问题
在自适应调节时间步长的情况下,时间步长会自动跳转满足CFL标准。其实对于我这个,如果在代码里加上几行,输出Ur的话,会发现下图中全场计算域中,就这么一个地方Ur的值特别大,导致局部库郎数过大。
我建议你看看你的算例是不是也是这样,我怀疑跟我差不多
想请教一下遇到这种情况应该怎么办呢?特别算vof的时候,界面某些点出经常出现很大的速度,导致时间步长小的无法接受。