首先指出,由于指数墙的原因,不论怎么优化,在不改进核心算法的前提下,严格对角化自旋模型的上限格点保守估计在64个点,电子模型在32个点。
通常我们希望我们的程序达到自旋模型32个点,电子模型16个点。
对于超过10000 * 10000大小的矩阵,即使稀疏矩阵,我们不可能将整个矩阵完全对角化,只能求解出基态。
除了基态以外,我们还需要计算出零温格林函数,得到单粒子谱函数。但是这样得到的单粒子谱函数也只有几个点,无法得出详细的信息,我们还需要使用CPT方法的思想,得出整个谱函数。
整个严格对角化以及计算单粒子格林函数的过程可以分为以下几个部分
(1) 根据给定粒子数和自旋构建所有State
(2) 构建哈密顿量矩阵
(3) 对角化求解基态 (直接调用库函数)
(4) 计算零温格林函数(ToDo)
优化思路:分布优化
(1) 可以用OpenMP或者GPU优化。
(2) 同上
(3) 调用高性能的库 (目前瓶颈)
(4) ToDO