中文

如何在自由能代码中微分集体变量:计算机代数代码生成与自动微分

计算物理 2018-02-28 v2

摘要

在分子动力学模拟中,集体变量的合理选择对于偏置采样自由能重构方法至关重要。例如,PLUMED 2 库提供了若干复杂的 CV 选项,并在 C++ 框架中实现;然而,由于需要提供所有函数关于原子坐标的解析导数代码,开发新的 CV 仍然十分耗时。我们提出了该问题的两种解决方案,即 符号微分与代码生成,以及 自动代码微分,两者均利用了开源库(分别为 SymPy 和 Stan Math)。通过实现一个真实的 CV 示例——聚合物的局部曲率半径,对这两种方法进行了详细的演示与讨论。用户可以将该代码作为模板,利用高级构造与自动梯度计算来简化自身 CV 的实现。

关键词

引用

@article{arxiv.1709.06780,
  title  = {How to Differentiate Collective Variables in Free Energy Codes: Computer-Algebra Code Generation and Automatic Differentiation},
  author = {Toni Giorgino},
  journal= {arXiv preprint arXiv:1709.06780},
  year   = {2018}
}

备注

Title changed with respect to the initial submission