CFD计算过程发散诸多原因分析【转载】
转载自:
http://blog.sina.com.cn/s/blog_5fdfa7e601010rkx.html
今天探讨引起CFD计算过程中发散的一些原因。cfd计算是将描述物理问题的偏微分方程转化为代数方程组求解,从而得到离散空间上指定点上的值,而其他位置的值通过插值来完成。这本质是将非线性方程线性化并求解的过程,我是这样理解的,对于物理问题真解随时间的变化是一条曲线,而求解过程中不断的求解曲线的斜率,并实现时间的上的步进(可以理解为1阶导数)。如果在指定的时间步长内斜率变化很小,这种步进是可以满足方程要求的,并可以得到将来任意时刻的近似解。然而,如果变化比较大时,实际的变化过程将不能通过线性化方法来处理,这时候再使用这种方法就会出现问题。随着时间的推移,数值解越来越偏离真解,最终引起发散。对于我们求解的流动问题,有下面几种可能会引起计算过程的发散
1)时间步长过大
这点很容易理解,时间步长过长可能会造成时间段内,斜率变化较大,从而会造成数值解偏离真解。一般而言,对于显式方法要求在指定的时间步长内流体流动不能超过一个网格(库朗数限制)。
2)压力修正次数太少
对于NS方程SIMPLE系列算法而言,需要通过压力来显式修正表面流率和速度,如果修正次数过少,通常会造成修正后的速度和真实速度偏离较大,下一时间步求解速度的时候会得到一个不真实的表面流率,从而影响下一个时刻的速度求解,进而影响压力,长期计算会影响造成误差积累设置发散。因此,压力修正次数要有一定的限制。一般而言对于2d问题,2~3次能够满足要求,而对于3d问题3~4次应该可以,但也和具体问题有关系,同一个问题3d的比2d的要求修正次数多。
3)非正交修正
在网格正交性比较差的情况下,直接利用正交网格导出的扩散项离散过程通常会引起误差,通常将离散过程分为正交和非正交两部分,正交部分隐式处理,非正交部分显示处理。非正交中压力值采用了上一层迭代的值,因此会影响收敛性。当网格质量较差时,可以指定一定量的非正交循环,不需要太多3次以内即可。
4)负扩散系数
扩散过程描述的是从物理量从高浓度向低浓度的传输过程,负扩散系数会造成低浓度向高浓度的传输,这和实际物理现象不符的,长期模拟下去会造成局部浓度过度增加,从而造成发散。引起负扩散系数原因很多,比如湍流模型求出来的湍流粘性为负值,或者你误将扩散项前面的-写成了+。
5)不适当的边界条件
边界条件不合理也会引起方程的发散,比如开口系统只有进口没有出口。对于不可压缩流而言,边界条件的设置方法见前面博文。需要指出的时,湍流k-e模型中入口通常需要根据经验关系式指定,而并非随意给值,这常常是初学者常见的问题。
6)不合适的代数方程求解器
对于一些问题,离散后的代数方程需要采用一些性能优越的代数方程求解器。特别是对于3d问题,网格单元数越多对代数方程求解器要求越高,如果采用传统的pcg(pbicg)+传统预条件有时候在指定的迭代步内(openfoam默认1001)很难收敛到你指定的精度。这时,可以选用GAMG或者pcg+GAMG等代数求解器,以确保较少时间步收敛到指定解。
7)过大的源项
源项过大是引起方程发散的一个重要原因,当自己写程序或者做耦合计算的时候,不妨检查一下你的源项。
8)对流项离散
对流项的离散格式对收敛性的影响很多cfd的书上都有介绍。 一般而言低阶格式较稳定,高阶稳定性则较差。
9)不合适的初始场
对于cfd计算初始场往往设置具有较大的随意性,特别是对于稳态问题更是如此。如果设置的初值偏离真实物理量太远会造成一开始就发散。对于稳态问题,可以采用势流的求解结果作为初始场进行进一步迭代,这样会大大改善收敛性。
10)求解过程中物理量越界
有些求解的物理量通常是有界的,比如体积分率应该在[0 1]之间,而k 和 e 应当是大于0的数目,而在求解过程中由于离散方程植入不慎,会造成求解变量不在其物理范围之内,从而造成发散。因此对于有界量跟踪方程植入过程应特别注意。
上面仅仅是个人浅见,仅供参考。
CFD计算过程发散诸多原因分析【转载】的更多相关文章
- 一次接口压力测试qps极低原因分析及解决过程
一次接口压力测试qps极低原因分析及解决过程 9-2日在做内部的性能测试相关培训时,发现注册接口压力测试qps极低(20左右),这个性能指标远不能达到上线标准 ,经过一系列调试,最后定位 98%的时间 ...
- CFD计算
47 求解器为flunet5/6在设置边界条件时,specify boundary types下的types中有三项关于interior,interface,internal设置,在什么情况下设置相应 ...
- Nested Loops join时显示no join predicate原因分析以及解决办法
本文出处:http://www.cnblogs.com/wy123/p/6238844.html 最近遇到一个存储过程在某些特殊的情况下,效率极其低效, 至于底下到什么程度我现在都没有一个确切的数据, ...
- Beforeunload打点丢失原因分析及解决方案
淘宝的鱼相在 2012 年 8 月份发表了一篇文章,里面讲述了他们通过一个月的数据采集试验,得到的结果是:如果在浏览器的本页面刷新之前发送打点请求,各浏览器都有不同程度的点击丢失情况,具体点击丢失率统 ...
- Dispatcher.BeginInvoke()方法使用不当导致UI界面卡死的原因分析
原文:Dispatcher.BeginInvoke()方法使用不当导致UI界面卡死的原因分析 前段时间,公司同事开发了一个小工具,在工具执行过程中,UI界面一直处于卡死状态. 通过阅读代码发现,主要是 ...
- SQL查询速度慢的原因分析和解决方案
SQL查询速度慢的原因分析和解决方案 查询速度慢的原因很多,常见如下几种: 1.没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷) 2.I/O吞吐量小,形成了瓶颈效应. 3.没有创建 ...
- 关于JVM内存溢出的原因分析及解决方案探讨
前言:JVM中除了程序计数器,其他的区域都有可能会发生内存溢出. 0.什么是内存溢出 当程序需要申请内存的时候,由于没有足够的内存,此时就会抛出OutOfMemoryError,这就是内存溢出. 1. ...
- QuantLib 金融计算——案例之普通欧式期权分析
目录 QuantLib 金融计算--案例之普通欧式期权分析 概述 普通欧式期权公式法定价 1. 配置期权合约条款 2. 构建期权对象 3. 配置定价引擎 4. 计算 题外话:天数计算规则 Quote ...
- HBase丢失数据的故障和原因分析
hbase的稳定性是近期社区的重要关注点,毕竟稳定的系统才能被推广开来,这里有几次稳定性故障和大家分享. 第一次生产故障的现象及原因 现象: 1 hbase发现无法写入 2 通过hbc ...
随机推荐
- Redis相关概念
redis和memcache的比较 1 .Redis不仅仅支持简单的k/v类型的数据,同时还提供list,set,hash等数据结构的存储: 2 .Redis当物理内存用完时,可以将一些很久没用到的v ...
- error: ~/.vuerc may be outdated. Please delete it and re-run vue-cli in manual mode
@vue/cli创建项目时报错, 解决: 删除之. 查看vue/cli版本号: npm view @vue/cli versions --json
- golang实现路由中间件middleware
registerHandlers.go package router import ( "../ctrl" "../funcs" "github.co ...
- SAP开源的持续集成-持续交付的解决方案
SAP开源的持续集成/持续交付的解决方案: (1) 一个叫做piper的github项目,包含一个针对Jenkins的共享库和一个方便大家快速搭建CI/CD环境的Docker镜像: (2) 一套SAP ...
- https小结
目录: 1.什么是https 2.https实现过程描述(https和证书小结) 3.(在客户端)https抓包解密 4.wireshark分析https数据包解密前后的特点 正文 1.什么是http ...
- Spark运行原理【史上最详细】
https://blog.csdn.net/lovechendongxing/article/details/81746988 Spark应用程序以进程集合为单位在分布式集群上运行,通过driver程 ...
- Java--8--新特性--Optional--有效防止空指针异常
Optional<T> 类(java.util.Optional) 是一个容器类,代表一个值存在或不存在,原来用 null 表示一个值不存在,现在 Optional 可以更好的表达这个概念 ...
- MySQL的My.cnf模板(转)
[client] default-character-set = utf8mb4 port = PORT socket = /srv/myPORT/run/mysql.sock [mysqld] us ...
- SQL进阶系列之1CASE表达式
配置环境: 下载地址:https://www.enterprisedb.com/downloads/postgres-postgresql-downloads#windows 使用数据库: C:\Po ...
- 《你们都是魔鬼吗》实验十二 团队作业八:Alpha冲刺
<你们都是魔鬼吗>第八次团队作业:Alpha冲刺 项目 内容 这个作业属于哪个课程 任课教师博客主页链接 这个作业的要求在哪里 作业链接地址 团队名称 你们都是魔鬼吗 作业学习目标 软件测 ...