韋爾萊算法是一種用於求解牛頓運動方程的數值方法,被廣泛應用於分子動力學模擬以及視頻遊戲中。韋爾萊算法的優點在於:數值穩定性比簡單的歐拉方法高很多,並保持了物理系統中的時間可逆性與相空間體積元體積守恆的性質。
Carl Størmer首次應用韋爾萊算法求解磁場中運動粒子的軌跡,因此韋爾萊算法又被稱為Størmer算法。1967年法國物理學家Loup Verlet將其應用於分子動力學計算,從此韋爾萊算法流行起來。
基本韋爾萊算法
牛頓運動方程為
代入到粒子的坐標關於時間步的Taylor展式中
得
同理
兩式相加,得
則
新位置的計算誤差為四階, 為時間步。因為韋爾萊算法中不涉及速度,如果希望得到速度,須從軌線中推導速度表達式:
速度表示的韋爾萊算法
一般地,速度表示下的韋爾萊算法更為常用,它可以給出同一時間變量下的速度和位置。它實際上與基本的韋爾萊算法等價,精度相同。
首先對位置進行 Taylor 展開
對兩式相減可得
將最初的 Verlet 公式中的 換為 ,
代入前式,可得
此式即為速度表示的韋爾萊算法。實際常用的計算步驟為,
1.首先通過 Taylor 展開 計算得到位置
2.由 和系統的相互作用勢條件(如果相互作用僅依賴位置 )可以求的力場
3.由速度表示的韋爾萊公式求出新的速度 。
參考文獻
- Daan Frenkel. 第四章. "Understanding Molecular Simulation - From Algorithms to Applications" Academic Press. 2002.