用Python模拟分子动力学
我正在寻找一个可以用来模拟分子动力学的Python库,特别是在非平衡的情况下。我需要一个能够处理相当多分子的设置,主要是从动理论的角度来进行模拟,并且能够处理固体表面的存在。关于这些表面,我希望能够创建任意形状,并监测由于分子作用而产生的压力和其他变量。或者,如果我有能够处理这些的分子,我也可以自己添加表面部分。
有没有人知道有哪些合适的库吗?
7 个回答
Lampps和gromacs是两个非常知名的分子动力学代码。这些代码都有一些基于Python的包装工具,但我不太确定这些包装工具能提供多少功能。可能它们无法让你完全控制模拟过程。
可以在网上搜索“GromacsWrapper”或者“lammps”和“pizza.py”。
Digital material和ASE是另外两个分子动力学代码,它们提供了很多功能,但我上次查看时发现它们都比较专业。可能不支持你想要的力势。
可以搜索“digital material”和“cornell”,或者搜索“ase”和“dtu”。
给MJV的备注:普通的分子动力学代码每次只处理一个时间步,并且在每个时间步中移动所有粒子。大部分时间都花在计算每个原子的总力上。这需要遍历一对对相邻原子的列表。我认为最好的办法是用C++或Fortran来进行力的计算和一些基本操作,然后再用Python来包装这些功能。(不过用numpy矩阵看看能做到什么也是挺有趣的)
你有没有考虑过SimPy?SimPy是一个比较通用的离散事件模拟工具包,可能能满足你的需求。
更棒的是,分子建模工具包 (MMTK)似乎更专业一些……
我都没有用过这两个工具,但听起来很有趣。Python作为一种编程语言,在模拟软件中似乎有很好的应用前景。人们可以编写自己模型的具体细节,同时依赖这个框架来处理一些常见的逻辑,比如调度、可视化和监控等等。现在的问题是,这些工具在处理与生物模型相当的代理数量时表现如何(顺便问一下,这个“大小”指的是什么呢?)