當MD與LabVIEW結合會發生什麼?好新奇!
首先多謝大家的支持,我們已經成功拿到公眾號原創標啦,以後大家就可以直接在推文下面留言或者評論啦~我們公眾號名字起名玩玩分子動力學嘛,初衷就是邊玩邊學。一直以來也沒怎麼玩,今天就帶大家玩一個有意思的:用LabVIEW來寫一個MD程序,實現模擬過程中的實時可視化。先把最終效果拿出來一睹為快,程序打開後我們只需要設置幾個基本參數,點擊運行就可以直接運行,實時可視化。
我本科自學了LabVIEW。沒錯,為了畢設,我本科畢設題目是「基於LabVIEW的火箭發動機推理壓力測試系統設計」。沒想到這一學不要緊,給我打開了新世界的大門:圖形化編程語言LabVIEW。越學越覺得好玩簡直停不下來,順便還賺了點生活費點綴自己的生活,估計以後也是終生放不下的摯愛了。在三年前我就想用LabVIEW去寫人工智慧方面的程序。
後來在看《超能查派》的時候,給人工智慧機器人重寫的程序竟然也是用類似LabVIEW的G語言。在一年前接觸到MD時候就想把他們倆結合一下,用LabVIEW去寫分子動力學方面的程序,畢竟MD軟體都需要對數據進行單獨的可視化。今天終於實現了第一步。LabVIEW語言有強大的可視化功能,不論是代碼還是界面都是可視化的。請在下面的MD程序具體實現中慢慢體會!目前這個程序是最簡單的硬核勢,以後還會完善各種勢函數,自定義dump,compute,fix等等,我想直接寫一個LAMMPS的LabVIEW版本(其實沒空,哈哈~有興趣的可以找我一起寫)。
還記得我們之前一篇推文「從撞球桌開始認識分子動力學」嗎?那裡面我們用Python寫了一個具有硬核勢函數的MD程序,這次就用LabVIEW去實現這個程序。下面詳細介紹如何一步步編程出基於LabVIEW的MD程序。準備工作:下載並安裝LabVIEW軟體官方下載器鏈接:http://pan.baidu.com/s/1o8E2ahW密碼:8828安裝好以後桌面圖標如下:
第1步:初始化!首先做一個前面板。我們輸入X方向晶格數,Y方向晶格數和晶格大小dx後,就可以得到一個原子序列數組,原子總數N,X和Y方向的邊界Xmax和Ymax。這個原子序列直接用XY控制項顯示出來!前面板如圖:
接下來講代碼部分。一個ATOM用包含X,Y,VX,VY四個信息的簇表示:
通過兩個嵌套的For循環來產生一個二維點陣,其中速度用隨機數產生:
最後把坐標信息提取出來通過XY控制項直接顯示出來!相當棒的實時可視化!
現在我們已經完成了初始化原子位置和速度的模塊,整體代碼如下圖:
我們把它打包成一個子VI(即子程序,LabVIEW程序後綴是*.vi),並起名INIT POSI,大量代碼就簡化為下面的一個綠色小方框加輸入和輸出,Lx和Ly分別為X和Y方向的邊界最大值,然後把該值設定為模擬盒子邊界,初始化代碼最終如下
第2步:動起來!現在初始的位置和速度都有了,現在就讓他們動起來。原理很簡單:X = X + V*dt我們要做的是把原子的速度不變,位置更新,dt是每一步的時間步長,代碼如下:
完成後我們把它打包成子VI,並起名為MOVE,代碼簡化為下面的一點點:
第3步:碰撞吧!現在原子已經開始運動了,因為我們是硬核勢,所以不用計算原子間作用力,兩原子相遇後直接進行彈性碰撞!(以後用LJ勢或者DPD模擬會先計算力,再通過加速度計算速度。)順便說一下,兩個小球彈性碰撞的速度公式是通過一個能量守恆和一個動量守恆方程推導出來的,高中知識在此就不推導啦。
LabVIEW可以使用公式節點,在遇到複雜的公式的時候非常方便。如下圖原子碰撞代碼,左端為輸入,右端為輸出。考慮任意兩個原子atom1和atom2,輸入有兩個原子的原子間距r,dx和dy是x和y方向的位置差,即dx=x1-x2。
第4步,前面板!
當然,除此之外還需要考慮任意兩個原子是否接觸,是否觸碰到邊界等細節。完整代碼的部分截圖如下。
完成代碼編輯後我們完善一下前面板,最終效果如下:(感興趣的同學需要源代碼的可以找我要,我就不公開放鏈接啦,萬一閑了想寫個小論文什麼的^_^)
長期更新好玩的科研文章~


TAG:玩玩分子動力學 |
※如果 Nike 和 Balenciaga 結合會是什麼樣?
※OPPO R15全新配色,紅藍結合會是一種什麼樣的CP啊?
※《GTA5》與《蟻人2》相結合會發生什麼樣的碰撞!
※區塊鏈與遊戲結合會發生什麼反應?
※當繪畫與多媒體結合會出現怎麼樣的效果?
※男人幫與《嚮往的生活》相遇了,史上最強結合會怎樣?
※區塊鏈和物聯網到底是什麼關係?他們結合會顛覆未來嗎?
※當古玩和文玩結合會咋樣?有點意思!
※皮卡丘和小丑女結合會怎樣?會誕生出皮卡女神,那和綠巨人結合呢
※雲計算和人工智慧結合會帶來什麼影響
※於曉光火了!「秋於夫婦」的結合會對韓國的婚姻觀造成什麼改變?
※人工智慧與合成生物分子相結合會創造新的百年繁榮商機嗎?
※最爛的機槍和最爛的步槍,相結合會發生什麼?法國人的腦洞之作
※猩猩與人類基因相似度99%,二者結合會怎樣?結果令人意外
※當死侍與小丑女結合會怎樣?瞬間顏值爆表,8個英雄結合的更厲害
※東方古典與西方歐式的結合會有什麼樣的效果!
※冬奧會即將開幕,跑步高手們和冬季項目結合會是什麼效果
※鋼鐵俠和美國隊長結合會是什麼樣子?當然是鋼鐵愛國者啦!
※狗和熊的結合會是什麼樣子?來看看來自俄羅斯的這個新物種
※荷蘭弟:想和奇異博士組隊 魔法和科學結合會很有趣