CaNS求解不可压缩牛顿流体的流动
CaNS(Canonical Navier-Stokes)是一个用于流体流动的大规模并行数值模拟的代码。它的目标是解决任何不可压缩的牛顿流体的流动,这些流体可以从三维笛卡尔网格中基于 FFT 的二阶有限差分泊松方程的求解器中受益。在两个方向上,网格是规则的,求解器支持以下(homogeneous)边界条件的组合:
- Neumann-Neumann
- Dirichlet-Dirichlet
- Neumann-Dirichlet
- Periodic
在第三个领域方向,求解器更加灵活,因为它使用高斯消元法。在那里,网格也可以是不均匀的(例如,边界处的网格较细,中心处的网格较粗)。
CaNS 还允许选择 N-S 方程的扩散项的隐式时间离散化。这导致对每个速度分量的 Helmholtz 方程进行求解。由于也使用了基于 FFT 的求解器,因此上述压力边界条件的相同选项适用于速度,以防隐式扩散处于活动状态。
一些特点包括:
- 混合 MPI/OpenMP 并行化
- FFTW guru 接口用于计算一维变换的多维向量
- 从输入文件中自动确定正确的变换类型(傅里叶、余弦、正弦等)
- 2DECOMP&FFT 例程用于执行全局数据转置和数据 I/O
- 只需更改输入文件即可模拟不同的 canonical flow
评论