有沒有可能通過程式語言在計算機上模擬微粒的性質(分子 原子等)?

時間 2021-05-08 19:18:32

1樓:plio

有的,我之前去金屬所摸魚的時候帶我的那個組就是用超算進行第一性原理模擬計算的,從原子層面研究材料性質

軟體的話可以搜一下vasp

2樓:Alex

當然可以。都已經搞了很多很多年了。三大微觀計算:蒙特卡洛、分子動力學、第一性原理。計算化學學科的人天天搞這個,畢業了對口的工作不多。

3樓:愛生活呀

以目前的人類知識水平,從理論上是不可能的。因為微觀粒子具有不確定性,它出現的位置和速度滿足一定的不確定性關係,無法被準確預言。也就是從理論上 ,人類永遠無法精確模擬或預言微觀粒子的運動。

4樓:煙之騎士蕾姆

早就有了,不過精度和計算量都不盡如人意,所以目前還是近似模擬為主。

話又說回來,什麼時候搞計算機的能設計出乙個方法準確模擬化學反應甚至生物大分子,偽化生就可以火起來了……

5樓:「已登出」

可以………

但是太慢了,而且雖然不涉及坍縮的量子過程可以模擬,但是很慢,而且坍縮原則上是不能用偽隨機數模擬的,甚至不能用熵池來模擬,因此要準確模擬量子過程只能用等價的其他量子過程,也就是說,某種量子計算機實現……

經典尺度上的模擬,要效能不要準確性的有眾多物理引擎,要準確性不要效能的,有眾多有限元和有限時域微分軟體(有限元是真的慢好麼)。

啊對了,射線追蹤也是光學模擬的乙個經典演算法呢。

但是化學………是量子的。

6樓:地鐵風

當然可以了,而且有些是很重要的分支。

比如我以前做的 lattice qcd,你可以把它理解成計算機模擬夸克和膠子。這個分支的重要性在於 QCD 這個玩意你基本沒法手算……

和其他一些計算分支(比如分子動力學)不同的是,lattice qcd 是第一性的,不依賴任何模型,計算的基本假設是時空本身和 QCD 的基本對稱性。

我記得有個教程叫 Lattice QCD for Pedestrians,教你用很簡單的 Python 算 lattice qcd,你可以玩玩。

7樓:見無所見

你這個問題我也曾經想過,要是某天真的可以模擬出來化學原素週期表中的所有元素,那麼人類將在計算機內創造乙個世界,在電腦裡合成細胞,有機物,至到可以合成動物,植物甚至世間萬物,對於計算機的世界,人類就像上帝一樣存在。如或者,可能我們就是活在乙個這樣的世界裡。

8樓:XZiar

可以,並且早就存在了。

比如OpenMM

Folding@home的大部分專案應該就是用OpenMM的庫做的,通過大概是分子層面的作用力的模擬,進行蛋白質摺疊的計算。

不過倒不是說「計算機內有個虛擬的容器」,而是建模過程中規定乙個虛擬的容器與一定數量的粒子,根據一定地規則去更新粒子的狀態/位置等,從而在巨集觀層面上表現為他們發生了反應。

最直觀的做法應該就是根據各個粒子的屬性,計算相互之間的作用力吧……或者你的意思是,直接準備一系列粒子,然後根據他們的狀態直接列舉出可「反應」的粒子,直接反應?我物理不好,但感覺這種模擬精度很差,非常依賴現有規則,可能意義不大?

9樓:armchannel

CERN的GEANT(GEometry ANd Tracking)就是在粒子層面做模擬的,在加速器模擬、高能物理模擬、核醫學上都有很多應用。

原來是用fortran寫的,後來CERN的大佬們為了學習一下c++,就用c++又實現了一遍(吐槽一下還在用fortran的前師兄師姐們)。

使用GEANT需要一些c++基礎,因為它提供的是一些型別庫,可以像題主說的那樣定義自己的容器,在容器中放置一些材料,然後用事件驅動反應發生,例如發射若干個質子。

10樓:shake

第一性原理、沈呂九方程;有限元分析.......了解一下。軟體方面,開源的pwscf,windows上的material studio了解一下

11樓:小侯飛氘

實際上,用程式模擬物理過程來進行科學研究,在很長一段時間裡都是計算機的主要用途。

二戰期間,計算機之父馮·諾伊曼曾參與了曼哈頓計畫,利用計算機產生的偽隨機數,來模擬核反應過程種微觀粒子的隨機行走。這類演算法在後來被稱為蒙特卡洛方法,至今依然是計算物理學界的重要工具之一。另外,很多日常生活中用到的程式設計工具,例如html語言,也是由物理學家為了方便科研發明出來的。

誇張一點說,科學研究才是計算機的原配,現在的繁榮的網路世界都只是科研的副產物。(不過話說回來,科研的目的不就是為了得到這些好用的副產物麼......)

偏題了......題主提到的通過程式語言在計算機上模擬微觀顆粒的性質,這一點是完全可行的。為了實現這個目的,科學家發明了數不清的方法和軟體。

大致的,我們可以按模擬尺度來給它們分類:

橫座標:模擬的空間特徵尺度。縱座標:應用的學科領域

