用于模拟原子力显微镜图像的经典力场模型。
项目描述
探针粒子模型
一款简单高效的模拟软件,适用于高分辨率原子力显微镜(HR-AFM)和其他具有亚分子分辨率的扫描探针显微镜(SPM)技术(STM、IETS、TERS)。该软件模拟与探针尖端相连的探针粒子的偏转,其中探针粒子代表一个柔性的尖端顶点(通常是CO分子,但也可能是Xe、Cl-、H2O等其他物质)。Python包命名为ppafm
。
安装
安装ppafm
的标准方法是
$ pip install ppafm
这将安装该包及其所有依赖项。
最新安装指南可在专门的wiki页面找到。
命令行界面(CLI)
安装ppafm
后,用户将可用一系列命令行工具。它们的名字以ppafm-
为前缀。要获取有关特定工具的更多信息,请使用-h
选项运行它,例如
ppafm-generate-ljff -h
有关更多信息,请参阅ppafm
的命令行界面的专门页面。
图形用户界面(GUI)
该软件包附带一个方便的图形用户界面。与CLI不同,此界面需要在安装期间显式启用。要启用它,请检查专门的安装指南。要了解更多关于GUI界面的信息,请参阅PPAFM GUI的wiki页面。
使用示例
我们在examples
目录中提供了一组示例。要运行它们,请导航到该目录并运行run.sh
脚本。例如
$ cd examples/PTCDA_single
$ ./run.sh
您可以研究脚本,了解如何运行模拟。还可以查看params.ini
文件和wiki,了解如何设置模拟参数。
模拟完成后,将创建多个文件和文件夹。
还可以查看使用Python API进行运行GPU加速模拟的教程。
运行GPU生成器用于机器学习
examples/CorrectionLoopGraphene
使用GPU加速的ppafm通过比较模拟的AFM图像与参考来迭代改进分子几何估计。这是正在进行的工作。目前,估计几何形状的修改是随机的(蒙特卡罗),而以后我们计划开发更聪明的(例如机器学习)启发式方法,以实现更有效的改进。examples/Generator
快速生成一批模拟的AFM图像(或3D数据堆叠),这些图像可以进一步用于机器学习。特别是与https://github.com/SINGROUP/ASD-AFM相关。
ppafm模拟模型和实现
自2014年以来,ppafm已发展成为适用于特定用例的各种方法的工具箱。
- CPU版本: - 使用Python & C/C++的原版实现。它可以在大约1分钟内模拟典型的AFM实验(AFM图像的3D堆叠)。这是开发新功能和方法的基版。所有可用的模拟模型都包含在这个版本中,包括
- 点电荷静电学 + Lennard-Jones:原始的完全经典实现允许用户通过指定原子位置、类型和电荷来设置计算,而无需任何ab-initio输入。
- 哈特里势静电场 + Lennard-Jones:通过使用DFT计算中的哈特里势(例如VASP的LOCPOT)和使用CO尖端的四极模型,静电场得到了显著改善。我们发现这对于正确模拟具有强静电畸变AFM图像的极性分子(例如H2O簇、羧酸、PTCDA)至关重要。感谢采用快速傅里叶变换(FFT)的实现,这种改进不会增加计算时间(仍约为1分钟),只要可访问输入静电场。
- 哈特里势静电场 + 密度重叠:当通过尖端和样品的电子密度重叠来模拟原子电子壳层之间的Pauli排斥时,可以实现进一步的精度提高。这个排斥项替换了Lennard-Jones的排斥部分,而吸引部分(C6)保持不变。这种修改特别提高了对带有电子对(-NH、-OH、=O基团)、三键和其他强集中电子的分子模拟。通过FFT加速重叠排斥势的计算,以实现最小的计算开销(2-3分钟),只要可提供尖端和样品的输入密度。
- GPU版本: - 特别为生成机器学习训练数据而设计的版本。使用
pyOpenCL
实现可以将力场评估和探针粒子位置弛豫并行化到图形加速器的数百或数千个流处理器。通过使用大多数GPU中可用的硬件加速的三线性插值3D纹理,进一步加速了计算。这使得在消费级桌面GPU上每秒可以模拟10-100个AFM实验。- GPU版本旨在与AFM机器学习软件(https://github.com/SINGROUP/ASD-AFM)协同工作,并使用各种分子几何生成器。
- GPU GUI - GPU实现的快速速度还允许创建交互式GUI,在用户编辑分子几何或尖端参数的同时,可以实时更新分子AFM图像(<<0.1s)在普通笔记本电脑上。这对于试图在实验过程中实时识别和解释分子结构和配置的实验者来说是一个无价的工具。
其他分支
- master_backup - 旧的
master
分支最近进行了重大更新,并更名为main
。对于怀念旧master分支的用户,我们提供了一个备份副本。然而,这个版本非常旧,不建议使用。如果您错过某些功能或对当前main
分支的行为不满意,请通过创建一个问题来告知我们。 - PhotonMap - 实现了关于子分子扫描探针与拉曼光谱(TERS)和荧光光谱(LSTM)结合的最新进展。
- complex_tip - 对探针粒子模型进行修改,使用2个粒子,以额外的拟合参数为代价,更好地拟合实验结果。
对于开发者
如果您想为ppafm代码的开发做出贡献,请阅读开发者指南 wiki页面。
更多信息
- Wiki:https://github.com/Probe-Particle/ProbeParticleModel/wiki
- Python API文档:https://ppafm.readthedocs.io/en/latest/
使用探针粒子模型的重要出版物
- Prokop Hapala,Georgy Kichin,Christian Wagner,F. Stefan Tautz,Ruslan Temirov,和Pavel Jelínek,使用功能化尖端的STM/AFM高分辨率成像机制,Phys. Rev. B 90,085421 – 发布于2014年8月19日
- Prokop Hapala,Ruslan Temirov,F. Stefan Tautz,和Pavel Jelínek,使用功能化尖端的有机分子高分辨率IETS-STM图像的起源,Phys. Rev. Lett. 113,226101 – 发布于2014年11月25日
- 尼科·奥伊诺嫩,阿里克斯·V·亚库托维奇,奥雷利奥·加尔拉多,马丁·奥德莱切克,普罗科普·哈帕拉和奥德日·克雷奇,推进扫描探针显微镜模拟:探针-粒子模型十年发展,arXiv:2401.14564 - 2024年1月25日
许可协议
麻省理工学院
关闭
哈希值 for ppafm-0.3.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 4866b194b7a9aeeed37602f65d089cf6957e97b8404b1206737ff674c3d8c7aa |
|
MD5 | 4c83daba7729a16ec332af392f8d7452 |
|
BLAKE2b-256 | 77b1a9742d618d969b969506e57930c3a183e09a7520dee5282c84af9b7cbbc5 |
关闭
哈希值 for ppafm-0.3.2-cp312-cp312-macosx_11_0_arm64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | b9a00338d5698c56b65ebc299a72a0c742fae22710672b925933056826dc3876 |
|
MD5 | 09d5d77e6b21e6059009a683d0d7bc85 |
|
BLAKE2b-256 | 31006047c4f2af3d1fefb159f5d7b2afe7e6b511a9514fe8b9464be6204608fb |
关闭
哈希值 for ppafm-0.3.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | f39a57d4986c6053d375ef993b621f93ddc1db863f912fe7854437b83b7798b6 |
|
MD5 | 380aa3f1faf48eb1e17d7000f1e2e16e |
|
BLAKE2b-256 | aef233cd6b04fdb28736b527d6f20e4085aec806dc861725ffd3a2dd760b8e65 |
关闭
哈希值 for ppafm-0.3.2-cp311-cp311-macosx_11_0_arm64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | d0739326d0461ac3233a54c51ed087cf5c059b08d6cd31a9d9769b6ae4197017 |
|
MD5 | a840d3796c1c928a2079f011c1968638 |
|
BLAKE2b-256 | 2355538cbb902d4a5eb8daef50e539f68cdcc5958ecfcb4ee95e39d624f21f31 |
关闭
哈希值 for ppafm-0.3.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 490870133cc08c4c0dce0417531b609b291d132e900d79b60e088713641aefcc |
|
MD5 | 8a598bac584566f25a348480564de1e2 |
|
BLAKE2b-256 | 5186231bf6a82ab3909a5ec5e4b9cc088ec02ee322a31698333a483c1c12097e |
关闭
哈希值 for ppafm-0.3.2-cp310-cp310-macosx_11_0_arm64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 54d296eb38115cd99de2e9e2653c028642495074f276f30a20cd92eff22981c5 |
|
MD5 | e00ff223c153e2718879653fbdb7014e |
|
BLAKE2b-256 | 0004068730ee7987782322d56fcd469fd47b8cd4b7680d9fd88c75f2206d7d31 |
关闭
哈希值 for ppafm-0.3.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | dff77d0e71bd6a005555cd4643fe5cfc82d6f11f3e9d10813a8254660bd50c2c |
|
MD5 | ca118b3a356ae975a1f16ca368272776 |
|
BLAKE2b-256 | b57a353d635dee120b49295e9f833a9d6f4f0b703f8752cbadaeb8d91eb29d5a |
关闭
哈希值 for ppafm-0.3.2-cp39-cp39-macosx_11_0_arm64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | b4a1442566831ce7d05d9ddb289bbdb9a4ac4f7edba5cbeb027062c223e8f6ca |
|
MD5 | 0e32efc2a8ae3b6a9060f5f2555d779a |
|
BLAKE2b-256 | a70596a51c41770550f3325aecdf5ebbdc6c38fdd88834e0bd858d4435ef7ed1 |
关闭
哈希值 for ppafm-0.3.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 13ed1a301548278eb798197d3cc3b6bd06343af67639a1e70b865050f23a8dd4 |
|
MD5 | a99ebf801a1ee76f600cd2656466ceb2 |
|
BLAKE2b-256 | 66585700272cc859dd65ccf90461d7ab5ecf853a5932dae5be10e9df0c6f1410 |
关闭
哈希值 for ppafm-0.3.2-cp38-cp38-macosx_11_0_arm64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 3c0d0d859da681286fa544c02fecbf3cfba0b2649202445645b695a935c58360 |
|
MD5 | a6acc2e9d7e5239b9a806c66991e1dbf |
|
BLAKE2b-256 | fdf896778a300bdf0549d4dbef4a8355277cc4b7bc7e5a5d060405ed25a89fd1 |
关闭
哈希值 for ppafm-0.3.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | b33b51ba0c8c9df12bb78d8e5297480b293339fc464c62cb5b9b36a94c7c17c8 |
|
MD5 | 8f657c1cf2e235bafbf6ca8857c9b84a |
|
BLAKE2b-256 | f0c276b0525c1f457be0852ccd7a12bfbd9e1754d9ac3953e054e378f71c5de8 |