atomscf.operator.solve_bound_states_fd

atomscf.operator.solve_bound_states_fd(r, l, v_of_r, k=4)[源代码]

基于有限差分 Hamiltonian 的径向束缚态求解(取低端 k 个本征对)。

该方法将径向 Hamiltonian 离散为内部点的对称矩阵,调用密集线性代数本征求解, 适合教学验证(例如氢样势下的 1s 能级),在网格较大时可能较慢。

参数:
  • r (numpy.ndarray) -- 单调递增的径向网格 (r_0,...,r_{N-1})。

  • l (int) -- 角动量量子数。

  • v_of_r (numpy.ndarray) -- 势能数组 v(r_i),长度与 r 一致。

  • k (int, optional) -- 返回最低能的本征态个数(默认 4)。

返回类型:

tuple[ndarray, ndarray]

返回:

  • eps (numpy.ndarray) -- 低端 k 个本征值(按升序)。

  • U (numpy.ndarray) -- 对应的径向函数矩阵 U,形状 (k, N),已在区间 [r_0, r_{N-1}] 上按 u^2 dr = 1 归一,并在两端补零以满足 Dirichlet 边界。

实际内部计算在 (r_1,\dots,r_{N-2}) 区间进行,端点边界条件 u=0。 若只需氢样势 1s 态,建议选择较大的 ``r_max``(如 50–100)与足够细的网格以降低边界误差。 使用 scipy.linalg.eigh 的 subset_by_index 只求前 k 个本征值以提升性能。