第239章 毋庸置疑,诺贝尔化学奖,是我们的了(1 / 3)

投票推荐 加入书签 留言反馈

  肖宿没察觉许铭的崩溃,他把笔记本电脑转过来,打开了一个新的代码窗口。
  手指快速在键盘上飞舞。
  许铭站在旁边目瞪口呆的看著。
  他不是第一次看肖宿写代码,但之前他是旁观者,而这次,他手里攥著的是自己三个多月的心血。
  看著肖宿一行一行地把它重构掉,这种感觉复杂极了。
  有被碾压的挫败,也有一种奇怪的安心。
  就像一个在森林里迷路了很久的人,忽然听见头顶传来了直升机的声音。
  肖宿的动作很快,几乎没有停顿。
  他先重写了电子密度分布的初始化函数,原来的代码是读取原子坐標后直接构造距离矩阵,他改成先调用一个基组库,用最小基组做一个近似的初始电子密度估计。
  然后他开始写辛流形构造的部分,这是整个几何映射的核心。
  许铭看到肖宿定义了一个叫electron density manifold的类,里面有十几个成员函数,其中最关键的是一个叫find saddle points的函数,输入的是电子密度分布,输出的是一组鞍点的位置和类型。
  “电子密度的鞍点连起来,就是拉格朗日子流形的骨架。”
  肖宿说这句话的时候手没停,“你们原来用原子核坐標直接构造流形,相当於跳过了找鞍点这一步。”
  101看书101??????.??????全手打无错站
  这就像你要画一条山脉的轮廓,可是你不画山峰和山谷,直接就画了一个圈,两者根本不一样。
  许铭盯著屏幕上那行find saddle points的实现。
  算法逻辑比他预想的简洁,核心是一个基於梯度下降的鞍点搜索,加上一个去重和分类的后处理,大约只有六十行代码。
  他们之前花了两周时间写的辛流形构造代码,就这样,被这六十行替掉了。
  接著是群表示分解模块,肖宿没有大改原来的代码结构,而是在入口处加了一个適配器函数,函数名是select symmetry group,输入分子类型,输出对应的点群。
  “水分子,c2v氨,c3v甲烷,td苯,d6h,”他一边写一边说,“常用分子的点群是已知的,可以直接查表,遇到新分子后,根据原子坐標自动判断点群的算法也不复杂,后面可以再加。”
  適配器函数的最后一行,是根据点群选择对应的不可约表示分解算法。
  原来的su(2)分解代码被保留了下来,但放到了一个分支里。
  肖宿打完最后一行,把笔记本电脑转回给许铭。
  “可以了。”
  许铭呆呆的接过电脑,整个人都还没缓过劲来。
  屏幕上那些简洁到近乎优雅的代码安安静静地躺著,每一行的功能都清晰可辨。
  就这么解决了!?
  他们绞尽脑计都毫无办法的难题,就这么轻鬆的解决了?
  在这一刻,他甚至有点怀疑自己的智商。
  那他们实验室,努力的三个月算什么!? ↑返回顶部↑

章节目录