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)。
- 返回类型:
- 返回:
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 个本征值以提升性能。