第239章 毋庸置疑,諾貝爾化學獎,是我們的了

投票推薦 加入書籤 小說報錯

  肖宿沒察覺許銘的崩潰,他把筆記本電腦轉過來,打開了一個新的代碼窗口。

  手指快速在鍵盤上飛舞。

  許銘站在旁邊目瞪口呆的看著。

  他不是第一次看肖宿寫代碼,但之前他是旁觀者,而這次,他手裡攥著的是自己三個多月的心血。

  看著肖宿一行一行地把它重構掉,這種感覺複雜極了。

  有被碾壓的挫敗,也有一種奇怪的安心。

  就像一個在森林裡迷路了很久的人,忽然聽見頭頂傳來了直升機的聲音。

  肖宿的動作很快,幾乎沒有停頓。

  他先重寫了電子密度分布的初始化函數,原來的代碼是讀取原子坐標後直接構造距離矩陣,他改成先調用一個基組庫,用最小基組做一個近似的初始電子密度估計。

  然後他開始寫辛流形構造的部分,這是整個幾何映射的核心。

  許銘看到肖宿定義了一個叫Electron Density Manifold的類,裡面有十幾個成員函數,其中最關鍵的是一個叫find Saddle Points的函數,輸入的是電子密度分布,輸出的是一組鞍點的位置和類型。

  「電子密度的鞍點連起來,就是拉格朗日子流形的骨架。」

  肖宿說這句話的時候手沒停,「你們原來用原子核坐標直接構造流形,相當於跳過了找鞍點這一步。」

  這就像你要畫一條山脈的輪廓,可是你不畫山峰和山谷,直接就畫了一個圈,兩者根本不一樣。

  許銘盯著屏幕上那行find Saddle Points的實現。

  算法邏輯比他預想的簡潔,核心是一個基於梯度下降的鞍點搜索,加上一個去重和分類的後處理,大約只有六十行代碼。

  他們之前花了兩周時間寫的辛流形構造代碼,就這樣,被這六十行替掉了。

  接著是群表示分解模塊,肖宿沒有大改原來的代碼結構,而是在入口處加了一個適配器函數,函數名是select Symmetry Group,輸入分子類型,輸出對應的點群。

  「水分子,C2v氨,C3v甲烷,Td苯,D6h,」他一邊寫一邊說,「常用分子的點群是已知的,可以直接查表,遇到新分子後,根據原子坐標自動判斷點群的算法也不複雜,後面可以再加。」

  適配器函數的最後一行,是根據點群選擇對應的不可約表示分解算法。

  原來的SU(2)分解代碼被保留了下來,但放到了一個分支里。

  肖宿打完最後一行,把筆記本電腦轉回給許銘。

  「可以了。」

  許銘呆呆的接過電腦,整個人都還沒緩過勁來。

  屏幕上那些簡潔到近乎優雅的代碼安安靜靜地躺著,每一行的功能都清晰可辨。

  就這麼解決了!?

  他們絞盡腦計都毫無辦法的難題,就這麼輕鬆的解決了?

  在這一刻,他甚至有點懷疑自己的智商。

  那他們實驗室,努力的三個月算什麼!?

  他直愣愣的站了許久,直到肖宿用奇怪的眼神看了看他,他才長嘆了口氣,振作了起來。

  「我現在就回去跑。」

  許銘把筆記本合上,站起來,很認真的看著肖宿道:「肖宿。」

  「嗯?」

  「謝謝你。」

  肖宿看了他一眼,輕描淡寫的點了點頭,又回到了自己電腦屏幕上。

  十幾分鐘而已,肖宿對熟悉的人總還是比較慷慨的。

  ……

  許銘回到實驗室的時候,萬匯楊和方清還在等他。

  看到許銘進來,兩人幾乎是彈起來的。

  「拿到了?」

  許銘把筆記本電腦打開,調出了肖宿寫的代碼。

  兩個人湊近,一左一右站在許銘身後。

  屏幕上,肖宿寫了四行注釋安安靜靜地立在文件頭部。

  方清的目光從第一行掃到第四行,然後停住了。

  「電子密度分布。」


  他念出這幾個字,聲音有點乾澀,「我們第一步算的是原子核坐標。」

  許銘點頭。

  「三個多月,我們從第一步就錯了。」

  萬匯楊把肖宿的代碼從頭到尾看了一遍,看到辛流形構造部分的時候,手指在屏幕前虛虛地點了一下。

  「find Saddle Points。」

  他念出這個函數名,然後轉過頭看著許銘和方清,「肖宿在論文裡寫過:電子密度的鞍點構成了拉格朗日子流形的骨架。

  但我怎麼也沒意識到這句話是實現的鑰匙。」

  「把VASP的測試數據準備好,用同一組分子體系,同樣的計算精度要求,跑一遍對比測試。」

  「好。」

  方清很快把測試環境搭好了。

  三台工作站並排運行,左邊跑VASP,右邊跑他們之前的舊框架,中間準備用來跑肖宿的新算法。

  測試體系選的是十種常見分子:水、甲烷、苯、氨、甲醛、乙烯、乙炔、二氧化碳、甲醇、乙醇。

  計算目標統一設定為基態電子結構,精度要求取化學精度。

  「開始吧。」

  許銘把肖宿的代碼導入中間那台工作站,點擊運行。

  屏幕上的進度條開始快速移動起來。

  第一個水分子實驗,VASP用時四十七秒,舊框架用時三十二秒但結果偏差較大,而肖宿的新算法用時九秒,結果和實驗值偏差低於零點零三電子伏特。

  三個人互相看看,都能從對方的眼中看到震驚。

  接下來是甲烷,VASP用時一分零三秒,肖宿的新算法用時十四秒,偏差低於零點零二電子伏特。

  再接著是苯,這是最有挑戰性的一個。

  苯環的共軛π電子體系是DFT的傳統軟肋,VASP跑苯的基態電子結構需要兩分四十秒,而且結果和實驗值有大約零點二電子伏特的系統偏差。

  而用肖宿的新算法跑苯,只用了三十一秒,結果和實驗值的偏差還低於零點零一五電子伏特。

  方清的手都有些顫抖了。

  剩下的七個分子一個接一個跑完,每跑完一個,方清就在旁邊的白板上記錄下用時、偏差、和VASP的對比。

  寫完最後一個乙醇分子,儘管三人都有心理準備,可還是被驚到了。

  十種分子,肖宿新算法的平均用時是VASP的四分之一不到,平均精度偏差是VASP的五分之一以下,算力消耗平均不到VASP的三分之一。

  而且這還不是終點。

  肖宿在代碼里留了大量可以進一步優化的空間。

  他給的是一個框架,一個方向,沿著這個方向往下走,性能還能再提升。

  「這已經不是比VASP強了。」

  萬匯楊的聲音有些沙啞,「這是重新定義了計算化學的底層邏輯啊。」

  三個人站在白板前,看著上面那組數據,很久都沒有說話。

  誰都沒法想像,這個實驗數據公布之後,化學界將會迎來多麼可怕的震動。

  「我想,」萬匯楊轉過身,看著許銘和方清,臉上的疲憊一掃而空,「毋庸置疑,諾貝爾化學獎,是我們的了。」

章節目錄