Quantum Monte Carlo: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Annullata la modifica 11907828 di 130.192.148.161 (discussione)
SMUELO (discussione | contributi)
Funzionalità collegamenti suggeriti: 3 collegamenti inseriti.
 
(27 versioni intermedie di 18 utenti non mostrate)
Riga 1:
LaIl '''quantisticaquantum''' '''Monte Carlo''' (QMC) consiste in una grande famiglia di [[algoritmo|algoritmi]] sfruttati per [[simulazione|simulazioni]] di sistemi [[meccanica quantistica|quantistichequantistici]] nei campi di studio della [[fisica della materia condensata]] e della [[chimica computazionale]]. Questi algoritmi, pur differenziandosi tra loro per il diverso approccio quantomeccanico che possono sfruttare, si basano tutti sul [[metodo Monte Carlo]] per la risoluzione dei moltidegli [[integrale|integrali]] multidimensionali implicati.
{{voce complessa|Metodo Monte Carlo|Meccanica quantistica|Equazione di Schrödinger|Metodo variazionale (meccanica quantistica)}}
La '''quantistica Monte Carlo''' consiste in una grande famiglia di [[algoritmo|algoritmi]] sfruttati per [[simulazione|simulazioni]] [[meccanica quantistica|quantistiche]] di [[chimica computazionale]]. Questi algoritmi, pur differenziandosi tra loro per il diverso approccio quantomeccanico che possono sfruttare, si basano tutti sul [[metodo Monte Carlo]] per la risoluzione dei molti [[integrale|integrali]] implicati.
 
