天天看點

lammps模拟“lost atoms”原子原因及解決方法

lammps模拟過程中,最怕的是模拟過程中出錯,其中,比較常見的一個錯誤是“lost atoms”,也就是常說的原子丢失。

正常情況下,分子動力學模拟要保證原子數目保持不變。

nve、nvt、npt系綜中的“n”就是原子數目,這些系綜已經明确了模拟過程中要保證原子數目“n”不變,原子數目減少則會中止模拟,并給出“lost atoms”錯誤提示。

“lost atoms”錯誤出現的最主要的原因是某些原子在積分過程中求解得到的速度過大,根據該速度計算出的下一步位移過大,已經超出了體系盒子的範圍,換句話說,速度過快的原子已經跑出了盒子,造成“lost atoms”。

導緻原子速度過快的原因有以下幾個方面:

(1)模型設定不合理

一般出現在多原子模組化中,比如一層石墨烯原子插入到Al原子之間,由于模組化時石墨烯C原子位置設定不合理,導緻與Al原子重疊。

lammps模拟“lost atoms”原子原因及解決方法

在進行積分時,位置重疊或者距離過近的原子之間的排斥力過大,是以原子獲得的速度過大,容易飛出box。

解決方法:

模組化時注意原子排列位置,甯可離的稍遠一些,也不要靠的過近。

模組化之後使用minimize指令對體系進行能量最小化,minimize指令不用設定力場,是拓撲結構上對體系進行最小化,能夠解決大部分的原子重疊問題。

(2)邊界條件設定不合理

如果模組化過程沒有問題,也沒出現明顯的原子重疊現象,考慮一下是否是邊界條件原因。

例如,邊界條件為固定f條件,由于模組化原因,模型的初始内應力又比較大,正常弛豫下,盒子應該會擴大以釋放掉内應力進而達到系統平衡,而固定邊界條件又不允許盒子尺寸發生變化,此時,邊界上的原子會被擠出盒子,造成原子丢失。

lammps模拟“lost atoms”原子原因及解決方法

解決方法:

将邊界條件改為s,檢視馳豫結果,如果盒子隻是稍微擴大,沒有出現盒子爆炸性的擴大,基本上屬于這種問題,将初始盒子尺寸擴大可以解決此類問題。

(3)力場設定不合理

如果是發生了盒子“爆炸”,原子完全散開,單純的擴大盒子尺寸沒有意義,需要考慮力場設定是否合理。

力場描述原子之間的受力情況,如果力場設定不合理,可能會出現原子之間受力計算錯誤,原子之間的力遠超正常值,也會造成原子丢失。

解決方法:更換力場。

(4)模拟步長設定不合理

當以上原因都排除後,如果還是存在“lost atoms”,考慮是否是timestep設定過大,設定更小的步長試試。

當出現丢失原子錯誤提示時,添加thermo_modify lost ignore 指令可以關掉錯誤提示,使程式能夠運作下去。

但是,不建議這麼做,這個指令僅僅是強制程式繼續運作,不能解決原子丢失問題,程式“帶病”運作,有可能會得到不正确的運作結果。

更多lammps教程請關注微信公衆号:lammps加油站

繼續閱讀