sponge.control.Brownian

查看源文件
class sponge.control.Brownian(system: :class:`sponge.system.Molecule`, temperature: float = 300, friction_coefficient: float = 1e3, **kwargs)[源代码]

布朗积分器。

参数:
  • system ( sponge.system.Molecule) - 模拟系统。

  • temperature (float, 可选) - 模拟温度,单位K。默认值: 300.0

  • friction_coefficient (float, 可选) - 摩擦系数,单位(amu/ps)。默认值: 1e3

  • kwargs (dict)- 关键字参数。

输入:
  • 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 Brownian
>>> system = Molecule(template='water.tip3p.yaml')
>>> controller = Brownian(system)
set_thermostat(thermostat: None = None)[源代码]

给积分器设置恒温器算法。

参数:
  • thermostat (None) - 设置恒温器算法,sponge.control.Brownian 积分器中恒温器算法只能是 None。默认值: None

set_barostat(barostat: None = None)[源代码]

给积分器设置恒压器算法。

参数:
  • barostat (None) - 设置恒压器算法,sponge.control.Brownian 积分器中恒压器算法只能是 None。默认值: None

set_constraint(constraint: None = None, num_constraints: int = 0)[源代码]

给积分器设置约束算法。

参数:
  • constraint (None) - 设置约束算法, sponge.control.Brownian`积分器中约束算法只能是 ``None`。默认值: None

  • num_constraints (int) - 约束数目。默认值: 0

set_time_step(dt)[源代码]

设置模拟单步时间。

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

property temperature

返回模拟温度。

返回:
  • Tensor,模拟温度。