LaI quantisticaquantum Monte Carlo permette una rappresentazione diretta degli effetti delle repulsioni interelettronichetra elettroni nella [[funzione d'onda]], con una [[incertezza di misura|incertezza]] statistica che può essere ridotta aumentando la durata della simulazione. Per i [[bosoneBosone (fisica)|bosoni]] esistono algoritmi numericamenti esatti e che variano in modo [[polinomio|polinomiale]] con la dimensione del sistema oggetto di studio. Per i [[fermione|fermioni]] esistono invece ottime approssimazioni e algoritmi Monte Carlo numericamente esatti che variano in modo [[potenza (matematica)|esponenziale]], costituendo due differenti approcci risolutivi.
 
==Fondamenti==
Un sistema fisico quantomeccanicoquantistico, con tutte le sue applicazioni che spazianospazino in modo interdisciplinare, può essere descritto sfruttandocon l'[[equazione di Schrödinger]] a molti corpi. Ma questa, nella sua risoluzione matematica, risulta abbastanza complessa e richiede una certa quantità di tempo per essere risolta (in particolare per i [[Fermione|fermioni]], quali sono gli [[elettroni]]).
 
Tradizionalmente i metodi teorici approssimano la [[funzione d'onda]] a molti corpi in una [[funzione matematicaFermioni|funzione]] [[antisimmetria|antisimmetrica]] di [[orbitale atomico|orbitali]] a singola particella (''approssimazione orbitalicadegli orbitali''):
 
:<math> \Psi(x_1,x_2,\dots,x_n)=f(\Phi_1(x_1),\Phi_2(x_1),\dots,
\Phi_n(x_1);\Phi_1(x_2) \Phi_2(x_2),\dots) </math>
 
come nel caso del [[metodo di Hartree-Fock]]. Questa formulazione se da un lato semplifica molto i calcoli, dall'altroma introduce delle limitazioni, soprattutto legate al modo di valutare l'effetto delle repulsioni elettroniche, che per molte applicazioni possono non esseresono accettabiliinaccettabili.
 
LaIl quantisticaquantum Monte Carlo rappresenta un insieme di metodi post-Hartree-Fock che permette di superare tali limitazioni sfruttando una funzione d'onda a molti corpi scelta direttamente da chi opera la simulazione. In particolare, si può utilizzare la funzione d'onda di Hartree-Fock come punto di partenza, procedendo poi a [[moltiplicazione|moltiplicarla]] per una specifica funzione simmetrica, - tipiche sono le ''funzioni di Jastrow'', - che apporti un contributo correttivo. La maggior parte dei metodi mira al calcolo della funzione d'onda relativa allo [[stato fondamentale]] del sistema, con eccezione del ''path integral Monte Carlo'' e del ''auxiliary field Monte Carlo'' che invece calcolano la [[operatore densità|matrice densità]].
 
Sebbene il metodo Monte Carlo dia risultati più [[accuratezza|accurati]] rispetto agli altri [[metodo ab initio (chimica)|metodi ab initio]] di [[chimica quantistica]], il suo costo computazionale non lo rende un metodo di routine, quali invece sono la [[teoria del funzionale della densità|teoria del funzionale di densità]] e il [[metodo Coupled- Cluster]]. Di seguito verrannosono descritti i metodi ''variational Monte Carlo'', ''diffusion Monte Carlo'' e ''path integral Monte Carlo''.
 
==Variational Monte Carlo==
Il '''variational Monte Carlo''' (VMC) è un metodo di quantisticaquantum Monte Carlo che applica l'[[metodoMetodo variazionale (meccanica quantistica)|approccio variazionale]] per l'approssimazione dello stato fondamentale del sistema.
 
Il [[Valore di aspettazione del vuoto|valore di aspettazione]] può essere scritto nella forma rappresentativa in ''x'' come
 
:<math> \frac{\langle \Psi(a) | H | \Psi(a) \rangle} {\langle \Psi(a) | \Psi(a) \rangle } = \frac{\int \Psi(X,a)^2 \frac{H\Psi(X,a)}{\Psi(X,a)} dX} { \int \Psi(X,a)^2 dX} </math>.
Riga 29 ⟶ 28:
:<math> \frac{ \Psi(X,a)^2 } { \int \Psi(X,a) dX } </math>
 
può essere assunto come una funzione di distribuzione della [[probabilità]], valutando il valore dell'energia di aspettazione <math> E(a) </math> come [[media (statistica)|media]] della funzione locale <math> \fractfrac{H\Psi(X,a)}{\Psi(X,a)} </math>, e quindi si procederà alla minimizzazione di <math> E(a) </math>.
 
Il metodo VMC è sostanzialmente simile a ogni classico metodo variazionale, ad eccezione del fatto che mentre gli integrali multidimensionali vengono valutati numericamente, nel VMC occorre invece calcolare solamente il valore della funzione d'onda, fattore che conferisce grande flessibilità al metodo in questione. Uno dei più grandi vantaggi in termini di accuratezza, derivanti dallo scrivere la funzione d'onda separatamente, deriva dall'introduzione del cosiddetto ''fattore Jastrow'' che esprime la funzione d'onda come
 
:<math> \exp(\sum{u(r_{ij})})</math>,
 
dove <math> r_{ij} </math> è la distanza tra una coppia di particelle quantistiche.
Riga 45 ⟶ 44:
 
==Diffusion Monte Carlo==
Il metodo ''diffusion Monte Carlo'' (DMC) utilizza una [[funzione di Green]] per risolvere l'equazione di Schrödinger. Il DMC è potenzialmente un metodo numericamente esatto, il che sigificasignifica che è in grado di trovare l'esatto valore dell'energia dello stato fondamentale all'interno di un dato intervallo di tolleranza definito per un qualsiasi sistema quantistico. Effettuando i calcoli, si trova che per i bosoni l'algoritmo fornisce dei valori che variano in modo polinomiale con la dimensione del sistema, mentre la variazione nel caso dei fermioni è di tipo esponenziale. Questo fatto rende impossibili le simulazioni DMC per i sistemi fermionici su larga scala; comunque è possibile ottenere risultati molto accurati applicando opportune approssimazioni (fixed-node approximation). Di seguito verrà presentato l'algoritmo basilare.
 
===Metodo del proiettore===
Riga 58 ⟶ 57:
Esistono particolari funzioni, chiamate [[autofunzione|autofunzioni]], per le quali <math>H\Psi(x)=E\Psi(x)</math>, dove ''E'' rappresenta un valore numerico. Queste funzioni sono speciali perché nel valutare l'effetto dell'operatore ''H'' sulla funzione d'onda, si ottiene sempre lo stesso valore di ''E'' (conservazione dell'energia totale della particella quantistica). Queste funzioni sono dette ''stati stazionari'', perché la loro derivata in funzione del tempo, in ogni punto ''x'', è sempre la stessa e quindi l'ampiezza della funzione d'onda non varia al variare del [[tempo]].
 
Solitamente si è interessati alla funzione d'onda caratterizzata dal più basso [[autovalore]] di energia, ovvero alla determinazione dello stato fondamentale. Scrivendo l'equazione di Schrödinger in modo leggermente diverso è possibile ottenere sempre lo stesso autovalore di energia ma questo, piuttosto che avere carattere oscillatorio, sarà [[convergenza|convergente]]. Tale forma, nota anche come ''equazione di Schrödinger tempo immaginario'', è
 
:<math>\frac{-d\Psi(x,t)}{dt}=(H-E_0)\Psi(x,t)</math>,
Riga 66 ⟶ 65:
:<math>\Psi=c_0\Phi_0+\sum_{i=1}^\infty c_i\Phi_i</math>.
 
Trattandosi di una [[equazione differenziale lineare]], si può considerare il contributo di ogni parte separatamente. Si è già detto che <math>\Phi_0</math> è stazionaria. Supponiamo di considerare <math>\Phi_1</math>: essendo <math>\Phi_0</math> l'[[autofunzione]] a più bassa energia, l'[[autovalore]] associato a <math>\Phi_1</math> soddisfa la relazione <math>E_1 > E_0</math>. Così la derivata temporale di <math>c_1</math> è negativa ed eventualmente tenderà a zero, fornendo solamente lo stato fondamentale. Da questa osservazione trae origine un modo di determinare <math>E_0</math>: osservando l'[[ampiezza]] della funzione d'onda nella sua propagazione temporale, un suo incremento o decremento permette di stimare il valore dell'energia.
 
===Implementazione stocastica===
Precedentemente si è arrivati a ottenere una equazione che, valutandone l'evoluzione temporale e utilizzando un valore appropriato di <math>E_0</math>, permette di ottenere lo stato fondamentale di un qualsivoglia hamiltoniano. Questo rappresenta ancora un grosso problema nella [[meccanica classica]], perché piuttosto che considerare la propagazione di una singola posizione delle particelle occorre invece considerare la propagazione di intere funzioni. Nella meccanica classica il [[moto (fisica)|moto]] delle particelle si potrebbe simulare sulla base dell'equazione <math>x(t+\tau)=x(t)+\tau v(t)+0.5 F(t)\tau^2</math>, assumendo che la [[forza]] sia costante.
 
Per l'equazione di Schrödinger [[tempo immaginario]], la propagazione temporale viene invece effettuata utilizzando un integrale di [[convoluzione]] con una [[funzione speciale]] definita ''funzione di Green''. In tal modo si ottiene
 
:<math> \Psi(x,t+\tau)=\int G(x,x',\tau) \Psi(x',t) dx' </math>.
 
Similmente al caso della meccanica classica si possono effettuare propagazioni solamente per piccole porzioni di tempo, altrimenti la funzione di Green diviene non accurata. Aumentando il numero di particelle di cui è composto il sistema quantistico, aumenta anche la dimensione dell'integrale, dovendo integrare in tutte le coordinate di tutte le particelle. L'integrazione può essere effettuata sfruttando il metodo Monte Carlo.
 
==Path integralIntegrale Monte Carlo==
Il L''path'integrale integralsui cammini Monte Carlo'' sfrutta la formulazione del path integral (dell'[[integrale sui cammini]]) della meccanica quantistica, sviluppata da [[Richard Feynman]] generalizzando il concetto del dell'[[azione (fisica)|principio di azione]] della meccanica classica. In pratica una particella quantistica può passare da un punto A nel tempo <math>t=0</math> a un punto B nel tempo <math>t_1</math> seguendo differenti possibili percorsi.
 
L'integrale sui cammini, generalizzato per i problemi quantomeccanici, è
 
:<math>Z = \int Dx\, e^{i\mathcal{ S}[x]/ \hbar}</math> &nbsp;dove&nbsp; <math>\mathcal{S}[x]=\int_0^Toperatorname d\mathrm{d}t! L[x(t)]</math>,
 
in cui l'azione viene definita a partire dal tempo t=0 a ''t''=''T'', con ''Dxx'' che denota l'itegrazione su tutti ila camminiposizione.
 
==Bibliografia==
Riga 96 ⟶ 95:
 
==Collegamenti esterni==
*([[lingua{{Cita ingleseweb|EN]]) [url=http://www.qmcwiki.org/index.php/Quantum_Monte_Carlo_Wiki_Home |titolo=Quantum Monte Carlo Wiki Home]|lingua=en|accesso=2 maggio 2019|dataarchivio=9 maggio 2007|urlarchivio=https://web.archive.org/web/20070509042633/http://www.qmcwiki.org/index.php/Quantum_Monte_Carlo_Wiki_Home|urlmorto=sì}}
*([[lingua inglese|EN]]) [http://cdsagenda5.ictp.trieste.it/full_display.php?ida=a0332&fid= Lezioni sulla quantistica Monte Carlo]
 
{{Controllo di autorità}}
[[Categoria:Chimica quantistica]]
{{Portale|quantistica}}
 
[[Categoria:Chimica quantistica]]
[[en:Quantum Monte Carlo]]
[[Categoria:Statistica computazionale]]