“但地球上的观察者看到飞船上的时钟变慢,飞船返回时,又看到地球上的时钟变快,这个‘看见’和‘实际经历’的关系怎么统一?”许源追问,同时不动声色地将自己保温杯里还温热的枸杞茶倒了一小半到徐嘉庆的水杯盖里,推过去。
徐嘉庆的视线在那杯冒着热气的茶水上停顿了半秒,然后很自然地端起喝了一口,才继续在时空图上画出几条光锥线,解释着信号的传播路径如何影响观测结果。
“‘看见’不是同时的测量,要考虑到光信号从异地事件传播到观察者眼睛的时间延迟。用世界线和光锥线可以清晰地展示这一点……” 他一边讲,一边用笔在图上比划,逻辑严谨,条理清晰,只是偶尔会抬手揉一下眉心。
许源认真听着,不时点头,或提出新的疑问。他们低声讨论着,用最简单的图示和语言,试图厘清这个著名的思想实验。直到教室里人几乎走光,肚子开始抗议,才意犹未尽地收拾东西。徐嘉庆很自然地将许源倒给他的那杯茶水喝完,然后将两人的水杯一起收进书包。许源看着他动作,嘴角微微上扬。
下午,是《计算物理》的“偏微分方程数值解”上机实践,主题是“二维热传导方程的有限差分法求解”。
这次的任务是模拟一个方形区域(如一块金属板)在边界条件给定情况下的温度演化,并可视化等温线和温度场分布。编程难度和计算量都很大。
许源和徐嘉庆坐在相邻的电脑前,各自搭建算法框架。或许是上午的“双生子佯谬”讨论耗费了不少脑力,又或许是午后容易困倦,徐嘉庆在编写核心差分循环时,犯了一个小错误,导致程序运行时出现了数组索引溢出的报错。他盯着报错信息,眉头紧锁,反复检查代码,一时没找出问题所在。
“这里,”许源探过身,指着屏幕上他循环体的边界条件判断语句,“i 和 j 的循环上限,你是不是直接用 N 了?应该 N-1,因为数组下标从0开始。”
徐嘉庆愣了一下,随即恍然,脸上掠过一丝极淡的懊恼,低声道:“……是,疏忽了。” 他迅速修改了代码,报错消失。
许源看着他微抿的唇角,知道他在为这点小失误跟自己较劲,便没再说什么,只是将自己手边一包未开封的杏仁巧克力推了过去,然后若无其事地继续自己的编程。
徐嘉庆看着那包巧克力,沉默了两秒,撕开包装,拿了一颗放进嘴里,然后将剩下的推回给许源。许源也拿了一颗,甜味在舌尖化开,混合着机房里主机散热的风扇声和暖气,带来一种奇异的、温暖的踏实感。
调试过程依然漫长,但他们配合默契。当最终的程序成功运行,屏幕上显示出清晰的温度场演化动画时,窗外天色已暗,细碎的雪花又开始飘落。
离开机房,走在覆了一层薄雪的校园里,寒风凛冽。徐嘉庆似乎还没完全从代码的世界里抽离,走路有些心不在焉,差点踩到一块松动的砖块。许源眼疾手快地拉住他的胳膊:“看路。”
徐嘉庆身体微微一僵,随即放松,借着许源的力道站稳,低声道:“谢谢。”
“想什么呢?还在想边界条件?” 许源松开手,很自然地走在他外侧,挡住些寒风。
“嗯。还有并行化的效率问题。” 徐嘉庆老实承认,但脚步放慢了些,与许源并肩。
“回去再琢磨,先吃饭,饿死了。” 许源说,语气带着点夸张的抱怨。
“好。” 徐嘉庆应道,紧了紧围巾,跟着许源向灯火通明的食堂走去。雪地里,留下两串挨得很近的脚印。
晚上,是各自的自习时间。但许源回到宿舍后,没立刻开始学习,而是先给徐嘉庆发了条信息:“晚上别熬太晚。代码的事明天再说。”
过了一会儿,徐嘉庆回复:“嗯。你也早点。”
十点多,许源完成当天的学习任务,关掉台灯,走到窗边。雪还在下,路灯下的雪花安静地飞舞。他拍了一张雪夜的照片,发给了徐嘉庆。这一次,他加了一句话:“早点睡,明天还要叫你。”
这次,徐嘉庆很快回复了,也是一张从他们宿舍窗户看出去的雪景,角度略有不同,构图却意外地和谐。下面跟着一行字:“知道了。不用叫,我自己能起。”
许源看着那句话,几乎能想象出他说这话时略带倔强、却又没什么底气的样子。他笑了笑,没再回复,只是将两张照片一起保存了下来。
窗外,雪落无声,清华园的冬夜静谧而温柔,包裹着两个在各自灯下、为梦想和未来默默努力的年轻人,也包裹着他们之间那些无需言说、却已融入日常点滴的、温暖的牵绊。