研究生开学已经两周了,一直在学习跟LBM相关的编程知识。由于自己数值传热学的基础不是太好,为了能够快速地融入到现有的工作当中我将工作重心侧重在了编程方面,而不是相关模型和边界条件等的学习。我的主要参考书是:

中文名:格子玻尔兹曼方法--基础与工程应用(附计算机代码)

英文名:Lattice Boltzmann Method -- Fundamentals and Engineering Applications with Computer Codes

这本书的一个好处在于书后有相关案例对应的Fortran代码可以参考,在一些编程思路方面可以节省很多时间不需要自己思考。但与此同时不得不说这本书的代码里还是存在着一些问题。由于笔者能力尚且有限无法完全辨别相关代码的正确与否,所以在此暂不进行有关错误点的整理。

下面是前一个阶段的进度整理以及后一个阶段打算:熟悉基础理论与简单模型

读懂书后的Fortran代码并修改为Python(扩散、对流-扩散、等温不可压缩、非等温不可压缩)基本上每章都做了1-2个完整的案例,但与书上的结果多多少少存在一些差距,大体上成功,估计细节还要好好推敲比对。

数据可视化处理(仰仗Tecplot,真的很心累,学习资料不是很多)

Python代码提速(最开始写完python代码很慢,近乎崩溃,可能是由于python是解释型语言,像C是编译型语言,在计算上速度差距过大。还好现在已经解决,也是这篇文章要详述的地方)

计算过程生成可视化动画(依然是依靠Tecplot)

----------------------------------(TODAY)----------------------------------

说一下之前计划安排的原因。1. 首先前面已经过说我的强项在于编程,接触一个新的领域需要先建立自信心吧,所以肯定从我拿手的地方下手。2.其次我对数值传热学不熟悉,如果计算效率不高的话后期算模型进行检验肯定会拖慢整体的学习节奏,所以要先把计算速度拉上来。3. 计算过程生成可视化动画这件事也是我得一个想法。对于一些时间比较长的计算过程,很可能在刚开始计算就是错的,如果每次都等完全算完才知道程序的问题往往太晚了,所以运行大程序之前如果能先迭代10000次看看可视化的过程情况而不是一堆密密麻麻的数据会对学习有很大的帮助。

----------------------------------(FUTURE)----------------------------------

将面向过程型程序改成面向对象(制作自己的模型库便于扩展)

实现书上的案例(包括正确性分析以及不同代码之间的对比)

代码再提速(优化算法以及并行计算)

补数值传热学知识点(一切准备工作就绪开始丰富理论知识)

然后开始敲重点!!!怎么给python代码提速

使用一个第三方的东西叫做pypy,这是一种使用了Just In Time 即JIT技术的解释器。同样一个代码在使用pypy执行和普通python执行时的差距模糊点讲差距在10-100倍左右(因为我当时看到pypy的速度太高兴了以至于没有统计到底快了多少)。但是敲重点!实验室的师兄师姐们用的matplab同一个算例格子数和迭代次数都相同的情况下pypy的执行时间是matlab的十分之一(我没有亲自编写程序验证,口头确定了是同一个案例),这就很吸引人了。

科技是一把双刃剑,快是快了但是也存在了一些问题。由于pypy可能刚出现所以对于一些包还不是很支持。比如在第一次用的时候,使用numpy库会导致速度下降,所以我把基本上所有的numpy代码都取代掉了。第二个缺点就是我本来想在计算过程中实时生成图像,但是发现pypy不能pip matplotlib这个包(都支持哪些库官网上可以找到)所以只能想另外一种方法曲线解决问题哈哈哈哈。但是现在来说,速度是第一生产力,除非我有更好的办法,否则短期内应该不会放弃使用pypy。

