用fluent模拟内循环床气化燃烧(调试过程记录)
论文已发表:http://www.sciencedirect.com/science/article/pii/S0196890417305599
模拟对象为文献Combined gasification of coal and biomass in internal circulating fluidized bed[1]中的内循环气化炉。[1]http://www.sciencedirect.com/science/article/pii/S037838201100395X
---------------------------------------------------------------------分割线-----------------------------------------------------------------
2016.8.? 遇到问题:燃烧过程涉及到空燃比,需要知道质量流率,然而,fluent里对空气设置质量流率可能会出现错误,因此需要知道速度边界与质量流率的关系。(模拟二维对象)
2016.8? 解决:用report--flux功能
对于二维模型,可以设置reference里面的depth来调节质量流率(当边界速度一定时)。
-----------------------------------------------------------------------分割线------------------------------------------------------
2016.8.? 遇到问题:fluent算燃烧果然还是不够稳健,直接加入所有反应(10多个)后直接残差飞上天。
-----------------------------------------------------------------------分割线------------------------------------------------------
2016.8.16 问题解决:先加了两个裂解反应算了一段时间,再加碳氧化,还是不行,残差还是飞上天。索性把碳氧化速率减小1000倍,稳定住了,然后一个个加所有的异相反应,也稳定的不错,直接加入所有的均相反应,收敛性不是很好,主要是连续性方程不收敛,先让他继续这么算,算一晚上明天去看看。
-----------------------------------------------------------------------分割线------------------------------------------------------
2016.8.17 下午去看了看,结果发散了,又在那倒腾好一会,现在终于把所有反应都加上去并且都能收敛了。过程是这样的:我从昨天保存的地方,开始逐个加均相反应。刚开始两个还能收敛的不错,加到第三个均相反应的时候,残差又降不下去了,即使把反应速率改小,把时间步长减小,前两步能够收敛,但是到后面又收敛的不好了。来回尝试了好几次还还是不行。然后我有了个灵感,因为把步长减小后,前几步的残差是能降到很低的,这样我把收敛标准调到e-4的话,误差积累应该就更小,没准收敛效果会更好。果然我的想法是可行的。把连续性标准调到e-4以后,收敛性确实好多了。然后我还把另外几个湍流模型都算上了,看看它们算出来的流型有啥区别没有。明天去看看。
-----------------------------------------------------------------------分割线------------------------------------------------------
2016.8.23 先总结一下前两天的。陆陆续续去了好几次,调的过程中发现,时间步长不是越小收敛效果越好。刚开始步长是1e-6,连续性下不去,然后我偶然发现把时间步长增加到1e-5反而能够很好收敛。目前看来,暂时能够比较稳定的计算,但是比较头疼的是,由于反应比较多,有两个网格温度超限,而且每一步残差都会飞到很高,后果就是没准哪一步就由于残差弹的太高导致程序死掉,但是继续算还是可以算的。目前就是这个状态,明天拿个细点的网格去算算试试。看能不能稍微好点。
-----------------------------------------------------------------------分割线------------------------------------------------------
2016.9.19 这回重新调整了一下case,把碳单独看成一相,这样能减少反应方程的数目。前期调残差也废了点劲,主要还是减小步长,然后根据不收敛的变量找到对应松弛因子,减小之。比较头疼的是算到14秒的时候,突然发散了,很是奇怪,按说基本上产物都比较稳定了,不应该发散才对。多半还是反应的原因,然后先把均相反应先全部关上,依次打开,发现是碳氧化反应导致的,然后把这个反应速率先减少10倍,试了试,发现可以稳定计算,但是影响产物的量,先这样计算一段时间试试吧。
-----------------------------------------------------------------------分割线------------------------------------------------------
2016.9.21 真的是一个问题一夜回到解放前。之前通的是300k的低温气体,流化还不错,后来改为1073k以后,死活流化不起来了。尝试了一下把气体密度改为volume-weighted,这回可以了。而且,发现沙子流化不起来的话,会阻碍气体的热量传递,高温区只有低端入口一点点。
-----------------------------------------------------------------------分割线------------------------------------------------------
2016.9.28 这几天真是经历各种神奇的bug,累觉不爱,好在现在基本解决。自从装上linux系统以后,windows下的fluent就出现奇葩问题,设置好以后,开始计算就会报错,莫名其妙的错误,就像这样:
然后关掉这个奇怪的框框,继续算就能算了。但是让人很不爽啊。于是我就把linux备份出来,把整个硬盘格式化,重做系统,居然还是如此。我就很方了。。最后的最后,我是换了个系统重装才解决这个问题。但是我现在并不知道到底是什么问题引起的,简直神奇。
这还没完。由于之前几次算的都不是很理想,我就重新跑了个流化的case,具体设置后面介绍,当把反应模型打开以后,出现掉进程的问题(并行)。然后单线程算,出现segmentation fault的问题。这下我更方了,我甚至一度感觉是电脑硬件出问题了。然后我就一步步排查,最终发现,当设置湍流模型为k-epsilon dispersed,生物质和煤同时给,此时打开容积燃烧模型就会出现segmentation faul的问题,于是我就换成k-epsilon mixture,就不会有这个问题了,然后就是一步步加反应了。下面说说这个case怎么设置的。
首先我用1073k的气体通入床内,并且patch整个流体域为1073k,湍流模型设置的是dispersed(但是事实证明,最好别用这个,用mixture吧,虽然mixture的鼓泡床出泡效果没有dispersed明显),等充分流化以后就开始加生物质和煤了,这两者是常温。先只加入裂解和水蒸发这两个,最难的地方在于,由于床料的阻碍作用,生物质和煤的速度残差下不去。把步长减小到2e-4,动量松弛因子可以小到0.1左右,然后可以先这样算一段时间,因为随着反应的进行,生物质和煤会反应掉,反正我是中午回去睡一觉回来看就收敛了。收敛以后可以再尝试着把其他反应都加上,并把过小的松弛因子(比如动量)加大点。目前看来,计算还算稳定,就是不知道会不会和之前一样算一会又发散。先看看吧。对了,这次我先用单线程算试试,看和双线程结果有没区别。
-----------------------------------------------------------------------分割线------------------------------------------------------
2016.10.31 基本上反应全部加进去收敛以后,就能一直比较稳定了,剩下的就是调反应速率,因为这块涉及到不同文献给出的反应速率单位不同,导致指前因子单位不同,所以换算很麻烦,再加上有些文献写的可能是错的,先来记录一下单位换算的问题。
举个例子:CH4 + O2的反应速率表达式长这样,r = k[CH4][O2]。在FLUENT里,反应速率的单位是kmol/m3/s,气体浓度单位是kmol/m3,这样,就可以推出k的单位是m3/kmol/s,所以在FLUENT里,对于这个反应要保证单位正确。此时假如查到一篇文献反应速率的单位是mol/m3/s,那么可以推出其k的单位是m3/mol/s,应该将k中指前因子乘以1000,再填入FLUENT面板中。
虽然道理是这样,我自己操作过程中却遇到问题,我用文献《Three dimensional kinetic modeling of fluidized bed biomass gasification》的反应速率,并换算好单位,但是结果差的很多,这个反应速率我之前是用过的,组分对的也还可以,没换算单位,所以对于这篇文献,我怀疑作者可能给的不是换算以后的值。为什么会有这种感觉呢,我通过对比了几篇文献中CO+H2O的反应速率的值,感觉有些混乱。
这个来自一篇引用很高的文献《Modeling of biomass gasification in fluidized bed》
可以看到,A的值(也就是上文提到的k值)是2.78e3,其单位是m3/kmol/s,和FLUENT里是一样的,再来看看另几篇。
-- from 《Euler–Lagrange/DEM simulation of wood gasification in a bubbling fluidized bed reactor》
-- from 《Simulation on gasification of forestry residues in fluidized beds by Eulerian–Lagrangian approach》
-- from 《Two dimensional numerical computation of a circulating fluidized bed biomass gasifier》
如果按照第一篇为基准,那么A单位转换成m3/mol/s后应该是2.78,可是从这几篇文献可以看到,非常混乱。
目前还没找到确定答案,存疑。
转载于:https://www.cnblogs.com/Jay-CFD/p/5777702.html
用fluent模拟内循环床气化燃烧(调试过程记录)相关推荐
- 煤炭超临界水气化与超临界燃烧传热耦合Fluent模拟(调试记录)
煤炭超临界水气化与超临界燃烧传热耦合Fluent模拟(调试记录) 这是一篇fluent数值计算的调试记录(自分用) ------------------------------------------ ...
- c语言内循环和外循环作用是什么,内循环和外循环的区别是什么 你平时都用开哪个...
冬天暖风系统的开启也有很多门道,很多老司机也会出错,冬天我们是开内循环还是外循环比较好呢?哪样对车的使用寿命能够更好的提高,今天小编就给大家说一下其中的门道,让我们在以后开车的时候注意使用,看一下效果 ...
- mssql sqlserver 模拟for循环的写法
转自:http://www.maomao365.com/?p=6567 摘要: 下文讲述sql脚本模拟for循环的写法,如下所示: /* for样例 for('初始值','条件','执行后自增') 通 ...
- 华为手机30s桌面循环滑动_【短讯】内循环工程机械高景气;苹果自研自产两种口罩;明年起华为手机将搭载鸿蒙系统...
今日资讯 (2020-9-11) 工业资讯 [14部门发文推动 物流业制造业深度融合创新发展] 据新华社电 记者10日了解到,国家发展改革委等14个部门近日联合印发<推动物流业制造业深度融合创新 ...
- 编写函数,模拟内置函数 sorted()。
编写函数,模拟内置函数 sorted(). 用python来简单的模拟sorted可以用库函数来进行,也较为简单,我选了min()和sort()来进行模拟 利用min()函数 def sorteds( ...
- 新概念0810:我理解的经济内循环
新概念0810:我理解的经济内循环 这个词是最近的高频词汇,中央反复提倡的一种经济模式,以内循环为主外循环为辅的经济模式.同时也在拜读达利欧的<债务危机>一书,发现打造内循环为主外循环为辅 ...
- c语言内循环,C语言循环控制语句
C语言循环控制语句是一个基于C语言的编程语句,该语句主要有while循环语句.do-while循环语句和for循环语句来实现循环结构. 中文名 C语言循环控制语句 类 别 while循环语句,d ...
- 在Python中模拟do-while循环
Python as a language doesn't support the do-while loop. However, we can have a workaround to emulate ...
- spring处理循环依赖时序图_spring5源码系列--循环依赖 之 手写代码模拟spring循环依赖...
本次博客的目标 1. 手写spring循环依赖的整个过程 2. spring怎么解决循环依赖 3. 为什么要二级缓存和三级缓存 4. spring有没有解决构造函数的循环依赖 5. spring有没有 ...
最新文章
- 优达学城《DeepLearning》项目2:犬种分类器
- 写Struts2、Spring、Hibernate的xml配置文件时无提示
- python 递归调用
- Android线程池封装库
- linux man命令的1和1p,Linux中man命令的使用方法再解释
- 模拟手指触摸 Android,TouchLib
- linux-shell命令之cp(copy)【拷贝复制】
- java电影票选座_jQuery实现电影票选座效果手机端代码
- JNI的方式调用DLL(SO)(上)
- day21 java的数字类
- mysql解压版配置win8_Windows安装mysql8解压版
- 绿联串口线linux驱动下载,usb转db9串口线驱动
- php smarty安装,smarty安装(PHP)
- 马士兵老师Java虚拟机调优
- 重庆高清卫星地图(含道路标签数据叠加)
- 【GIS风暴】什么是EPSG?常见坐标系对应的EPSG代号、经度范围、中央经线是多少?
- 解决能登录微信却登不上网页的问题
- 期权定价模型BS模型及反推隐含波动率 golang实现
- 微信小程序之如何注册微信小程序
- 韩信点兵C语言实现的几种方法
热门文章
- java git_Java 实战开发之git环境安装(三)
- python爬取网易云音乐歌曲评论信息
- u-view2.x picker多列联动遇到的bug
- 什么软件可以下载地形图?地形图下载软件推荐
- 读书笔记:SAFNet
- java软件工程师简历项目经验pdf_java软件工程师简历中项目经验怎么写?
- 六轴机械臂DIY(一)机械臂DIY总体规划
- macOS Ventura 13.0 (22A380) Boot ISO 原版可引导镜像
- ERP、PLM是什么意思?ERP、PLM有什么内在联系
- 2022年全球与中国非定向信标市场现状与未来发展趋势分析