13.2.5. 周期KDTree MDAnalysis.lib.pkdtree

此模块包含一个类,允许在涉及周期性边界条件的KDTree上进行搜索。

class MDAnalysis.lib.pkdtree.PeriodicKDTree(box: _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | bool | int | float | complex | str | bytes | _NestedSequence[bool | int | float | complex | str | bytes] | None = None, leafsize: int = 10)[源代码]

周围的包装纸 scipy.spatial.cKDTree

创建一个对象,该对象可以处理周期性和非周期性边界条件,具体取决于构建树时提供的参数。

要启用周期性边界条件,必须提供长方体尺寸。周期性边界条件是通过创建与边界的指定截断距离内的粒子副本来实现的。这些副本和原始粒子坐标一起与cKDTree一起使用,没有任何特殊处理,因为PBC超出了这一点。任何具有重复粒子索引的操作后的最终结果都可以使用 MDAnalysis.lib.distances.undo_augment() 功能。

参数:
  • box (array-like or None, optional, default None) -- 以以下形式表示的模拟单元尺寸 MDAnalysis.trajectory.timestep.Timestep.dimensions 在计算接触时应考虑周期性边界条件。

  • leafsize (int (optional)) -- KDTree的树叶中的条目数。如果你的表现很差,你可以玩弄这个数字。增加了 leafsize 将加快KDTree的建设,但放慢搜索速度。

get_indices() ndarray[Any, dtype[_ScalarType_co]][源代码]

返回上一次查询的邻居。

返回:

指数 --最后查询点和搜索半径的邻域

返回类型:

NDArray

property pbc

用于指示存在周期边界的标志。

  • True 如果把PBC考虑在内

  • False 如果没有可用的单元格维。

这是托管属性,只能读取。

search(centers: _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | bool | int | float | complex | str | bytes | _NestedSequence[bool | int | float | complex | str | bytes], radius: float) ndarray[Any, dtype[_ScalarType_co]][源代码]

搜索中心半径内的所有点及其周期图像。

所有中心坐标都环绕在中心单元周围,以实现与树中的点及其图像之间的距离计算。

参数:
  • centers (array_like (N,3)) -- 用于搜索邻域的坐标数组

  • radius (float) -- 搜索邻居的最大距离。

search_pairs(radius: float) ndarray[Any, dtype[_ScalarType_co]][源代码]

搜索指定半径内的所有对

参数:

radius (float) -- 坐标对之间的最大距离

返回:

成对 --指定半径内的所有配对的指数

返回类型:

array

search_tree(centers: _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | bool | int | float | complex | str | bytes | _NestedSequence[bool | int | float | complex | str | bytes], radius: float) ndarray[源代码]

搜索其中的所有配对 radius 之间 centerscoords

coords 期间是否已在树中初始化坐标 set_coords()centers 如果需要PBC,则缠绕在主单元格周围。最小图像约定(PBC)在以下情况下被激活 box 参数是在类初始化期间提供的

参数:
  • centers (array_like (N,3)) -- 用于搜索邻域的坐标数组

  • radius (float) -- 搜索邻居的最大距离。

返回:

成对 --所有的配对 coordscenters

返回类型:

array

备注

此方法从 centers 并查询先前构建的树(内置 set_coords() )

set_coords(coords: _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | bool | int | float | complex | str | bytes | _NestedSequence[bool | int | float | complex | str | bytes], cutoff: float | None = None) None[源代码]

从坐标构造KDTree

在进行任何距离计算之前,会强制将坐标换行到主单位单元格。如果启用了周期性边界条件,则会在长方体附近生成重复粒子。一个额外的阵列 mapping 也会生成,稍后可用于追踪重复粒子坐标的原点。

对于非周期计算,不应提供截止值该参数仅对于周期计算是必需的。

参数:
  • coords (array_like) -- 形状的坐标数组 (N, 3) 对于N个原子。

  • cutoff (float) -- 指定的截断距离以创建通常等于所需搜索半径或所需截断半径的最大值的重复图像。与位于其中的每个原子相对应的相关图像 cutoff 将生成与任一长方体边界的距离。