我基于非均匀网格的投影方法开发了自己的 3D 有限体积 Navier-Stokes 求解器。我希望根据速度在每个时间步长上加入自动时间步长调整。是否有任何简单的技术或程序来计算这个问题的每一步的时间步长?
CFD 求解器中的自动时间步长调整
计算科学
流体动力学
有限体积
纳维斯托克斯
自适应时间步长
2021-12-13 17:04:06
2个回答
对于流求解器,一般规则是时间步需要满足某种“CFL 条件”,以 Courant、Friedrichs 和 Lewy 命名。这意味着
换句话说,时间步长必须与(所有单元格的最小值)网格大小与该单元格上的速度之比。
对于显式时间步长方法,这是理论上的要求:如果违反条件(即,选择的时间步长太大),则解将变得不稳定。每个时间步进方法都会导致常数的特定值。
对于隐式时间步长方法,您可以在不变得不稳定的情况下违反条件,但如果选择的时间步长太大,您通常会获得不太准确的解决方案。这是因为,如果您在时空图中考虑它,网格尺寸较小的大时间步长会导致时空单元非常拉长。所以人们选择或,或者甚至可能更大的值,但没有什么疯狂的。
上述条件为您提供了一种自适应计算时间步长的方法。
是的!通常所做的就是所谓的线法。本质上,您在空间上离散化以获得所有运算符,但不是离散化时间分量,而是保留该导数。现在你有了一个 ODE 系统。然后调用像SUNDIALS或DifferentialEquations.jl这样的 ODE 求解器,它们具有处理 PDE 派生 ODE 系统的稀疏性的工具(稀疏分解、预处理 GMRES、IMEX 积分器等)。
这稍微描述了该方法,本教程中的第二个示例显示了如何为 PDE 半离散化构建和优化 ODE 求解器。
其它你可能感兴趣的问题