sponge.colvar.Angle

查看源文件
class sponge.colvar.Angle(atoms: AtomsBase = None, atoms_a: AtomsBase = None, atoms_b: AtomsBase = None, atoms_c: AtomsBase = None, vector1: Vector = None, vector2: Vector = None, use_pbc: bool = None, batched: bool = False, keepdims: bool = None, axis: int = - 2, name: str = 'angle')[源代码]

角度的集合变量。

参数:
  • atoms (AtomsBase) - shape为 (…, 3, D) 的原子形成shape为 (…) 或 (…, 1) 的角度。不能与 atoms_aatoms_b 一起使用。默认值: None。其中,D表示仿真系统的维度。通常为3。

  • atoms_a (AtomsBase) - shape为 (…, D) 的原子A形成shape为 (…) 或 (…, 1) 的角度。必须与 atoms_batoms_c 一起使用。不能与 atoms 一起使用。默认值: None

  • atoms_b (AtomsBase) - shape为 (…, D) 的原子B形成shape为 (…) 或 (…, 1) 的角度。必须与 atoms_aatoms_c 一起使用。不能与 atoms 一起使用。默认值: None

  • atoms_c (AtomsBase) - shape为 (…, D) 的原子C形成shape为 (…) 或 (…, 1) 的角度。必须与 atoms_aatoms_b 一起使用。不能与 atoms 一起使用。默认值: None

  • vector1 (Vector) - shape为 (…, D) 的vector1变为shape为 (…) 或 (…, 1) 的角度形式。必须与 vector2 一起使用。不能与原子一起使用。默认值: None

  • vector2 (Vector) - shape为 (…, D) 的vector2变为shape为 (…) 或 (…, 1) 的角度形式。必须与 vector1 一起使用。不能与原子一起使用。默认值: None

  • use_pbc (bool) - 是否在周期边界条件下计算距离。默认值: None

  • batched (bool) - 索引的第一个维度是否为批大小。默认值: False

  • keepdims (bool) - 是否保留向量最后一个维度。默认值: False

  • axis (int) - 从原子坐标中收集点的轴。默认值:-2。

  • name (str) - Colvar的名称。默认值:'angle'。

支持平台:

Ascend GPU

样例:

>>> from sponge import Sponge
>>> from sponge.colvar import Angle
>>> from sponge.callback import RunInfo
>>> cv_angle = Angle([0, 1, 2])
>>> # system is the Molecule object defined by user.
>>> # energy is the Energy object defined by user.
>>> # opt is the Optimizer object defined by user.
>>> md = Sponge(system, potential=energy, optimizer=opt, metrics={'angle': cv_angle})
>>> run_info = RunInfo(1000)
>>> md.run(2000, callbacks=[run_info])
[MindSPONGE] Started simulation at 2024-02-19 15:43:11
[MindSPONGE] Step: 1000, E_pot: -117.30916, angle: 1.9461793
[MindSPONGE] Step: 2000, E_pot: -131.60872, angle: 1.9336755
[MindSPONGE] Finished simulation at 2024-02-19 15:44:03
[MindSPONGE] Simulation time: 51.27 seconds.