python fipy 菲克定律一维动态扩散
1、安装fipy会有一定的难度,不在本篇范围,建议去官网查看,截至发稿,fipy还是建议在python27下使用
2、理解需要求解的问题一个一维动态传质问题。在x轴上一段范围内[0,x]。起初所有常挢傣捅地方的浓度均为0。右锉枨嘉眉侧端点处的浓度为1。然后溶质自由扩散。由菲克第二定律的微分方程可以模拟这个过程。我们希望在合理的精度和时间范围内数值模拟这个过程。

4、先给出全部程序的截图

5、展示一下最终的运行结果,有这两张图,figure1是浓度随位置的曲线,figure2是流出曲线。这是Ubuntu下的运行截图,win10也可以运行,链接视频里面就是在win10运行的。

6、首先导入需要使用的包。本文使用fipy求解偏微分方程。FiPy是一种基于标准有限体积法(finite volume methodFVM)的面向对象的偏微分方程(PDE)求解器,用霸烹钟爷Python编写。 该框架由美国国家标准与技术研究院(NIST)材料测量实验室(MML)的材料科学与工程部(MSED)和理论与计算材料科学中心(CTCMS)开发。是目前为数不多的还活跃的开源PDEpython求解工具包这是它的官网www.ctcms.nist.gov/fipy/2017年1月还出过更新,期待继续发展。fipy程序在win下有一些BUG,很是麻烦,如果非要使用,建议尝试Linux

8、D为扩散系数,即菲克定律中的D扩散系数然后设立边界条件,右侧为定值,及最右端的点的浓度为1左侧不设定,fipy默认设定为狄利克雷边界

10、然后设立步数和时间步长。此问题稳定的时间步长小于这个值(dx**2 / (2 涯箨唁峦* D))取其0.9。也可以自信尝试增大此值。步数step建议一开始测试的时候小一些,比如300.然后确定程序无误以后开一波3000步的模拟看看。

12、原先最为困难的地方,方程求解,此时却最为简单,fipy有封装好的求解器可以求解,然而win版却时常碰到BUG。几行代码,循环求解,win版后台由scipy进行求解。

