PISO、SIMPLE算法对比分析

之前,我们简要分析了SIMPLE、PISO 、PIMPLE算法,今天,对PISO、SIMPLE算法进行对比分析。

两种算法的逻辑结构以及代码分析可以查看SIMPLE、PISO 、PIMPLE算法浅析

一 解决的主要问题

对于icoFoam求解器(不可压缩,瞬态),由NS方程,我们有:
∇ ⋅ U = 0 (1) \nabla \cdot \mathbf U=0\tag1 U=0(1)
∂ U ∂ t + ∇ ⋅ ( U U ) − ∇ ⋅ ( ν ⋅ U ) = − ∇ p ρ (2) \frac{\partial \mathbf U}{\partial t}+\nabla \cdot ({\mathbf U}\mathbf U{}) -\nabla \cdot(\nu \cdot \mathbf U)=-\nabla \frac p{\rho}\tag2 tU+(UU)(νU)=ρp(2)

此方程涉及到以下两个方面问题:

  1. 非线性问题:动量方程包含了非线性项,即 ∇ ⋅ ( U U ) \nabla \cdot (\mathbf U \mathbf U) (UU)。在对其线性化处理的时候,意味着需要用已知时间步的速度来计算速度系数矩阵 A A A。这进而又分为两个情况:
  • 稳态: A A A 的滞后问题在收敛的时候无关紧要

  • 瞬态: 在每一个时间步迭代求解----适用于大时间步计算(PIMPLE算法),其优点是非线性项完全被求解,问题是会耗费计算机资源,并且大的时间步计算会使时间项离散引入大的误差。

  • 我们可以使用小的时间步以降低时间项离散误差。在时间步很小(PISO算法)的时候,每个时间步的流场改变也很小,因此可以忽略滞后项滞后性。

  1. 速度压力耦合方程被耦合在一起,因为每个动量方程以及连续性方程都包含U。而p只出现在动量方程中。这进而又分为两个情况:
  • 稳态:由于每个迭代步的场更新比较大,因此对于速度压力的耦合问题不是很重要。
  • 瞬态:由于每个时间步内场更新比较小,并且我们需要每个时间步内的真实的速度场和压力场,速度压力耦合问题是至关重要的。

二 算法特点

针对以上两个问题的稳态瞬态的不同,于是有了非迭代的瞬态PISO 算法和迭代的稳态SIMPLE算法。其区别就在于:

  • 稳态类算法:时间步内的场改变是很小的,主要处理速度压力耦合问题
  • 瞬态类算法:迭代步内场改变很大,主要处理速度方程的线性化滞后问题
  • 其他差别参见SIMPLE、PISO 、PIMPLE算法浅析
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
icoFoam 求解器名称 |-createFields.H 场变量的声明和初始化 ————————————————————————————————————————————— Info<< "Reading transportProperties\n" << endl; //屏幕提示读入参数控制文件,等价于 C++中std::cout //声明属性字典类对象,该对象由 constant 文件夹下的“transportProperties”初始化创建。 IOdictionary transportProperties ( IOobject //其实IOobject,顾名思义就是输入输出对象,它完成的是一个桥梁的作用,即连接要构造的类及硬盘中的相应文件。这可以通过其成员函数objectStream()了解到,当完成了“搭桥”之后,便可通过这一成员函数返回硬盘文件对应的输入流,从而从输入流中读入将要构造的类的相关信息// ( "transportProperties", // 文件名称 runTime.constant(), // 文件位置,case/constant mesh, // 网格对象 IOobject::MUST_READ_IF_MODIFIED, //如果更改,必须读入 IOobject::NO_WRITE // 不对该文件进行写操作 ) ); //字典查询黏性,以便初始化带有单位的标量 dimensionedScalar nu ( transportProperties.lookup("nu") ); //屏幕提示创建压力场 Info<< "Reading field p\n" << endl; //创建压力场 volScalarField p //声明一个带单位的标量场,网格中心存储变量。 ( IOobject // IOobject主要从事输入输出控制 ( "p", // 压力场初始文件名称 runTime.timeName(), // 文件位置,由case中的system/controlDict中的startTime控制 //

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值