python物理引擎模拟三体_一个物理引擎能不能模拟少量粒子之间的力?
就像有人已經回答過的一樣,這個問題和分子動力學(MD)以及等離子體里面靜電場的模擬很像,只不過考慮的粒子間相互作用是萬有引力的形式。
對于MD來說,別說幾個了,就是幾萬個粒子都不成問題。對于等離子體來說也是類似的。
你提到的時間不知道是指什么時間,如果是指模擬的時間尺度的話,如果采用類似MD的模擬算法的話,對于MD來說一般大體系,比如上萬個原子可以模擬到幾個到幾百個ns,步長對應的是fs ~ ps,對應的可能是
~
time steps,這些都是在超算上的表現。不過一般MD里面都是短程力,而萬有引力是長程力,需要更大的截斷,所以對應的實際表現會差一些。如果采用類似等離子里面的Particle in cell (PIC)的算法的話,性能表現可能會更好一些,不過我沒做過這方面工作所以不好評論。如果是指給定了時間尺度,具體的機器運算時間的話,就很難估計了,因為這和算法、代碼實現、機器結構都有關系。
不過不管哪種情況,就我感覺而言,100個物體的模擬應該是非常簡單和非常迅速的。
能夠模擬的數量上限取決于很多因素,比如你的存儲空間是不是夠放下所有參與運算的粒子的信息、具體的代碼實現以及你需要模擬的時間尺度。能夠模擬的時間上限一方面受到物理系統本身的限制。這種N-body system with nonlinearity,一般都是混沌系統,高度初值敏感,如果你的系統混沌性不高、Lyapunov指數比較小的話,模擬的時間可以比較長,比如系統里粒子質量差別很大這種情況;如果系統高度混沌、Lyapunov指數很大,那一般有意義的模擬時間就不會很長。除此以外,在算法實現的層面上,如果你用的運動方程積分是低精度、低次積分的算法,那么就需要很小的time step,指定時間長度的情況下往往算的次數多,但是每次運算時間短;如果運動方程積分是高精度、高次積分的算法,那么time step可以大一些,指定時間長度的情況下算的次數少,但是每次運算時間長。除了積分算法,模擬方法里的參數也有影響,如果是直接模擬、類似MD,那么截斷距離越大、每個粒子需要考慮的相互作用越多、運算時間越長;如果是間接模擬、類似PIC的算法,那么計算標量勢場的空間網格的劃分精度越高、運算時間越長。
我只做過一些簡單的引力系統模擬,有些內容可能不是很準確,僅供參考。
總結
以上是生活随笔為你收集整理的python物理引擎模拟三体_一个物理引擎能不能模拟少量粒子之间的力?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: P1422 小玉家的电费--2022.0
- 下一篇: websocket python爬虫_p