atomscf.utils

Functions

normalize_radial_u(u, r, w)

将径向函数 \(u(r)\) 归一化到 \(\int u^2\,dr=1\)

trapz(y, r[, w])

使用梯形权重对函数进行一维数值积分。

atomscf.utils.trapz(y, r, w=None)[源代码]

使用梯形权重对函数进行一维数值积分。

若提供 w,则直接返回 \(\sum_i w_i y_i\);否则退化为 numpy.trapz(y, r)() 的行为(均匀或非均匀步长)。

参数:
  • y (numpy.ndarray) -- 被积函数离散值 \(y(r_i)\)

  • r (numpy.ndarray) -- 网格坐标 \(r_i\)

  • w (numpy.ndarray, optional) -- 梯形权重 \(w_i\);若为 None 则内部用 numpy.trapz 计算。

返回:

积分近似值。

返回类型:

float

atomscf.utils.normalize_radial_u(u, r, w)[源代码]

将径向函数 \(u(r)\) 归一化到 \(\int u^2\,dr=1\)

参数:
返回类型:

tuple[ndarray, float]

返回:

  • u_norm (numpy.ndarray) -- 归一化后的函数值数组。

  • norm (float) -- 原始函数的范数 \(\sqrt{\int u^2\,dr}\)

备注

  • 该归一化对应径向方程中 \(u(r)\) 的标准内积,不包含体积分因子 \(4\pi r^2\)