MFiX
文章平均质量分 63
MFiX
beidou111
研究图形学流体仿真。个人学习笔记,仅作记录,侵权必删。曾经是搞CFD流化床生物质的。现北航计算机博士生在读。联系请发邮件。私信不看。邮箱:li_cl@foxmail.com
展开
-
Anaconda版MFiX安装出现问题 尤其是HTTP Error的注意事项
Anaconda版基本上只能网络安装,博主曾经多次尝试打包离线安装,均失败了。如果有什么方案,会在这更新。MFiX实行封闭注册。需要到官网注册账号,要等一到两个工作日,等工作人员发给你密码。之后就用这个账号密码即可。安装一般是由于网络问题,经过经验总结。大概是北京时间晚上九点钟左右网络会比较顺畅...原创 2021-04-28 21:15:00 · 619 阅读 · 4 评论 -
画出某一高度截面上的颗粒速度分布线图
目标:画出某一高度截面上的颗粒速度分布线图如下图时间:2021-3-11原始算例:MFiX官方算例2D DEM方法1:借鉴Yin博客,先把颗粒速度插值到网格再画图借鉴Yin 博客上将颗粒速度插值到网格上的方法。利用reactionRates这个数组。插值以后再取时均,最后再截面。https://www.cnblogs.com/Jay-CFD/p/10786299.html结果:这种方法是可行的,但是最新版本由于更改了后处理源码会导致错误,需要退回到1931版本如图这种方法需要更改源代码原创 2021-03-12 10:39:27 · 1548 阅读 · 1 评论 -
遇到一个可能是MFiX bug的问题:关于热物性/热化性Cp的计算(已解决)
在这里请求一下知道的大佬进行解答我把这个问题post到MFiX官方论坛了,原帖子如下:https://mfix.netl.doe.gov/forum/t/why-the-mfix-only-calculate-5-coefficients-of-cp-but-give-7-coefficents/2624为什么MFiX仅仅计算了Cp的5个系数但是数据库却给了7个呢?Why the MFix only calculate 5 coefficients of Cp but give 7 coeffice原创 2021-03-03 11:19:51 · 337 阅读 · 0 评论 -
【git】如何利用mfix自带的git进行版本回退
问题说明有时候会遇到这样一种情况:改错了某个地方,然后想退回到之前保存的版本。这时候笨方法是每次保存都复制一份.mfx文件(但是这方法最稳妥)。聪明一点的办法就是利用mfix自带的git。大概是20.3以后的版本都有这个功能。今天用了下20.4.3版本打开旧版本的deck文件。打开不要紧,要紧的是不小心保存了,这就通常会导致版本不兼容。然后我的算例编译的时候就报错了。没办法,只能版本回退了。之前备份的方法都是采用自己手动复制的笨方法,但是很显然GUI里面是自带git的,正好借着这个机会探索下这个新功能。原创 2021-02-22 22:56:10 · 258 阅读 · 0 评论 -
为vim自定义mfix中的高亮关键词
目标用mfix GUI自带的editor打开.mfx文件的时候是有关键词高亮的。但是换个文本编辑器就没了,本文希望不用mfix GUI也能对mfix中的关键词进行高亮显示。前提说明本教程只是安装到vim这个编辑器上的,如果vim没有请下载。目前还没探索出如何在VS code等常用文本编辑器上使用。后续可能会补充。mfix关键词位置既然mfix自带的GUI能高亮,一定在某个地方定义了关键词。经过查找位于:~/miniconda3/envs/mfix-20.4.3/share/mfix/src/to原创 2021-02-18 22:32:28 · 322 阅读 · 1 评论 -
【MFiX】使颗粒保持恒定温度
如果要让颗粒保持500摄氏度des_thermo_newvalues.f中改为前提是你用的是INTG_EULER的格式如果不确定,就在图中73行的ENDIF后更改DES_T_S即可原创 2020-12-21 22:31:02 · 239 阅读 · 0 评论 -
【MFiX】MFiX中采用命令行(Batch solver)编译运行方式(并行)
超算或者没有配备显卡的远程服务器一般只能用命令行(MFiX中成为Batch solver)。所有含有UDF(化学反应必须用UDF)的MFiX算例必须先编译后运行。采用命令行的运行方式有两种从源代码运行从anaconda环境运行适用于命令行的编译方式有三种从源代码编译从anaconda环境编译从GUI编译原理都是一样的,只是操作方式不同罢了。这几种可以相互交叉。工具:这里采用的版本是MFiX-20.1.2系统是Ubuntu18参考:参考MFiX user guide P15原创 2020-12-10 16:18:36 · 1426 阅读 · 2 评论 -
【MFix】用particle_input.dat自定义指定初始颗粒位置的要点
旧版particle_input.dat(MFiX-20.3以前,新版本也兼容)根据官方指南描述从左到右每列的含义是(对于2D)x坐标y坐标半径密度速度u分量速度v分量要点:一定要和solids里指定的密度和直径相对应。MFiX就是靠这个分辨颗粒的相的。一定要注意在solid中指定颗粒数目,这个数目可以小于particle_input中的数目。GUI中指定颗粒数目或mfix.dat中关键字指定颗粒数目-要关闭自动颗粒生成待续。。。。新版particle_input.dat原创 2020-11-18 23:12:32 · 569 阅读 · 0 评论 -
【MFiX】使颗粒静止(常常用于测试)
说明在测试过程中为了防止颗粒飞出,有时需要保持颗粒静止或者做固定床的模拟的时候。操作参考reactive-chemistry算例添加如下文件即可usr1_des.f!vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv!! !! Module name: URS1_原创 2020-11-13 10:45:09 · 597 阅读 · 2 评论 -
【MFiX】variable_density 变密度模型解析与验证
1原创 2020-11-04 22:01:41 · 895 阅读 · 0 评论 -
MFiX-19.3.1的调用关系图(用doxygen和grapviz生成的)
对model文件夹生成的效果不是很好,凑合看吧MFiX-19.3.1版本使用方法解压后打开html文件夹下面的index.html下载链接:https://pan.baidu.com/s/15YP9QLBJ-FDtUjM4AlGXeQ提取码:mdxu复制这段内容后打开百度网盘手机App,操作更方便哦例子效果一览(mfix.f中的调用关系)...原创 2020-11-04 17:19:57 · 315 阅读 · 0 评论 -
MFiX-20.3.1版本的一个致命bug:定义定温度边界时
当定义定温度边界时,会报错如图所示相同算例情况下,使用mfix-20.1.2版本是不会发生这个错误的这个bug我汇报到论坛里了,不知道开发者是不是看见了。https://mfix.netl.doe.gov/forum/t/bug-of-new-version-mfix-20-3-1-when-define-specific-temperature-wall-bc/2225(这个bug让我找了一整天,结果发现大概率是官方代码出了问题。果然开源代码还是缺乏维护和测试…)...原创 2020-10-29 21:42:08 · 181 阅读 · 0 评论 -
MFiX中的时间对应的模块、变量、子程序和输出方法wall_time()和time
代码讲解模块名:time_cpu源文件:time_cpu_mod.f这里面定义了三个函数:wall_time获取当前现实时间 主要调用的是SYSTEM_CLOCKget_cpu_time获取当前CPU时间, 主要调用的是cpu_timeremaining_wall_time_estimate计算距离算完大约还剩余多少时间get_cpu_time先看第二个函数get_cpu_time仅仅就用了下fortran内置函数cpu_time这个函数是在MFiX-20版本新加的其实在19原创 2020-10-29 13:29:12 · 787 阅读 · 0 评论 -
MFiX中后处理输出雷诺数Re的方法
操作方法废话少说,直接上操作方法从\legacy_tests\dem-tests\evaporation\usr_rates_des.f中复制代码如下!----------------------------------------------------------------------!! Function: calc_NRe(M) !!原创 2020-10-25 10:52:28 · 711 阅读 · 0 评论 -
MFiX利用ReactionRates数组把颗粒变量存储到网格上
思路受到这篇Jay的文章的启发,修改了一下https://www.cnblogs.com/Jay-CFD/p/10786299.html借鉴原文的方法二但是这个方法修改了vtk_out.f这个文件,由于19版本和20版本的MFiX在这个文件上改动很大,所以在20上无法运行成功。于是做了如下修改:我发现原博主更改vtk_out.f这个文件主要其实就是用来call des_granular_temperature的,所以何不在别的地方call des_granular_temperature呢?由原创 2020-09-19 09:08:56 · 995 阅读 · 0 评论 -
【读MFiX源代码】MFiX中四种传热方式全面详解(对流、导热、辐射、反应热)并且输出以供后处理(2020-12-15更新)
文章目录1 目标2 代码结构2.1 des_time_step外层总控制2.2 颗粒导热2.2.1 颗粒-颗粒导热:calc_force_dem.f和des_thermo_cond_mod.f2.2.2 颗粒-墙壁导热:calc_dem_thermo_with_wall_stl.f和des_thermo_cond_mod.f2.3 除导热外其他三种传热的控制:calc_thermo_des2.3.1 CONV_GS_DES1 对流传热量2.3.2 DES_RADIATION计算辐射量2.3.3 RXNS_G原创 2020-09-13 22:51:19 · 3178 阅读 · 2 评论 -
MFiX bug monitor显示错误
版本20.1.2bug:在使用monitor的时候,会发现有时候画出的图线是不对的。原因可能是:开了两个MFIX GUI, monitor的信息只能显示其中一个,另外一个会完全和它一致不知道最新的20.2.1版本更新了没有还有,不确定之前的版本是否有这个bug...原创 2020-08-23 02:56:35 · 127 阅读 · 0 评论 -
【MFiX后处理】MFiX中使用des_usr_var输出颗粒的传热量(2020-11-27更新变更输出变量名方法)
参考之前Yin的那一篇博客https://www.cnblogs.com/Jay-CFD/p/10621274.html输出一下颗粒传热量使用的算例是fluid_bed_dem_2d打开des scalar tracking前面都和Yin那篇一样,打开enable user scalar tracking输入2因为第一个用来测试Y加速度了第二个输出传热量然后在output vtk中勾选好更改源代码源代码为des_thermo_newvalues.f在mfix-GUI自带的ed原创 2020-08-21 00:54:16 · 1094 阅读 · 0 评论 -
MFiX存储ReactionRates的模块
正文位置:/model/rxns_mod.f第五行! reaction rates DOUBLE PRECISION, DIMENSION(:, :), ALLOCATABLE :: ReactionRates在usr_rates.f和usr_rates_des.f中导入rxns模块即可直接使用ReactionRates数组USE rxns后记这个模块rxns还有许多其他有用的变量。该模块基本作用就是变量定义。比如把组分定义成一个结构体,把反应定义成结构体。以后再挖掘这里列原创 2020-08-19 23:33:41 · 388 阅读 · 0 评论 -
MFiX-PIC中计算颗粒固相应力的相关代码
源文件名:calc_ps_pic.f90源文件位置\model\des\pic\calc_ps_pic.f9081-90行为核心,如下 ! Particle stress :: Snider (Eq 33) ! tau = (PsubS*ThetasubP^Beta)/max(ThetasubCP-ThetasubP,small#*Theatsubf) DO IJK = IJKSTART3, IJKEND3 IF(VALID_PS_AT(IJK)) THEN Ps(原创 2020-08-19 14:15:25 · 493 阅读 · 1 评论 -
【转】MFiX输出自定义颗粒或网格信息
转自:https://www.cnblogs.com/Jay-CFD/p/10621274.htmlJayYin本文仅作自己方便查看用,建议查看原文输出颗粒信息总结一下在solid选项卡 DEM页面下打开user scalar tracking并输入变量个数在output中勾选DES user scalar 1修改源代码(先把待改源码拷贝到自己的文件夹)。如输出颗粒的Y方向加速度,需要在cfnewvalues.ffnewvalues.f中添加DES_USR_VAR(1,:) = FC(:转载 2020-08-19 10:19:50 · 652 阅读 · 0 评论 -
MFiX的程序逻辑,大致运行流程( 来自MFiX年会介绍PPT PNNL_mfix_presentation)
先粘贴在这,以后再翻译标题原始ppt下载:https://files.cnblogs.com/files/chunleili/PNNL_mfix_presentation.pptxSIMPLE算法计算气相子程序运行流程原创 2020-08-17 18:42:04 · 518 阅读 · 0 评论 -
利用paraview统计颗粒质量,碳质量,碳转化率
目标:求出所有颗粒碳质量的加和,用于计算碳转化率颗粒质量本来是可以在MFiX中直接输出,但是碳的质量不行。但是可以输出碳的质量分数。此外,最重要的是要能实时统计所有颗粒质量的加和。还要排除砂砾的干扰,只对生物质颗粒进行加和。之前一直没解决这个问题的原因是不会实时加和。直到看到这个帖子参考:https://forum.cfdac.com/t/topic/190/2原本的calculator里面是没有sum这个函数的,但是python calculator里面有。1. 导入颗粒文件(vtp或者是原创 2020-07-30 20:02:50 · 1248 阅读 · 0 评论 -
【MFiX源代码】sutherland公式计算粘度
MFiX采用sutherland公式计算粘度只能适用于空气,因为源代码里只给了空气源代码位置\mfix-19.3.1\model\calc_mu_g.f其中F2O3为2/3最主要的语句是136行MU_G(IJK) = to_SI*1.7D-4 * & (T_G(IJK)/273.0D0)**1.5D0 * (383.D0/(T_G(IJK)+110.D0))动力粘度以273K 时 1.7E-4为基础,依照该网格温度变化μg(IJK)=1.7×10−4×(Tg273)1.5×(3原创 2020-06-12 17:22:14 · 5402 阅读 · 1 评论 -
大概是MFiX并行的一个bug: 长时间运行之后内存占用会变得极高
用虚拟机ubuntu20运行16核心DMP,开始一切正常,后来就不出现残差了,而且系统变得极慢。几秒钟卡顿一次。打开系统检测器发现内存占用极高,仅仅运行了23小时就占用了30G的内存。虚拟机总共给了42G内存。照这么下去运行不了多久42G就全占满了。而且极其影响运行效率。文本窗口目前只出现过去的时间,并不闪过残差了看样子是GUI的问题,而且是和python有关。目前只能尝试不用GUI运行了。我已经在论坛里反映了,希望开发人员能解决一下这个BUG。(如果是python本身的问题可能长期都不能解决原创 2020-05-29 14:40:33 · 590 阅读 · 4 评论 -
【MFiX】记录一些有参考价值的legacy-tut/test算例
算例1 reactive-chemistry位置 legacy_tests\dem-tests\reactive-chemistry理由:比较简洁的DEM有反应算例实现下图为usr_rates_des.f中部分参考价值是(1)利用NP==2限定了反应的固相(2)利用DES_X_S(2,Bs)>0.0d0 限定了反应物必须存在(3)*利用pmass(NP)des_x_s(NP,Bs)/MW_S(pM,Bs)表示剩余的物质的量(lOoDt是时间步的倒数,和应该反应本身有关系,忽略)(4)原创 2020-05-25 22:27:53 · 490 阅读 · 0 评论 -
【MFiX】MFiX中变量总结 【持续更新 2020-12-21】
名称变量名模块气体密度RO_g(IJK)physprop 和 fldvar想到就更新原创 2020-05-22 13:43:54 · 1443 阅读 · 0 评论 -
【paraview进行MFiX后处理】如何计算某一气体组分的质量流量/气体产量
MFiX版本:20.1.2paraview版本:5.8目的:在一个反应容器中,发生反应并产生H2,我们需要算出H2的质量流量,并且测定出气体产量。当前MFiX只能输出H2气体质量分数,但是没有办法输出总质量或者质量流量,所以问题归结于求质量流量,并且进行时间积分。求总产量,相当于求对某一切面流过的质量流量积分。导入流场。做切面。点Y normal可以直接把切面与Y轴垂直如果没显示切面,勾选show plane在 origin中输入切面所在位置对切面积分在filter &g原创 2020-05-21 17:49:09 · 2759 阅读 · 2 评论 -
【MFiX源代码】MFiX中的颗粒-流体换热关系式为Ranz-Marshall关系式
目前为止应该只有这一个关系式源代码所在位置:calc_gamma_des.f中第111行尽管源代码前面给出了 select case, 貌似是要给出多种换热关系式,然而目前代码里植入了这一种参考J. Musser博士毕业论文的P72 (pdf实际页面是第94页)...原创 2020-05-18 16:49:47 · 995 阅读 · 0 评论 -
【读MFiX源代码】4 run_dem(des_time_march)计算颗粒相(主要步骤DEM_TIME_STEP)(源文件在des_time_march.f)
位置被谁调用(入口)run_mfix(dt_loop)(mfix.f)mfix.f文件中第146行,注意观察输出输出仅为这三行run_dem进入run_dem(仍然在mfix.f)可以发现主要步骤有三步:des_time_initdes_time_stepdes_time_end运行完des_time_init会输出第一行运行完des_time_step会输出第二行...原创 2020-05-08 17:22:44 · 1159 阅读 · 3 评论 -
MFiX中的颗粒辐射传热是如何计算的?
一直以为流化床中颗粒辐射传热会极其复杂,谁能想到MFiX中采用的是一个极其简陋的辐射传热模型。主要内容简化假设所有颗粒都是漫灰体某个颗粒的辐射传热简化为颗粒对无限大空间的辐射该无限大空间(环境)的温度为该颗粒周围所有颗粒温度的算术平均值计算公式其中TenvT_{env}Tenv 是环境温度上标或者下标iii代表该颗粒Np,ΩN_{p,\Omega}Np,Ω...原创 2020-04-30 19:31:49 · 787 阅读 · 1 评论 -
转换质量分数与摩尔分数
引自Barracuda help原创 2020-04-28 17:38:20 · 3313 阅读 · 0 评论 -
BC同时注入气体和颗粒时,如何给定合理的体积分数(volume fraction)?
引自barracuda help文档原创 2020-04-28 17:35:01 · 723 阅读 · 0 评论 -
【读MFiX源代码】3 run_fluid计算流体相 (主要步骤DO_ITERATION) (源文件iterate.f)
MODULE ITERATE文件层次ITERATE_INIT(118行-200行)DO_ITERATION合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart...原创 2020-04-24 22:29:44 · 868 阅读 · 1 评论 -
【读MFiX源代码】1.5 GET_DAT读取mfix.dat并且检查BC IC 反应配平 热物性(源文件在main.f)
所在位置调用位置mfix.f第127行子程序所在位置/model/main.f第469行-557行所在module: module mainSUBROUTINE GET_DATA(MFIX_DAT)作用! Read input data, check data, do computations for IC and BC locations! and flows, and s...原创 2020-04-23 15:20:57 · 446 阅读 · 0 评论 -
【MFiX碎片知识】QMOM理论是干什么的?
经常能在MFiX的源代码中看到QMOM相关的变量和子程序。比如time_step.f中60-68行先说结论,这个东西目前还不完善,看到就可以跳过,在正常模拟中基本上没什么用处解析在doc中有这么一个pdf专门论述QMOM理论的。这个pdf叫做qmomk_doc_2012-1.pdf可以在源代码文件夹的doc文件夹中的achieve文件夹找到也可以在MFiX官网的documentat...原创 2020-04-21 19:13:49 · 763 阅读 · 0 评论 -
【读MFiX源代码】0 读代码准备工作:如何利用gdb调试mfix程序?并且用Visual studio code将debug可视化(使用vscode配置linux下Fortran编译调试环境)
文章目录前提准备方法1. 编译你的case2. 把你编译的程序装入gdb3. gdb中运行和查看源代码常见错误总结进阶:用VS code 可视化gdb1. 配置launch.json2 配置task.json前提准备安装了gdb的linux/windows没有的话ubantu下apt-get 下载一个,一般都自带window要安装mingw64(注意不要弄错了64位和32位不能通用)本...原创 2020-04-21 01:09:37 · 1250 阅读 · 0 评论 -
【读MFiX源代码】番外:calc_thermo_des.f
目录概述主体内容(36-66行)概述该文件定义了一个模块MODULE CALC_THERMO_DES_MOD这个模块的内部只有一个子程序SUBROUTINE CALC_THERMO_DESMODULE CALC_THERMO_DES_MODSUBROUTINE CALC_THERMO_DES先看下注释! Module name: CALC_THERMO_DES ...原创 2020-04-20 17:17:51 · 352 阅读 · 0 评论 -
MFiX带化学反应DEM能用SMP并行吗?
不能!不能!不能!(截止MFiX 20.1.0版本)(血的教训,尝试了无数次才想起来user guide上早就说了不行)这是DEM模型所支持的(另外附上TFM和PIC所支持的类型)可见如果DEM想要并行,只有DMP一条出路!...原创 2020-04-16 22:44:06 · 482 阅读 · 0 评论 -
【MFiX有反应算例设置】1 usr_rates.f和usr_rates_des.f(以tutorial的silane_pyrolysis_3d为例)
概述以19.3.1版本为例在MFiX里设置化学反应,有这么三步在GUI(.mfix文件,或者旧版本里的mfix.dat)里设置反应方程在usr_rates.f和usr_rates_des.f里设置速率在GUI里编译并运行算例第一步和第三步都不用说了,很简单。经常出问题的是第二步,因为usr_rates.f和usr_rates_des.f是要自己用Fortran语言写代码的。usr...原创 2020-04-16 18:16:06 · 1459 阅读 · 2 评论