python fipy 菲克定律一维动态扩散

 时间:2024-10-21 10:10:22

菲克定律是指在不依靠宏观的混合作用发生的传质现象时,描述分子扩散过程中镶毳呦躲传质通量与浓度梯度之间关系的霁凶咬食定律。菲克定律是阿道夫·菲克(AdolfFick)于1855年提出。由菲克第二定律可以得到动态扩散的偏微分方程。求解可以得到浓度分布和流出曲线。不确定这个问题有没有解析解,不过数值求解是一种较为通用的解决方法。fipy是目前难得的还活着的PDE求解python包,作者根据官方示例改写本程序。

工具/原料

python27(必须)

fipy(必须)

spyder(建议)

注意本文的发稿时间,2018年3月

方法/步骤

1、安装fipy会有一定的难度,不在本篇范围,建议去官网查看,截至发稿,fipy还是建议在python27下使用

2、理解需要求解的问题一个一维动态传质问题。在x轴上一段范围内[0,x]。起初所有常挢傣捅地方的浓度均为0。右锉枨嘉眉侧端点处的浓度为1。然后溶质自由扩散。由菲克第二定律的微分方程可以模拟这个过程。我们希望在合理的精度和时间范围内数值模拟这个过程。

python fipy 菲克定律一维动态扩散

3、再次给出链接,有python程序和运行的录屏1oWWc-PZGfo0m2Un6-C3vSg

python fipy 菲克定律一维动态扩散

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

python fipy 菲克定律一维动态扩散

python fipy 菲克定律一维动态扩散

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

python fipy 菲克定律一维动态扩散

python fipy 菲克定律一维动态扩散

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

python fipy 菲克定律一维动态扩散

7、然后设定求解区域,或者说离散化求解区域。这里离散化为50个点。初始化为0

python fipy 菲克定律一维动态扩散

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

python fipy 菲克定律一维动态扩散

9、然后设立微分方程,fipy有其独特的面向对象的微分方程表达方式,此处ExplicitDiffusionTerm表示二阶梯度,TransientTerm表示随时间的一阶偏导。

python fipy 菲克定律一维动态扩散

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

python fipy 菲克定律一维动态扩散

11、为流出曲线简历list来存储,c0list存放x=0处的浓度,tlist存放时间,以便于最后画出流出曲线。然后建立绘图区,给浓度曲线(浓度关于x的曲线,随时间变化)绘图

python fipy 菲克定律一维动态扩散

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

python fipy 菲克定律一维动态扩散

13、等时间走完了,就绘制流出曲线,即x=0处的浓度随时间的变化。可以适当增加step(步数)来看看最后会怎样

python fipy 菲克定律一维动态扩散

python fipy 菲克定律一维动态扩散

python fipy 菲克定律一维动态扩散

如何利用EXCEL画出函数曲线? excel拟合曲线并输出公式 Matlab画正态分布柱状图及其拟合曲线的方法 EXCEL散点图曲线交叉点坐标的计算方法 在Excel中怎么计算反正弦值?
热门搜索
文明交通图片 辉夜姬图片 qq群图片 怎么去掉图片水印 教师节手抄报图片大全