修改,保存,重新编译,运行。
终端窗口里,滚过一行行编译和链接信息,没有报错。然后,程序开始迭代。一次,两次,十次……能量值快速收敛。最终,输出的基态能量与理论预测值在小数点后六位完全一致,计算得到的磁化曲线也与解析解完美吻合。
“成功了。”李叶轻轻呼出一口气,靠在椅背上,脸上露出一丝疲惫但满足的笑容。虽然只是一个最简单的模型,但这第一步的迈出,意义重大。它意味着,他已经初步掌握了使用这个强大工具的基本方法,为后续计算自己的模型,打下了第一块基石。
“搞定一个了?”旁边传来张海峰的声音,他不知何时摘下了耳机,凑过来看了一眼李叶的屏幕,“哟,可以啊叶子,ITensor都用上了?算的什么?横场Ising?能量对上了?”
“嗯,对上了。”李叶点点头,活动了一下有些僵硬的脖颈,“刚把最基本的流程跑通,后面还要算关联函数,测试不同尺寸和精度。”
“牛!”张海峰竖起大拇指,随即又苦着脸,“唉,看看你,再看看我。老板让我用QMC(量子蒙特卡洛)算一个二维三角格子上的阻挫模型,我调了三天参数了,还没搞定那个该死的‘负符号问题’,采样效率低得令人发指,估计又要熬夜了。”
QMC(量子蒙特卡洛)是研究量子多体问题的另一类重要数值方法,尤其适用于有限温度和非零化学势的情况,但在处理有阻挫或费米子的系统时,着名的“负符号问题”往往会导致计算效率急剧下降,甚至完全失效。张海峰的苦恼,是很多做量子蒙特卡洛模拟的研究生的共同噩梦。
“负符号问题确实麻烦,”李叶表示理解,“你们组里有没有什么新的算法或者技巧可以缓解?比如用辅助场或者固定节点方法?”
“试了,效果都不太理想。模型太复杂,参数空间又大,简直是大海捞针。”张海峰抓了抓头发,一脸生无可恋,“我感觉我老板就是扔给我一个地狱难度的副本,让我自己去开荒。算了,不跟你诉苦了,你继续你的张量网络高大上吧,我再去跟我的马尔可夫链死磕一会儿。”说着,又戴上耳机,重新投入与代码和数据的搏斗中。
李叶看着张海峰愁眉苦脸的背影,心里也有些感慨。数值计算这条路,无论采用哪种方法,都充满了艰辛。DMRG虽然在一维和准一维系统上优势明显,但也有其局限性,比如对二维及以上系统的计算成本会急剧上升,对某些具有长程纠缠的系统处理起来也很困难。没有一种方法是万能的,每一种工具都有其适用的范围和需要克服的挑战。
他关掉运行成功的终端窗口,打开一个新的文件。接下来,他要尝试计算这个横场Ising模型的激发谱。这涉及到更复杂的算法,比如利用DMRG计算转移矩阵或者直接计算低能激发态,是DMRG应用中另一个关键且具有挑战性的部分。他需要仔细研究ITensor文档中关于激发态计算的部分,理解其背后的算法原理(通常是基于Lanczos迭代或者DMRG的激发态算法),然后尝试实现。
他再次深吸一口气,将注意力集中到屏幕上。窗外,夜色渐深,校园里的灯光次第亮起,与天空中稀疏的星子交相辉映。宿舍里,只剩下键盘敲击声、鼠标点击声,以及偶尔响起的、轻微的叹息或恍然大悟的轻“啊”声。这些声音,是研一学生们在各自课题的深海中,奋力划水前行的声音,是代码与思想碰撞的声音,是青春与梦想在寂静夜晚燃烧的声音。
时间在专注中飞速流逝。当李叶终于初步理解了ITensor中计算低能激发态的基本函数调用,并成功对一个稍大系统进行了测试,得到与文献吻合的能隙和谱函数时,已经是深夜十一点多了。他感到太阳穴有些胀痛,眼睛也因为长时间盯着屏幕而干涩发酸,但精神却处于一种奇异的兴奋状态。那是解决问题、获得新知、感觉到自己在切实前进所带来的充实感。
他保存好所有代码和结果,关闭电脑。站起身,走到窗边,推开窗户。初春夜晚微凉而清新的空气涌进来,带着泥土和植物的气息,瞬间驱散了室内的沉闷。他做了几个深呼吸,望向窗外。校园里大部分灯光已经熄灭,只有主干道上的路灯还亮着,在静谧的夜色中投下长长的、孤独的光晕。远处,物理楼还有几个窗户亮着灯,那是不知哪位教授或学生,还在挑灯夜战。