sponge.control.Integrator

查看源文件
class sponge.control.Integrator(system: :class:`sponge.system.Molecule`, thermostat: :class:`sponge.control.Thermostat` = None, barostat: :class:`sponge.control.Barostat` = None, constraint: Union[:class:`sponge.control.Constraint`, List[:class:`sponge.control.Constraint`]] = None, **kwargs)[源代码]
Class

sponge.control.Integrator 是在分子模拟的过程中,用以控制原子坐标和速度的模块。

参数:
输入:
  • coordinate (Tensor) - 坐标。shape为 \((B, A, D)\) 的Tensor。数据类型是float。这里 \(B\) 是分子模拟中walker的数目, \(A\) 是原子数目, \(D\) 是模拟系统的空间维数,通常为3。

  • velocity (Tensor) - 速度。shape为 \((B, A, D)\) 的Tensor。数据类型是float。

  • force (Tensor) - 原子力。shape为 \((B, A, D)\) 的Tensor。数据类型是float。

  • energy (Tensor) - 能量。shape为 \((B, 1)\) 的Tensor。数据类型是float。

  • kinetics (Tensor) - 动能。shape为 \((B, D)\) 的Tensor。数据类型是float。

  • virial (Tensor) - 维里应力。shape为 \((B, D)\) 的Tensor。数据类型是float。

  • pbc_box (Tensor) - 周期性边界条件盒子。shape为 \((B, D)\) 的Tensor。数据类型是float。

  • step (int) - 模拟步数。默认值: 0

输出:
  • coordinate (Tensor) - 坐标。shape为 \((B, A, D)\) 的Tensor。数据类型是float。

  • velocity (Tensor) - 速度。shape为 \((B, A, D)\) 的Tensor。数据类型是float。

  • force (Tensor) - 原子力。shape为 \((B, A, D)\) 的Tensor。数据类型是float。

  • energy (Tensor) - 能量。shape为 \((B, 1)\) 的Tensor。数据类型是float。

  • kinetics (Tensor) - 动能。shape为 \((B, D)\) 的Tensor。数据类型是float。

  • virial (Tensor) - 维里。shape为 \((B, D)\) 的Tensor。数据类型是float。

  • pbc_box (Tensor) - 周期性边界条件盒子。shape为 \((B, D)\) 的Tensor。数据类型是float。

支持平台:

Ascend GPU

样例:

>>> from sponge import Molecule
>>> from sponge.control import Integrator
>>> system = Molecule(template='water.tip3p.yaml')
>>> controller = Integrator(system)
add_constraint(constraint)[源代码]

给积分器添加约束算法。

参数:
get_name()[源代码]

获取积分器的名称。

返回:
  • str。 积分器的名称。

set_barostat(barostat)[源代码]

给积分器添加恒压器算法。

参数:
set_constraint(constraint: Union[:class:`sponge.control.Constraint`, List[:class:`sponge.control.Constraint`]], num_constraints: int = 0)[源代码]

给积分器设置约束算法。

参数:
set_degrees_of_freedom(dofs)[源代码]

设置自由度。

参数:
  • dofs (int) - 自由度。

set_thermostat(thermostat)[源代码]

给积分器添加恒温器算法。

参数:
set_time_step(dt)[源代码]

设置模拟单步时间。

参数:
  • dt (float) - 单步所需时间。