格子气体蒙特卡罗模拟工具

lattice-mc的Python项目详细描述


晶格mc:python晶格气体monte carlo模

PyPI versionBuild StatusDOIJOSS statusDocumentation Status

lattice_mc是python模块,用于对固体电解质中的离子输运进行(动力学)晶格气体monte carlo(lgmc)模拟。

在固体电解质中,离子运动通常受到一系列离散的“跳跃”的影响,其中离子在相邻的晶格位置之间移动。对于稀释的移动离子,离子轨道是随机游走,并且简单的解析表达式与宏观传输系数(即扩散系数和离子电导率)相关,其与单个离子的微观跳跃频率[23]有关。实际的固体电解质具有高的流动离子浓度,粒子间的显著相互作用产生了与稀释极限随机游走行为的偏差。一般来说,粒子间相互作用的定量效应不能通过分析来确定。作为一种替代方法,数值模拟,如格子气体蒙特卡罗方法,可以用来直接计算这些关系。晶格气体monte carlo方法特别适合于研究不同种类材料的性质如何导致宏观离子输运的定量差异,并可用于理解不同晶体结构或流动离子化学计量的材料的不同输运性质。

lattice_mc的目的是让材料科学家和固态化学家模拟固体电解质的微观物理(晶体结构、化学计量、相互作用模型)如何决定宏观输运行为(扩散和离子传导),目的是了解使不同材料变得更大或更大的因素。不太适用于特定应用(如锂离子电池或燃料电池)。

该代码允许编程构造简单的格(目前实现的是正方形、蜂窝状和立方体格)。具有任意几何结构的晶格可以由定义晶格位置及其连接性的文件格式构造,从而允许基于晶体数据的模型。所使用的算法和交互模型在参考文献中有更详细的描述。计算的性质包括示踪和“跳跃”扩散系数;其中后者与迁移率(以及带电粒子的电导率)成正比,5;示踪(单粒子)和集体相关系数,ffi[6]。最简单的相互作用模型是针对“非相互作用”粒子的,其中唯一的限制是体积排斥(两个粒子不能同时占据一个位置)[7]。附加的相互作用模型包括最近邻排斥和不相等位置的现场能量。使用一个有效的无拒绝蒙特卡罗方案[8]进行了模拟。

安装

pip install lattice_mc

或者从GitHub下载最新版本

https://github.com/bjmorgan/lattice_mc/archive/1.0.0.tar.gz

然后安装

cd lattice_mc
python setup.py install

或者您可以克隆最新的开发版本:

git clone git@github.com:bjmorgan/lattice_mc.git

以同样的方式安装。

cd lattice_mc
python setup.py install

或者,您可以使用pip直接从github安装最新的构建,例如

pip3 install git+https://github.com/bjmorgan/lattice_mc.git

文档

完整的文档和示例包含在位于examples/lattice_mc_example.ipynbJupyter notebook中。示例笔记本也位于GitHub上。

测试

最新版本的自动测试发生在here

手动测试可以使用

python3 -m unittest discover

这些代码已经用python 3.5及更高版本进行了测试。

参考文献

  1. C. R. A. Catlow, Sol. Stat. Ionics8, 89 (1983).
  2. R. E. Howard and A. B. Lidiard, Rep. Prog. Phys.27, 161 (1964).
  3. J. H. Harding, Defects and Transport in Ionic Solids, in Ionic Solids at High Temperatures ed. A. M. Stoneham, World Scientific (1989).
  4. B. J. Morgan, arXiv: 1707.00491
  5. A. Van der Ven et al.Acc. Chem. Res.46, 1216 (2013).
  6. G. E. Murch Sol. Stat. Ionics7, 177 (1982).
  7. R. Kutner Phys. Lett.81A, 239 (1981).
  8. A. F. Voter, Introduction to the Kinetic Monte Carlo Method, in Radiation Effects in Solids, ed. K. E. Sicafus et al., Springer (2007).
  9. Morgan and Madden, J. Phys. Condens. Matter24, 275303 (2012).
  10. G. E. Murch & R. J. Thorn, Phil. Mag.36 529 (1977).

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
JavaGWT:何时使用Lazydemelement?   Java中跟踪消失线程的多线程处理   java Springboot未能配置数据源:“url”,但我没有使用数据库   java为按钮生成随机位置   math Java:包含二项式系数计算的表达式   java通过AsyncTask传递参数   从路径错误创建java文件   高流量网站的性能播放框架、Java、Apache、PostgreSQL、JPA和Hibernate   java将4D矢量转换为长矢量   arraylist Java循环在没有任何错误的情况下终止   java正在制作一个计算器应用程序,希望在第二个片段中更新历史,但无法完成   java将信息从IntentService发送到Activity   java如何在游戏中插入大量实体!工作   javascript如何在ScriptEngineforJava中从数学中获得准确的结果?