在谈严格对角化以及格林函数计算
严格对角化一般指计算模型的本征值和基态。这里难点是构建模型的基矢以及哈密顿量矩阵,后者存储为稀疏矩阵形式,前者由一系列二进制数组构成。利用二进制状态压缩表示态。然后就是对角化操作。这里不是必须手写Lanczos算法。Fortan可以直接调用ARPACK库,Python中的scipy也可以调用。当然C++手写Lanczos性能也不差。之后就是格林函数的计算,首先需要在基态的基础上,构造新的激发态。此
·
严格对角化一般指计算模型的本征值和基态。这里难点是构建模型的基矢以及哈密顿量矩阵,后者存储为稀疏矩阵形式,前者由一系列二进制数组构成。利用二进制状态压缩表示态。
然后就是对角化操作。这里不是必须手写Lanczos算法。Fortan可以直接调用ARPACK库,Python中的scipy也可以调用。当然C++手写Lanczos性能也不差。
之后就是格林函数的计算,首先需要在基态的基础上,构造新的激发态。此时粒子数改变了,因此要构造新的基矢。
Sparse Matrix的逆不一定是Sparse,因此如果这里直接调用库函数求逆乘起来。但是我们可以利用稀疏矩阵线性方程求解器,求解(z-H+E0)X = \psi>, 然后和右矢量直接内积。也可以手写Lanczos进行计算。
更多推荐
所有评论(0)