python可以应用lbm_格子玻尔兹曼方法(LBM)python程序提速相关推荐

  1. python可以应用lbm_格子玻尔兹曼方法(LBM)Python 程序提速

    众所周知,python是一门解释型语言,相比于C/C++等编译型语言程序运行的运行速度慢.在我使用python的日常中多半是编写数值模拟程序,程序主要结构就是一个for循环下面跟着各种各样的计算公式. ...

  2. 格子玻尔兹曼流体代码_格子玻尔兹曼方法(LBM)学习:对流-扩散问题(附MATLAB代码)...

    (๑❛ᴗ❛๑) 麻烦各位读者收藏之余点个喜欢或赞呢,咱也更有干劲了~ OrzSunspot:格子玻尔兹曼方法(LBM)学习:等温不可压缩流体流动问题(附MATLAB代码)​zhuanlan.zhihu ...

  3. matlab lbm 代码,Matlab实现格子玻尔兹曼方法(Lattice Boltzmann Method,LBM)模拟

    %LBM的matlab代码 %Matlab实现格子玻尔兹曼方法(Lattice Boltzmann Method,LBM)模拟 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % c ...

  4. matlab boltzmann函数,Matlab实现格子玻尔兹曼方法(Lattice Boltzmann Method,LBM)模拟

    Matlab实现格子玻尔兹曼方法(Lattice Boltzmann Method,LBM)模拟 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % cylinder.m: Flow ...

  5. 格子玻尔兹曼方法(LBM)的学习笔记1(附Couette流源代码及解析)

    笔记目录 关于学习的教材及说明 在学习之前大致将流体力学学了一下包括一些概念的理解和重要的公式,在看这本<The Lattice Boltzmann Method Principles and ...

  6. 格子玻尔兹曼方法(LBM)计算中的无量纲化转化(将物理参数转化为格子参数)

    说明:方法来自外文资料,主要通过无量纲方法进行LBM仿真计算中由实际物理量到格子物理量的转化,保证其一致性 已知量 物理长度尺寸HHH : 格子长度尺寸 (自定义)H~\tilde{H}H~: 密度ρ ...

  7. [LBM方法学习笔记1】格子玻尔兹曼方法介绍

    本人LBM方法小白,记录一下自己的学习过程,因为LBM方法的公式比较多,所以为手写贴图,后面会考虑整理. [参考书]: 1.<The Lattice Boltzmann Method>,之 ...

  8. 格子玻尔兹曼在多孔介质孔隙尺度气泡输运调控中的应用和MATLAB仿真『需要数据和代码请先私信』

    引言 格子玻尔兹曼方法(Lattice Boltzmann Method, LBM)是一种基于介观(mesoscopic)模拟尺度的计算流体力学方法.该方法相比于其他传统CFD计算方法,具有介于微观分 ...

  9. 格子玻尔兹曼方法书中,计算机代码(Fortran语言)FDM的输出结果是什么,为什么显示程序“[25024] Console1.exe”已退出,返回值为 0 (0x0)。

    格子玻尔兹曼方法书中,计算机代码(Fortran语言)FDM的输出结果是什么,为什么显示程序"[25024] Console1.exe"已退出,返回值为 0 (0x0).

最新文章

  1. 信噪比与错误指数matlab,关于信噪比不符合理论值的问题
  2. 3.5 集束搜索的误差分析-深度学习第五课《序列模型》-Stanford吴恩达教授
  3. APM - 零侵入监控Http服务
  4. react入门(1)之阮一峰react教程
  5. js获取当前月的第一天和最后一天
  6. python异步调用shell_Jenkins pipeline中优雅的执行shell/python/groovy脚本
  7. Exchange2003反病毒
  8. 自学python需要安装什么-学习python需要什么基础吗?老男孩Python
  9. A/B Testing
  10. java 取色器_Arava: 用 swing 写一个取色器
  11. 【信号与系统】(十三)傅里叶变换与频域分析——周期信号的傅里叶级数
  12. CNTV数据库高级经理田发明:SQL审核与开发规范
  13. 曾被尊称为“教父级”人物的郭盛华,现在到底怎么样了?
  14. GAN相关论文《Spectral Regularization for Combating Mode Collapse in GANs》
  15. vmware虚拟机删除光驱启动报错解决办法
  16. win10开机桌面图像获取
  17. vulnhub靶场-hacksudo - Thor
  18. android 之TCP客户端编程
  19. 钉钉支持鸿蒙系统,鸿蒙系统
  20. Rust 不同方式创建Arc对象性能对比

热门文章

  1. RTOS学习笔记--RTOS系统介绍
  2. 十、JVM调优实战——ES集群服务不稳定
  3. 线性代数-4-向量组的线性相关性
  4. 企业针对嵌入式开发源代码及电路图纸如何防泄密?
  5. Error: EPERM: operation not permitted, mkdir......
  6. 观察者和中介者的区别
  7. 使用pdfFactory为PDF文件设定查看选项
  8. qt获取”本地连接“的IP
  9. NXP(Freescale) QorIQ T2080 SRIO使用
  10. 一款基于ssd1306驱动的12864屏简介