除去高能物理領域,一般計算模擬涉及的最小模擬單元是電子,尺度大約在埃公尺( )級別。這類模擬一般以量子力學中的薛丁格方程為理論基礎。用波函式完備的描述粒子的各種物理性質,不需要進行額外的假設和近似。

也就是說,我們只要輸入公式和初始條件,理論上可以準確的算出物質的所有性質。這類無需經驗假設和近似計算方法,通常稱為第一性原理方法,或者從頭算方法。

第一性原理方法由於不帶人為的假設,因此精度上是最準確的一種模擬方法。然而,魚與熊掌往往是不可兼得的。求解薛丁格方程的計算量隨粒子個數指數增長,氫原子(只含乙個電子)的波函式找個物理系的本科生花幾分鐘就能手動算出來,然而換成鐵原子的話(含26個電子),算到滿頭白髮你也未必能算完百分之一。

即使用上高效能計算機和一些合理的近似,第一性原理方法往往也只能處理很小的(通常不到1000個原子)體系,因此應用上受到了一定限制。

為了模擬奈米尺度的物理問題,我們不得不在精度上做出妥協,去使用一些更為粗糙的方法。在這個尺度上,常用的一種方法稱為經驗勢方法(例如經典分子動力學、經典分子靜力學、經典蒙特卡洛)。在經驗勢函方法中,我們並不在模擬中直接通過量子力學直接求解原子-原子間的相互作用,而是先做一系列的測試擬合(可以理解為一種人工智慧訓練),把這些相互作用擬合成乙個現成的函式,實際的模擬過程中僅僅呼叫這個函式而已。

由於原子-原子間的相互作用是擬合出來的,並不能100%的還原真實作用。因此,經驗勢函式方法在精度上一般不如第一性原理方法。不過這樣做的好處是讓我們可以用經典力學描述原子的運動了,模擬的計算量也就大大降低。

利用這類方法,我們最多能模擬上億原子(接近微公尺尺度)的物理問題。

然而很多時候我們需要研究微公尺級尺度以上的微觀結構,這時候經驗勢方法也不能夠滿足我們了。為了提高模擬的尺度,我們往往會加入更多的粗粒化近似假設,例如把氨基酸或者鹼基設為最小模擬單元來模擬細胞生理學、把輻照缺陷團簇看作乙個整體來模擬核輻照損傷,把隨機分布的溶質原子看成乙個平均場、把材料分割成乙個個連續有限的小單元等等。這類模擬方法繁多,就不一一枚舉了。

以上部分可以用一句話概括:精度越高,計算量越大,能模擬的尺度也就越小,魚與熊掌不可兼得。

可有時候,我就是又想吃魚,又想要熊掌,怎麼辦?(你咋就這麼多事呢)

沒辦法,我們對技術總是貪婪的。應這類」既要尺度,又要精度「的需求,有人就想,我們為什麼不能把幾種模擬方法結合一下呢?

左:遠離裂紋的部分用塑性方程模擬。中:裂紋附近的原子用經驗勢方法模擬。右:裂紋尖端的原子用的第一性原理模擬。

以金屬材料中的裂紋擴充套件為例,如上圖,裂紋尖端處的原子會不斷的從金屬中暴露出來,化學環境發生變化。因此,這部分原子我們給予vip待遇,用第一性原理去描述。

而裂紋附近的原子僅僅會在應力集中下出現一些原子錯位而已,任然大致保持著塊體的化學環境,因此我們用經驗勢方法就能很好的描述了。

而遠離裂紋的那些原子,甚至連原子錯位都不多,僅僅在應力作用下發生輕微的變形而已,我們用連續的塑性方程就能描述。

嗒嗒嗒噠噠,沒錯,就靠這麼乙個類似小點子,三個物理學家成功斬獲了2023年的諾貝爾化學獎。(說的好像很容易的樣子,有本事你拿乙個啊)

計算機或者說人工智慧有沒有可能學會欺騙

Lain 1,人工智慧是在盡可能模擬人類大腦的運作方式 2,人類至今並不能證明人的思維是超過神經網路運作的,除了有些人和宗教自己yy的 3,相同機制執行下,人工智慧的運算能力協同能力等等很快就會遠超人類 4,人工智慧的運算在輸入輸出之間有很大一段是黑箱,不可知不可控。理論上人工智慧是一定能超過人類的...

沒有計算機,程式設計基礎的人大學專業選計算機工程,學起來會很難嗎?

不會很難的。計算機對於數理的要求不是很多,高中數學學好了基本都夠用了。程式設計對於中國學生困難在於,真的要 動手 它更像是以前的木匠,鐵匠,說書藝人,需要在實戰中積累很多經驗,才能把基礎弄堅固,後面才好有發展。別把它看成一門課,要把它當一門手藝來學。建議你越早接觸寫程式越好。 不會。對於多數人來說,...

如何想自學計算機程式設計,有什麼程式語言的意見?

雲鶴 想學程式設計,你要知道你學程式設計是來幹嘛的,並且你需要對計算機程式設計術語有基本的了解。對任何一種程式語言有基本的了解將有助於您理解程式設計概念,並有助於加快您的學習進度。Python語言語法簡潔易學,用途廣泛,可移植性強,底層是用 C 語言寫的,很多標準庫和第三方庫也都是用 C 寫的,執行...