直接数值模拟(DNS) 是一种精确求解 Navier-Stokes 方程(NS方程)的方法。通过 DNS,能够完全解算流体的运动,而无需使用湍流模型或任何近似方法。DNS直接解决了 NS 方程,并通过高分辨率网格捕捉流动中的所有尺度,从大尺度的流动到微小尺度的涡旋。
1. Navier-Stokes 方程(NS 方程)概述
NS 方程描述了粘性流体的运动,包括质量、动量和能量的守恒。对于不可压缩流体,NS 方程为:
2. DNS如何完全求解NS方程
DNS 完全求解 NS 方程是通过以下步骤来实现的:
2.1. 离散化方程
由于 NS 方程是一个偏微分方程,DNS 通过数值方法将其离散化为有限网格上的代数方程。常见的离散化方法包括:
- 有限差分法(FDM):将空间和时间离散化,近似表示导数(例如速度的空间导数)。
- 有限体积法(FVM):通过在控制体积上求解守恒方程,将连续的方程转换为离散的代数方程,适用于复杂几何体。
- 谱方法:通过基函数展开(如傅里叶级数或Chebyshev多项式),使得在频域上解决流动问题,适用于流动较简单的场景,能提供非常高的精度。
2.2. 网格划分和时间步长选择
DNS 通过细致的网格划分来捕捉流动中的所有涡旋尺度。这些网格通常在流场中的每个小尺度区域都具有很高的分辨率。网格的分辨率必须足够细,以便能模拟流体中的所有物理尺度,特别是微小尺度的涡旋。
此外,时间步长也需要小到足以捕捉到流动中快速变化的涡旋和瞬态现象。为了避免数值稳定性问题,时间步长通常需要比流场的物理时间尺度小几个数量级。
2.3. 求解线性和非线性项
NS 方程的 非线性项 是最复杂的部分,尤其是在湍流流动中,速度和压力的耦合非常强。DNS 必须精确计算这些非线性项,通常使用 显式 或 隐式 时间积分方法来解这些项。
- 显式方法:直接使用当前时间步的值来计算下一时间步的值(如 Runge-Kutta 方法)。
- 隐式方法:在时间步的计算中使用未来时间步的值,通常需要求解线性方程组,但计算量较大。
2.4. 边界条件处理
DNS 需要对流体的边界进行处理,通常有不同类型的边界条件:
- 无滑移边界条件:用于固体壁面,表示流体速度在壁面处为零。
- 滑移边界条件:在某些流动中,如气体流动,流体可以在边界处有一定的滑动。
- 周期性边界条件:用于周期性流动问题,如环形管道流动。
处理这些边界条件时,DNS会在网格上精确地实现边界条件的约束,确保模拟结果的准确性。
2.5. 高分辨率网格与时间步长
DNS 的一大特点就是需要非常高的空间和时间分辨率。为了完全捕捉湍流流动中的所有尺度,网格的大小必须足够小,时间步长也必须非常小。具体来说,网格的分辨率必须能够捕捉到涡流的最小尺度,而时间步长必须足够小以解析涡旋的瞬时动态。
- 在 低雷诺数 流动(例如,拉马尔方程、Poiseuille流动等)中,所需的网格较少,计算需求较低。
- 在 高雷诺数 流动(尤其是湍流流动)中,涡流的尺度范围非常广泛,DNS的计算量就会非常巨大。
2.6. 求解方式
DNS 中,所有涡旋从大尺度到小尺度的运动都被精确模拟,而没有使用任何湍流模型。求解过程中,DNS将每一个尺度的涡旋都视为物理现象的一部分,直接计算其动力学。通过不断的时间步进,DNS可以得到整个流场的瞬态解。
3. DNS的计算复杂度
3.1. 高计算成本
DNS 不使用任何湍流模型或简化方法,因此它要求极高的空间和时间分辨率。特别是在 高雷诺数 流动中,涡旋的尺度范围非常广,要求非常高的网格密度,这导致 DNS 的计算量呈指数级增长。
- 计算成本:需要大量的计算资源和存储资源,特别是对于三维复杂流动,网格数量可以达到数百万甚至数十亿个网格点。
- 时间步长限制:为了保证数值稳定性,时间步长通常需要设置得非常小,这使得模拟的时间进程变得非常慢。
3.2. 适用场景
由于 DNS 的高计算需求,它通常只适用于以下场景:
- 低雷诺数流动:例如,层流、简单几何形状的流动问题,所需计算量较小。
- 简化几何和小规模问题:用于验证湍流模型、研究基本流动现象、验证其他数值方法的准确性。
- 学术研究:DNS 被广泛用于湍流的基础研究,因为它能够提供详细的流动信息,帮助我们理解湍流的物理机制。
4. DNS的优势与局限
4.1. 优势
- 高精度:DNS 提供了最精确的解,能够捕捉流动中的所有尺度,尤其是湍流的细节。
- 无需湍流模型:与 RANS 或 LES 等方法不同,DNS 不需要任何湍流模型,避免了由于模型引入的误差。
- 深刻理解湍流:DNS 能够为湍流的物理机理提供细致的见解,是湍流研究中的金标准。
4.2. 局限
- 计算资源需求极大:DNS 的计算需求非常庞大,尤其是在处理复杂几何、三维流动或高雷诺数湍流时。即使是使用高性能计算集群,仍然只能处理相对简单的流动问题。
- 只适用于简单问题:由于 DNS 的高计算成本,通常只能用于低雷诺数流动或小规模的学术问题,无法在大规模工程计算中广泛应用。
- 不能应用于工程中复杂流动:对于复杂的工程应用,尤其是在高雷诺数下的湍流,使用 DNS 进行全面模拟通常不切实际。
∇2 是 拉普拉斯算子,它是一个二阶导数的符号,表示对一个标量场(如温度、压力等)进行 空间上的二阶偏导。拉普拉斯算子作用在一个标量场上,通常用于描述物理量的扩散、传播等现象。
在流体力学中,∇2(拉普拉斯算子)通常作用于 速度场 或 温度场 等标量场,用来表示物理量(例如流速、压力、温度等)的扩散过程。