Università degli Studi di Trieste Dipartimento di Fisica Corso di Laurea in Fisica Teorie della struttura e termodinamica di soluzioni colloidali Relatore: Prof. Giorgio Pastore Candidata: Alice Cuzzocrea Anno Accademico 2014/2015 Indice Introduzione 2 1 Soluzioni Colloidali 1.1 Colloidi patchy . . . . . . . . . . . 1.1.1 Esempi di colloidi patchy in 1.2 Modellizzazione dei colloidi . . . . 1.2.1 Modelli isotropi . . . . . . . 1.2.2 Modelli anisotropi . . . . . . . . . . . . laboratorio . . . . . . . . . . . . . . . . . . . . . 2 Metodo di Monte Carlo 2.1 Integrazione Monte Carlo . . . . . . . . . . . 2.1.1 Importance sampling e catene Markov 2.1.2 Il metodo di Metropolis . . . . . . . . 2.2 Tecniche di ottimizzazione del Monte Carlo . 2.2.1 Minimum image criterion . . . . . . . 2.2.2 Liste dei vicini e Linked Lists . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 4 5 7 8 10 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 14 15 16 18 19 19 3 Simulazioni effettuate 22 3.1 Struttura del programma . . . . . . . . . . . . . . . . . . . . 22 3.2 Calcolo degli errori correlati . . . . . . . . . . . . . . . . . . . 23 3.3 Risultati . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 4 Conclusioni 30 1 Introduzione Le soluzioni colloidali sono sistemi di grande interesse sia per le loro caratteristiche fisiche sia per le possibili applicazioni tecnologiche. Negli ultimi tempi, una parte importante del loro studio si è focalizzata sullo sviluppo di strutture autoassemblanti, di strutture utili nel campo della fotonica e varie altre applicazioni come il trasporto controllato di farmaci attraverso il sangue. La ricerca si svolge parallelamente sul campo sperimentale e su quello teorico. In ambito sperimentale mira a trovare i materiali e le tecniche adatte a creare colloidi con le più svariate forme e tipi di interazione, nell’ottica di riuscire ad ottenere particelle con specifiche proprietà ma anche che si possano produrre in grandi quantità. Dal punto di vista teorico si prova, attraverso simulazioni, a predire le strutture che possono essere formate e le loro caratteristiche, in modo da capire quali sono i tipi di colloidi più interessanti. Questo lavoro di tesi introduce questa problematica descrivendo brevemente lo stato attuale della ricerca e alcuni degli strumenti necessari a fare una simulazione in questo campo. Infine viene messo in pratica quanto imparato attraverso una serie di simulazioni Monte Carlo. Il lavoro è articolato in tre capitoli; nel primo, oltre ad introdurre le soluzioni colloidali e focalizzarsi sugli obiettivi di ricerca collegati, si spiega cosa sono i colloidi con interazioni anisotrope soffermandosi sui colloidi patchy. Particolare attenzione è posta sui possibili modelli di interazione da utilizzare per fare simulazioni e sull’accuratezza delle informazioni che si possono ottenere. Nel secondo capitolo viene introdotto il metodo di integrazione di Monte Carlo in meccanica statistica, in particolare quello di Metropolis. Vengono brevemente ripresi gli strumenti teorici necessari a capirne il funzionamento e si prova a dare una descrizione dei principali aspetti pratici di cui occorre tener conto per effettuare una simulazione Monte Carlo. Oltre a ciò, sono spiegate alcune tecniche utili per ottimizzare l’implementazione del Monte Carlo, in particolare il metodo delle linked lists. Nel terzo capitolo vengono mostrati i dettagli della simulazione effettuata nel corso del lavoro e presentati i risultati ottenuti. Una breve conclusione riassume il contenuto della tesi e la discussione dei risultati ottenuti. 2 Capitolo 1 Soluzioni Colloidali Le soluzioni colloidali sono delle miscele formate da particelle ‘grandi’, con diametro che va da qualche decina di nanometri ai micrometri, immerse in un solvente costituito da particelle più piccole. Sono colloidi, ad esempio, le miscele di granuli di polline e acqua o più semplicemente il latte o il sangue. La particolarità di queste sostanze è che hanno una dinamica intermedia tra quella di una soluzione in cui la scala di tempo del moto del soluto e del solvente sono paragonabili e quella di sistemi in cui cessa quasi completamente il moto del soluto (precipitati). Una delle caratteristiche dei colloidi è proprio il moto delle particelle ‘grandi’ all’interno del solvente, detto moto Browniano. Questo, è un moto disordinato dovuto ai continui urti tra le particelle colloidali (intendendo le particelle grandi) e le piccole molecole del solvente; le particelle colloidali, grazie a questi ripetuti colpi riescono a non precipitare anche in presenza della forza di gravità. Una parte dello studio moderno sui colloidi, più che sulla dinamica delle particelle all’interno della soluzione, si concentra sul tipo di strutture che possono essere formate con esse e le proprietà che ne derivano. Vista la facilità con cui si assemblano e le caratteristiche dei legami che formano si vorrebbe riuscire, in futuro, ad utilizzarli per ottenere strutture autoassemblanti e strutture che si riparano da sole, molto utili ad esempio in campo medico nel quale potrebbero avere utilizzi che vanno dal trasporto controllato di farmaci al creare muscoli artificiali. In altro campo tecnologico, l’interesse è dovuto principalmente alle possibili applicazioni in fotonica. In questo caso, essendo i colloidi di dimensioni comparabili alla lunghezza d’onda della luce nel visibile, cristalli di queste particelle potrebbero essere utilizzati per favorire o proibire il trasporto della luce. Quando si pensa alle potenziali strutture da creare, bisogna tenere presente che l’assemblaggio dei colloidi è molto diverso da quello di atomi e molecole perché, in questo caso, a differenza di ciò che accade con atomi e 3 CAPITOLO 1. SOLUZIONI COLLOIDALI 4 Figura 1.1: Esempi di particelle colloidali con forme diverse da quella sferica: (a) cubi, (b) ottaedri, (c) dodecaedri rombici, (d ) cubi troncati, (e) bastoncini esagonali, ( f ) dischi esagonali,( g) dodecaedri rombici troncati, (h) prisma a bipiramide esagonale. Figura tratta dalla referenza [3]. molecole, il range delle interazioni tra due particelle è molto piccolo rispetto alla loro taglia. Questa caratteristica li porta ad essere molto interessanti nel campo della ricerca per il tipo di strutture che permette di creare. In più grazie alle loro dimensioni diventa possibile, sfruttando le nuove tecnologie, crearne a piacimento scegliendone forma, grandezza, carica e molto altro come si può vedere in figura 1.1; infine, sempre la loro taglia rende possibile tracciarne istantaneamente tutti i movimenti. 1.1 Colloidi patchy Negli ultimi tempi, i colloidi più interessanti si sono rivelati quelli con interazioni anisotrope, tra questi quelli che hanno forma sferica sono detti ‘Janus colloids’. Inizialmente venivano così indicati i colloidi formati da due calotte interagenti in maniera diversa, ad esempio una calotta che si comporta come una sfera rigida e l’altra calotta ‘appiccicosa’, o una parte della sfera idrofoba e l’altra idrofila, o ancora una parte carica e una neutra; di fatto è proprio da questa dualità che deriva l’idea del nome ‘Janus’ che allude al dio romano con due facce. Adesso invece, il termine ‘Janus colloids’ o equivalentemente ‘patchy colloids’ si utilizza per tutti i collodi sferici con interazioni anisotrope qualunque sia il numero di patches con cui sono decorati. Nel caso isotropo i tipi di strutture creati sono banali, ad esempio si formano reticoli cubici o esagonali, invece con le interazioni anisotrope è possibile creare cristalli più interessanti come quello in figura 1.2(b). In questo caso, nelle situazioni semplici, è facile predire le strutture che verranno formate; ad esempio, è possibile immaginare che dei colloidi con un punto attrattivo per ognuno dei due poli si uniranno a formare delle catene [3]. Spesso però, si trattano casi più complicati in cui le patches sono asimmetriche, sono più di due o la forma delle particelle utilizzate non è sferica; CAPITOLO 1. SOLUZIONI COLLOIDALI (a) Colloide patchy: in blu la struttura di base sferica, in rosso le tre patches attrattive responsabili dell’anisotropia. 5 (b) Struttura formata con colloidi janus, in cui metà sfera è attrattiva (arancione), metà (azzurro) non interagente. Figura tratta dalla referenza [3]. Figura 1.2: Esempi di colloidi patchy e strutture che possono formare. in queste occasioni, per poter avere un idea delle strutture che verranno formate, è necessario eseguire delle simulazioni. Nel caso dei colloidi sferici variando il numero di patches si agisce direttamente sul numero massimo di primi vicini. Le sfere con interazione isotrope si dispongono in modo che il loro numero di coordinazione sia 12. Con l’utilizzo delle patches o di altri meccanismi che generano interazioni anisotrope questo numero può essere ridotto notevolmente. Infatti, si può pensare ogni patch come un sito di coordinazione limitato dalla sua forma e dalla sua area; agendo sul numero di patches e su questi altri fattori si dovrebbe quindi riuscire a modificare il numero di coordinazione e le strutture ottenibili [3]. 1.1.1 Esempi di colloidi patchy in laboratorio Sperimentalmente ci sono moltissimi modi per creare un colloide con interazioni anisotrope. Si possono, ad esempio, realizzare dei punti di interazione utilizzando dei singoli filamenti di DNA, in modo che il legame possibile sia solo con i punti delle altre particelle in cui ci sia una catena di DNA complementare [3]. Un altro tipo di legami fortemente direzionali sono ottenuti costruendo particelle complementari dette ‘lock and key’, create in modo che la cavità nella particella ‘serratura’ combaci con la forma della particella ‘chiave’ [3]. Inoltre, è possibile ricoprire aree selezionate dei colloidi con dei metalli (come oro o titanio) creando in maniera diretta le patches; tramite alcune tecniche, è possibile anche fare assorbire al colloide specifiche nanoparticelle; in alternativa, per creare delle zone attrattive vengono sfruttate catene idrofobe o gruppi funzionali vari [3]. CAPITOLO 1. SOLUZIONI COLLOIDALI (a) Patches create con il Dna e altri gruppi funzionali. 6 (b) Esempi di collodi lock and key. Figura 1.3: Colloidi con interazioni anisotrope. In alto il modello in basso le immagini sperimentali. Figure tratte dal riferimento [3]. Il numero e la disposizione delle patches viene scelto in base al tipo di comportamento o di struttura finale a cui si è interessati; tenendo presente che se il numero di patches aumenta molto, l’anisotropia svanisce e le particelle tornano a comportarsi come nel caso delle interazioni isotrope, soprattutto se le patches sono simmetriche. La forma dei collodi, invece, come detto, solitamente si sceglie sferica; però, sono state sviluppate nuove tecniche sperimentali che permettono di ottenere svariate forme di colloidi ad esempio bastoncini, cubi, ottaedri e dischi esagonali. In questi casi, a differenza che con le sfere, anche in assenza di patches le interazioni sono fortemente direzionali, infatti, ci sono dei gradi di libertà che dipendono dall’orientazione. In questo modo, la struttura finale viene alterata, ed oltre a ciò, cambia anche l’entropia del sistema; ad esempio, quando ci sono delle facce, esse tendono ad allinearsi per massimizzare l’entropia [3]. Per ottimizzare la formazione di certe strutture, oltre alla forma delle particelle e alla disposizione delle patches, è di fondamentale importanza il tipo di interazione che si ottiene. In alcuni casi, infatti, si rischia di creare delle soluzioni in cui le particelle non si assemblano. Ad esempio, se si decorano dei colloidi con sostanze cariche e idrofobiche e si mettono in acqua deionizzata la repulsione elettrostatica potrebbe essere così a lungo raggio da proibire la formazione di strutture particolari e, solo con un’adeguata aggiunta di sale in acqua, si riesce a schermare la carica e a far sì che le interazioni a corto raggio dovute alla parte idrofoba diventino rilevanti [3]. Le interazioni direzionali dovute a campi elettrici o magnetici, sono in effetti molto importanti. Si è visto sperimentalmente che alcune distribuzioni di carica asimmetriche riescono a spiegare l’aggregazione di certe proteine e si vorrebbe quindi riuscire a compiere il processo inverso, ossia, progettare strutture basate su distribuzioni di carica asimmetrica e capire come mettere le patches per ricrearle. L’importanza delle interazione elettromagnetica è accentuata dal fatto CAPITOLO 1. SOLUZIONI COLLOIDALI 7 che quasi tutte le particelle colloidali si polarizzano in presenza di un campo elettrico esterno. Questa caratteristica può essere utile per creare determinate strutture e manipolarle istantaneamente. L’interazione magnetica, in questo senso, si rivela spesso più interessante poiché le strutture create in presenza del campo magnetico, una volta che il sistema si è magnetizzato, rimangono anche quando viene spento. Allo stesso tempo, è possibile demagnetizzare il sistema con dei campi molto forti e riprogrammarlo. Si intuisce facilmente come questa caratteristica si riveli essenziale se si vogliono ottenere dei sistemi stabili che però diano l’opportunità di essere riconfigurati a piacere [3]. Per ottenere risposte magnetiche adeguate i colloidi vengono spesso ricoperti con materiali ferromagnetici oppure si creano dei punti di interazione inserendo delle nanoparticelle magnetiche all’interno della particella colloidale; per creare dei colloidi Janus con interazioni magnetiche si può ad esempio, ricoprire metà particella con un materiale ferromagnetico e l’altra metà con un materiale antiferromagnetico ottenendo facilmente il dualismo dell’interazione. 1.2 Modellizzazione dei colloidi Quando, per predirne le proprietà, si vogliono modellizzare questi sistemi si devono affrontare una serie di scelte che andranno ad incidere sulla realisticità del sistema simulato ma anche sulla generalità dei risultati ottenuti. In molti casi un modello molto accurato non è efficiente per l’utilizzo in simulazioni con gran numero di particelle o su tempi lunghi. D’altra parte, modelli molto efficienti dal punto di vista computazionale spesso sono poco accurati, quindi, i risultati che ne derivano non rappresentano situazioni fisiche reali. Di fatto ciò che si prova a fare è trovare un modello che sia un compromesso tra efficienza e accuratezza, il limite, ovviamente, non è fissato ma dipende dal tipo di sistema studiato e dai risultati che si vogliono ottenere. Inizialmente per avere un sistema più realistico possibile si potrebbe pensare di tener conto, durante la simulazione, di tutti gli atomi che formano il singolo colloide e di tutti i rispettivi elettroni e quindi di tutte le varie interazioni elettrone-elettrone, atomo-atomo, atomo-elettrone. Tenendo presente che un singolo colloide contiene un numero di atomi tra 103 e 109 , il numero di elettroni di un sistema sarebbe molto maggiore di 109 , il che renderebbe impossibile la simulazione. Si trascurano quindi i gradi di libertà elettronici, ipotizzando la loro dinamica irrilevante per la maggior parte dei problemi. In secondo luogo, sebbene sarebbe possibile ricreare un sistema con 103 /104 atomi, quello a cui si è interessati quando si studiano i colloidi non è la simulazione della singola particella ma di un sistema più CAPITOLO 1. SOLUZIONI COLLOIDALI 8 ampio formato da almeno un centinaio o un migliaio di particelle. Pertanto risulta quasi sempre necessario trascurare anche tutte le interazioni tra atomi, e modellizzare il colloide come un unico oggetto rigido, racchiudendo tutte le interazioni colloide-colloide in un certo potenziale medio che renda possibile la simulazione, e che se scelto bene, darà informazioni localmente meno accurate ma nel complesso corrette. Una volta scelto di trattare il colloide come unica particella si deve scegliere in che modo farlo interagire. Si sceglie di utilizzare delle Hamiltoniane classiche, quindi si trascurano tutti gli effetti quantistici. L’approssimazione classica è giustificata per una particella di massa M qa temperatura T 2 quando la lunghezza d’onda termica di de Broglie Λ = M2πh̄ kB T , dove h̄ è la costante di Planck ridotta e kB è la costante di Boltzmann, è più piccola della distanza media tra primi vicini a. Questo è quasi sempre vero nei liquidi, tuttavia per temperature troppo basse Λ cresce e l’approssimazione diviene meno corretta. Come detto in precedenza le soluzioni colloidali sono composte, oltre che dalle particelle colloidali, dal solvente in cui queste sono immerse. Per cui, nel modellizzare un sistema di questo tipo, bisogna inserire l’interazione con l’ambiente, ossia il solvente in cui si trova la dispersione colloidale. I solventi possono essere svariati e il numero di particelle che li compone grandissimo. Se immaginiamo una soluzione in cui le particelle colloidali siano immerse in acqua, il rapporto tra colloidi e molecole di acqua sarà piccolissimo; potrebbe succedere quindi che prendendo un campione di mille particelle ci si ritrovi ad averne 997 di acqua e 3 colloidali, un numero troppo esiguo se si vogliono ottenere informazioni statistiche sul sistema. In più, solitamente in acqua si trova disciolto un sale, la cui quantità di molecole rispetto a quelle d’acqua sarà anch’essa una frazione piccolissima, sarebbe nulla quindi, anche la statistica sull’interazione tra colloidi e ioni salini. Gli ioni salini però, essendo carichi, hanno un ruolo molto importante all’interno della soluzione schermando parzialmente la carica delle grandi particelle colloidali. La loro presenza non è quindi trascurabile. D’altra parte, risulta evidente l’impossibilità di tenerne conto singolarmente. Di norma quindi il solvente viene sostituito con un campo medio e le caratteristiche del solvente (ad esempio il grado di salinità) vengono incluse nel potenziale di interazione. Questa operazione, oltre ad eliminare dalla simulazione un enorme numero di singole molecole e quindi di interazioni, permette anche di avere dei risultati più generici. 1.2.1 Modelli isotropi Alla luce di quanto detto la scelta del potenziale d’interazione risulta decisiva per ottenere previsioni che abbiano dei buoni riscontri con i sistemi reali. Deve infatti riuscire ad inglobare l’interazione tra particelle colloidali CAPITOLO 1. SOLUZIONI COLLOIDALI 9 inserendo anche l’effetto della ionicità del solvente. Inoltre è auspicabile che uno stesso potenziale sia adattabile a varie condizioni del solvente. Il potenziale più semplice con cui si può modellizzare un sistema colloidale è quello con cui le particelle vengono trattate come sfere rigide che non si ‘vedono’ a meno che non ci sia uno scontro, il che equivale ad avere ( U (r̄) = ∞ r̄ ≤ σ̄ 0 r̄ ≥ σ̄ (1.1) dove σ̄ è il raggio della sfera. In questo modo però, non si otterrebbe alcuna struttura perché i colloidi si comporterebbero come delle palline che semplicemente non possono compenetrarsi, oltre al fatto che il solvente sarebbe ignorato. Un modello un po’ più realistico è quello in cui si aggiunge un potenziale attrattivo, per cui se due particelle si avvicinano abbastanza sentono una forza attrattiva che le fa legare. Questo si può fare utilizzando diversi potenziali ad esempio il potenziale di Lennard-Jones o più semplicemente una buca di potenziale quadrata. Quest’ultimo sebbene meno realistico, in quanto è un potenziale discontinuo, rende il calcolo più veloce ed è quindi preferibile in molti casi. Figura 1.4: Potenziale a buca quadrata: σ indica il raggio della particella, e λ regolano rispettivamente profondità e larghezza della buca. Il potenziale di coppia per le buche quadrate è1 U (rij ) = ∞ 0 1 rij ≤ σ σ ≤ rij ≤ λσ rij ≥ λσ (1.2) Solitamente le interazioni tra queste particelle dipendono solo dalla loro distanza relativa, per cui non serve conoscere la posizione della singola particella r¯i ma solo la distanza di questa dall’altra particella interagente j, si usa quindi rij . CAPITOLO 1. SOLUZIONI COLLOIDALI 10 dove λ è un parametro che regola la larghezza della buca, invece ne regola la profondità (come si vede in figura 1.4). Variando la larghezza e la profondità delle buca si riescono a ricreare diversi sistemi. Si può pensare come esempio ad un sistema iniziale formato da colloidi in soluzione acquosa in cui successivamente si scioglie del sale; gli ioni solvateranno i colloidi, schermando parte della loro carica. In questo caso, diminuire la larghezza della buca di potenziale aiuta a rendere il sistema più realistico, nel senso che ad una maggiore concentrazione di sale disciolto in acqua corrisponderà un potere attrattivo del colloide minore e di conseguenza una buca più piccola. Si riesce così a tenere conto della soluzione senza inserirla direttamente nella simulazione ma ‘nascondendola’ nel valore dei parametri del potenziale. 1.2.2 Modelli anisotropi Questi potenziali però, non vanno bene per simulare sistemi di colloidi ‘patchy’. Infatti, in questo caso, si devono utilizzare potenziali anisotropi, quindi sensibili all’orientazione relativa delle particelle. Uno tra i modelli più semplici per studiare le interazioni anisotrope è stato proposto da Norbert Kern e Daan Frenkel nel 2003 [2]; questo modello prevede che la particella colloidale sia trattata come una sfera rigida neutra e che, invece, alle patches venga affidato un potenziale attrattivo. Il potenziale di coppia che descrive tale sistema si scrive come prodotto tra il potenziale a square-well visto e una funzione dell’angolo uij (rij ; Ωi , Ωj ) = u(rij ) · f (Ωi , Ωj ) (1.3) in cui rij è la distanza tra le particelle interagenti i e j, u(rij ) è il potenziale attrattivo a square-well dell’equazione 1.2, mentre f (Ωi , Ωj ) è una funzione degli angoli che permette di differenziare l’interazione delle porzioni di sfera ricoperte dalle patches da quelle libere f (Ωi Ωj ) = 1 1 0 ( b α ≥ cos(δ) rbij · n b β ≥ cos(δ) e rbij · n se rij ≤ σ altrimenti se (1.4) come si vede in figura 1.5, δ è l’angolo che individua l’estensione delle patches, rbij è un vettore unitario con la stessa direzione della congiungente bα e n b β sono i versori che indicano dei centri delle particelle i e j, mentre, n l’orientazione delle patches. L’attrazione è quindi limitata ai casi in cui le patches delle due particelle si interfacciano. Infatti, se l’angolo tra il vettore che individua la patch e la congiungente delle due particelle è maggiore di δ per almeno una delle due particelle, l’interazione è nulla. CAPITOLO 1. SOLUZIONI COLLOIDALI 11 Figura 1.5: Interazione tra due particelle colloidali, ognuna delle quali ha tre patches. In verde si vede la parte neutra, invece in azzurro è evidenziata la buca attrattiva in corrispondenza delle patches. Il modello di Kern e Frenkel permette di scegliere sia la grandezza delle patches sia il loro numero e la loro disposizione, ad esempio si possono tranquillamente trattare particelle come quelle in figura 1.5. Si è visto che, con questo modello, il sistema con solo due calotte di misura uguale (che corrisponde a scegliere cos(δ) = 0) riproduce molto bene il caso di colloidi con un emisfero idrofobo e l’altro idrofilo, infatti semplicemente utilizzano il potenziale di Kern e Frenkel si riescono a ricreare micelle e vescicole [5]. Tale modello separa nettamente la parte angolare da quella radiale, in questo modo risulta facile rendersi conto di quali comportamenti dipendano dalla distanza tra particelle e quali dalle loro orientazioni. Il potenziale di Kern-Frenkel è il più semplice che riproduca un sistema anisotropo perché ipotizza che tutte le patches siano attrattive, abbiano la stessa grandezza e stessa energia di legame. Inoltre, essendo il potenziale discreto anche nella sua parte angolare, non c’è differenza di guadagno energetico tra il caso in cui due patches si sfiorano solamente e quello in cui l’orientazione delle patches coincide con la congiungente tra le particelle. Infine, per studiare questi sistemi con interazione anisotropa è importante tenere sotto controllo il grado di anisotropia totale; cioè, come venga influenzato il sistema in funzione sia dal numero di patches sia della loro grandezza. Per facilitare il confronto tra sistemi con geometrie diverse è utile introdurre una grandezza che indichi la frazione di area totale ricoperta dalle varie patches. Si definisce quindi la quantità: χ = n · sin2 δ 2 (1.5) dove n è il numero di patches e δ l’apertura angolare di ciascuna di esse. CAPITOLO 1. SOLUZIONI COLLOIDALI 12 (a) Legami tra tre patches, ognuna (b) Legami tra tre particelle che legata con le altre due coinvolge due patches per ogni particella. Figura 1.6: Esempi di strutture formate con particelle patchy. Questa quantità è molto importante ad esempio quando si studiano le curve di coesistenza liquido-liquido; si nota infatti, che queste curve sono molto sensibili al grado di anisotropia del sistema, e variando la χ variano sia la temperatura che la densità critica. Inoltre tenere sotto controllo l’estensione delle patches è essenziale perché si ripercuote sul numero di coordinazione della particella. Per questo motivo è bene capire come e quanto l’angolo che individua la zona attrattiva influenzi il numero di legami sempre nell’intento di riuscire a predire le strutture finali. Ad esempio si immagini un legame che avvenga tra tre patches di tre particelle diverse in modo che ognuna delle patches sia legata ad entrambe le altre come in figura 1.6 (a). Perché possa formarsi un legame del genere c’è bisogno di avere un apertura δ ≥ 30o indipendentemente da come siano disposte le patches sulla superficie. Inoltre, per lo stesso motivo, nei casi in cui ci siano più di sei patches diventa impossibile ottenere simili strutture. Un caso in cui è più difficile geometricamente imporre condizioni sul δ minimo è quello in cui un legame di tre particelle coinvolga sei patches in modo che per ogni particella il legame con le altre due sia affidato a due patches diverse, come mostrato in figura 1.6 (b). Oltre all’angolo, anche il fattore di copertura χ è importante in questi casi. Ad esempio secondo gli studi di Kern e Frenkel, esaminando particelle con due patches, per ottenere la prima delle strutture citate è necessario che χ si almeno 0.13 mentre perché si formi la seconda struttura si deve avere χ ≥ 0.50 [2]. Ad ogni modo sono stati sviluppati altri modelli per simulare sistemi di colloidi anisotropi. Tra questi c’è lo ‘spot-like patch model’, basato su un’idea analoga a quella di Kern e Frenkel, in cui le particelle sono delle sfere rigide neutre sulla cui superficie si trova un numero fissato e piccolo di sferette attrattive. Queste interagiscono con i siti attrattivi delle altre particelle attraverso potenziali di coppia a square-well. In questo caso l’estensione delle patches è determinata dalla sfera attrattiva assegnata allo spot. Capitolo 2 Metodo di Monte Carlo I metodi di simulazione utilizzati per studiare i liquidi si possono classificare, solitamente, in due tipologie diverse: il metodo della Dinamica Molecolare (deterministico) e il metodo di Monte Carlo (stocastico). La Dinamica Molecolare, si basa sull’integrazione numerica delle equazioni del moto e sul calcolo di medie temporali. Il metodo di Monte Carlo, invece, non è legato a una dinamica delle particelle nello spazio reale, piuttosto si basa su un ‘moto’ casuale per campionare punti nello spazio delle fasi in accordo con una distribuzione di probabilità di equilibrio. Nel corso di questo lavoro di tesi si è utilizzato il metodo di Monte Carlo. Il metodo di Monte Carlo nasce grazie a von Neumann, Ulam e Metropolis a metà del novecento. Il nome Monte Carlo è stato scelto proprio per sottolineare l’utilizzo di numeri random che lo caratterizza. Le sue origini si possono intravedere già nel diciottesimo secolo, quando un naturalista francese, Buffon, aveva risolto un problema di geometria probabilistica con un idea del tutto analoga all’attuale Monte Carlo. Egli aveva verificato che lanciando un ago di lunghezza l in modo casuale in un piano diviso da linee parallele ed equispaziate da una distanza d (con d < l), 2l la probabilità che l’ago attraversi una linea è πd , riuscendo a ricavare una stima numerica del π dalla misura della frequenza di intersezioni [1]. Da questa idea iniziale, il Monte Carlo, si è evoluto nel tempo sviluppandosi in maniera differente nei vari ambiti in cui viene utilizzato che vanno dalla fisica ad altre discipline come la biologia e la matematica. In questo lavoro ci si concentra su un tipo specifico di Monte Carlo che è detto metodo di Monte Carlo Metropolis. In generale si tratta di una tecnica di integrazione che ha come ingredienti fondamentali: la generazione di numeri casuali, che permettono di spostarsi nello spazio di integrazione e una certa distribuzione di probabilità che porta ad accettare o meno la mossa random fatta. 13 CAPITOLO 2. METODO DI MONTE CARLO 2.1 14 Integrazione Monte Carlo A questa tipo di integrazione appartiene ad esempio il metodo ‘hit and miss’ o il più generale ‘sample mean method’. In quest’ultimo caso si riscrive il generico integrale a cui siamo interessati Z b dx f (x) I= (2.1) a introducendo una probabilità che sia funzione della posizione Z b dx I= a f (x) ρ(x). ρ(x) (2.2) Per calcolare numericamente l’integrale basta campionare lo spazio delle posizioni utilizzando dei numeri casuali χi che seguano la distribuzione di probabilità di ρ(x) e trovare la media statistica I=h f (χi ) ii ρ(χi ) (2.3) dove la media si intende su tutti i punti campionati. A questo punto quello su cui si deve lavorare per ottimizzare l’integrazione è la funzione di distribuzione di probabilità ρ(x). Nel caso più semplice si può 1 utilizzare una funzione di distribuzione uniforme ρ(x) = (b−a) a ≤ x ≤ b. Già con questa scelta si nota l’efficienza del Monte Carlo rispetto agli altri metodi di integrazione deterministici. Prendiamo ad esempio il metodo Simpson che per integrali unidimensionali, a parità di punti campionati, fornisce risultati più esatti del Monte Carlo. In una dimensione l’errore associato a un integrale fatto con il metodo Simpson è ∝ 1/N 4 invece l’errore di una simulazione Monte Carlo è ∝ 1/N 1/2 il che rende la convergenza dell’integrazione Simpson molto più veloce. All’aumentare del numero di dimensioni, mentre l’errore associato al Monte Carlo non cambia, l’errore del metodo Simpson, essendo inversamente proporzionale al numero di campionamenti per dimensione, scala come 1/N 4/d (d numero di dimensioni). Quando si vogliono fare integrali in meccanica statistica il numero di dimensioni è solitamente molto maggiore di 100; dalle formule si vede però che già quando si tratta un sistema di nove dimensioni il metodo di Monte Carlo è preferibile al Simpson in quanto converge prima alla soluzione corretta. Allo stesso modo tutti i metodi di integrazione deterministici per quanto efficienti siano avranno un errore ∝ 1/N a/d (dove a è la potenza con cui scala l’errore) per cui ci sarà sempre una certa dimensione d ≥ 2a dalla quale la convergenza del metodo in questione sarà minore di quella del Monte Carlo. CAPITOLO 2. METODO DI MONTE CARLO 2.1.1 15 Importance sampling e catene Markov Quando si vuole ottenere la funzione di partizione di un sistema, o più in generale delle medie statistiche, utilizzando il Monte Carlo con distribuzione uniforme (così come avverrebbe con il metodo di Simpson) la maggior parte dei punti campionati per l’integrazione sarebbero trascurabili essendo il fattore e−βU (χ) quasi nullo in gran parte dello spazio (con β si intende il fattore di Boltzmann KB1 T e con U (χ) l’energia della configurazione). Per evitare questo spreco di calcolo e rendere più efficiente l’algoritmo è necessario utilizzare una ρ(x) che permetta di campionare più spesso i punti più rilevanti e meno spesso quelli con contributo quasi nullo. Ci si chiede quindi quale sia la migliore funzione di distribuzione per ottenere medie in meccanica statistica avendo presente che l’integrale che si vuole risolvere è del tipo: hAiN V T = Z dq̄dp̄ A(p̄, q̄)ρN V T (p̄, q̄) (2.4) dove q̄ e p̄ sono posizioni e momenti delle N particelle del sistema e ρN V T = R e−βU . Inoltre per semplicità si è utilizzato l’ ensemble canonico che dq̄dp̄ e−βU come si vedrà è quello che facilità di più l’utilizzo del metodo di Monte Carlo. Il risultato che si ottiene con una media su M campionamenti fatti con una generica ρ è: A · ρN V T hAiN V T = h iM . (2.5) ρ Da quest’ultima equazione pare chiaro che scegliendo ρ = ρN V T si otterrà direttamente hAiN V T = hAiM . Il problema a questo punto è trovare un metodo per generare una sequenza di stati random in modo che alla fine della simulazione ogni punto sia stato scelto con la giusta probabilità. Conoscendo la probabilità di transizione tra due stati, si può ottenere questa sequenza senza bisogno di calcolare il fattore di normalizzazione di ρN V T (la funzione di partizione). Questo si può fare utilizzando le catene di Markov cioè delle serie di numeri legati l’uno all’altro che convergono alla distribuzione voluta. Le catene di Markov sono caratterizzate da due proprietà: • I numeri generati appartengono a un insieme finito. Condizione che è sempre soddisfatta nelle simulazioni al computer poiché per quante cifre significative possa avere un numero apparterrà sempre a un insieme discreto e la possibilità di avere numeri grandi o piccoli a piacere è comunque limitata. • Il punto di arrivo di ogni mossa dipende unicamente dal punto di arrivo della mossa precedente. É importante notare che la distribuzione limite è indipendente dal punto iniziale, come si vede dalla seconda proprietà, infatti, la catena ‘dimentica’ velocemente il passato (condizione essenziale per simulare un sistema CAPITOLO 2. METODO DI MONTE CARLO 16 ergodico). Inoltre, sempre per garantire l’ergodicità, le catene di Markov d’interesse sono quelle irriducibili, ossia, tali che, preso casualmente uno stato di partenza ci sia sempre una probabilità non nulla di raggiungere uno qualsiasi degli altri stati del sistema. Nel caso in questione, in cui si vogliono ottenere delle medie in meccanica statistica, la distribuzione limite, come già detto, deve essere ρN V T . Per ottenere questa distribuzione si deve scegliere una matrice di transizione π appropriata (dove gli elementi di matrice di π permettono di spostarsi con una certa probabilità da uno stato all’altro, ad esempio πnm , collega lo stato n ad m). Sebbene ci sia una certa libertà di scelta della matrice π, nell’algoritmo coniato da Metropolis viene imposta un’ulteriore condizione, più forte del necessario ma che facilità il calcolo: la condizione di bilancio dettagliato ρm πmn = ρn πnm (2.6) così facendo si impone una reversibilità microscopica ossia si stabilisce che, all’equilibrio, la probabilità di passare dallo stato m allo stato n (pesata con la probabilità di essere nello stato m) sia uguale alla probabilità che avvenga la mossa opposta ossia passare da n ad m [1]. 2.1.2 Il metodo di Metropolis La soluzione proposta da Metropolis è πmn = αmn ρn πmn = αmn ρm ρn ≥ ρm (2.7) ρn ≤ ρm (2.8) che, come detto, oltre a soddisfare la condizione essenziale che le probabilità si sommino a uno, soddisfa la condizione di bilancio dettagliato. In più si definisce anche la probabilità di rimanere in uno stesso stato πmm = 1 − X πmn (2.9) n6=m da queste equazioni segue che la matrice α deve essere simmetrica quindi αmn = αnm . Anche la matrice α una volta garantita la simmetria si può scegliere con una certa liberà, infatti, essa è la matrice che permette di andare con uguale probabilità dallo stato iniziale m a uno qualsiasi degli stati vicini. La libertà sta nel definire il concetto di stati vicini. Una valida definizione è quella che si ottiene scegliendo come vicini tutti gli stati che si trovano all’interno di un volume V definito da un cubo di lato l centrato sul punto di partenza. CAPITOLO 2. METODO DI MONTE CARLO 17 Di conseguenza si può definire α nel seguente modo: 1 NV αmn = 0 αmn = r¯i n ∈ V (2.10) r¯i n 6∈ V (2.11) dove NV è il numero di stati raggiungibili, mentre r¯i n è la posizione del punto di arrivo n. Si ha, quindi, uguale probabilità di andare in ognuno dei punti all’interno del quadrato considerato e probabilità nulla di arrivare agli stati che si trovano oltre lo spostamento massimo 2l . A questo punto, per capire come mettere in pratica una mossa Monte n Carlo, bisogna solo esplicitare il rapporto ρρm che, nel caso dell’ensemble canonico, risulta: e−βVn Z −1 ρn (2.12) = −βV N−1V T = e−βVnm mZ ρm e NV T con Vnm = Vn − Vm e V è il potenziale1 . Si può ora descrivere concretamente come funziona la tecnica di Metropolis: • Inizialmente si prepara il sistema in uno stato iniziale scelto a piacere tra gli stati possibili (come detto questo non dovrebbe influenzare il risultato finale) e se ne calcola l’energia. • Si sceglie un numero random con distribuzione uniforme in un’area definita da uno spostamento massimo δr̄max e si compie uno spostamento della quantità scelta, che nel caso delle coordinate cartesiane sarà dato da una combinazione di traslazioni in x, y, z 2 . • Viene calcolata la nuova energia del sistema dopo lo spostamento. • Se l’energia iniziale è maggiore di quella finale si accetta la mossa fatta, altrimenti si accetta con probabilità e−βδV . • Si ripete la procedura un numero di volte dipendente dal sistema che si vuole studiare e dalle grandezze che si vogliono misurare. 1 Si utilizza solo la parte potenziale dell’energia poiché l’integrale che si vuole risolvere numericamente è quello riguardante lo spazio delle posizioni a cui è legato il potenziale, mentre la parte relativa ai momenti essendo solitamente il moto della particella libera, viene trascurata. 2 In realtà ci sono moltissime mosse Monte Carlo possibili, infatti le mosse non devono avere significato fisico, l’unica cosa fondamentale è che gli sia associata una probabilità di accettazione. Ci sono casi in cui diventa molto importante inserire altre mosse, ad esempio, le mosse di rotazione quando si trattano oggetti con interazioni anisotrope. CAPITOLO 2. METODO DI MONTE CARLO 18 Spesso per simulare certi sistemi è più conveniente lavorare in ensemble diversi da quello canonico, ovviamente si può adattare il Monte Carlo ad ogni ensemble, però, nel passare da un ensemble all’altro si deve fare n attenzione al rapporto ρρm poiché, negli altri casi, la probabilità non sarà −βV nm determinata solo da e ma, a seconda dell’ensemble scelto, si avranno altri fattori di cui tenere conto. Inoltre, cambiando ensemble, è bene inserire altre mosse, ad esempio, essendo il numero di particelle non fissato nell’ensemble GranCanonico, si inseriscono mosse di comparsa e di scomparsa di particelle. 2.2 Tecniche di ottimizzazione del Monte Carlo Ad ogni modo, in qualsiasi ensemble si stia lavorando, bisogna assicurarsi che il sistema simulato sia realistico; per fare ciò si devono prendere ulteriori accorgimenti. Come già detto tra le condizioni necessarie da verificare è che ogni punto nello spazio delle fasi sia raggiungibile da ogni altro in un numero di mosse comparabile con il numero di step Monte Carlo. Questo fattore deve essere tenuto sotto controllo perché può cambiare, ad esempio, in uno stesso sistema semplicemente al decrescere della temperatura; in questo caso, infatti, il fattore di Boltzmann aumenta e quindi la probabilità di accettare le mosse che aumentano l’energia diminuisce; conseguentemente diminuiscono i movimenti nello spazio delle fasi e il sistema smette, di fatto, di essere ergodico. Un’altra osservazione importante è quella sul numero di particelle da utilizzare. Per fare un esempio, una goccia d’acqua ha circa 2 · 1021 atomi di ossigeno e 4 · 1021 atomi di idrogeno, per un totale quindi di 6 · 1021 ∼ 1022 atomi. Mediamente, invece, il numero di particelle impiegate non supera le 104 , ci sarebbe quindi una differenza di circa 1018 ordini di grandezza che certamente renderebbe il sistema non realistico. In più, come già detto, si vorrebbero ricavare da tali sistemi delle quantità termodinamiche, e questo è possibile solo se viene fatto il limite termodinamico, quindi, per sistemi grandi a piacere. Alla luce di ciò, sembra evidente che non si possono ricavare delle quantità utili attraverso queste simulazioni, a meno che, non si trovi un modo per aumentare il numero di particelle o non si impongano delle condizioni al contorno tali da simulare un sistema infinito. É quindi molto importante, nella maggior parte dei casi, imporre delle condizioni al contorno periodiche in modo che idealmente il sistema si estenda oltre la scatola effettiva in cui avviene la simulazione e le particelle in esame si comportino come se facessero parte di un sistema più grande senza tener conto dell’interazione con le pareti rigide della scatola. CAPITOLO 2. METODO DI MONTE CARLO 19 In effetti questa tecnica è molto usata nelle simulazioni a meno che non si voglia guardare ad effetti dovuti proprio all’interazione con la scatola o comunque a caratteristiche che riguardano la finitezza del sistema, come gli effetti di superficie che in questo modo vengono attenuati rispetto a un sistema in cui vengono imposte condizioni al contorno omogenee. 2.2.1 Minimum image criterion Anche con questo accorgimento però pare chiaro che per avere dei sistemi realistici, spesso, è necessario avere un numero grande di particelle, il che significa calcolare un grande numero di interazioni che rallentano molto il calcolo. É quindi utile ottimizzare l’algoritmo utilizzando delle tecniche specifiche che sono in accordo con il tipo di sistema studiato. In particolare nel caso dei colloidi, una caratteristica importante che permette di diminuire notevolmente il carico di calcolo è che le interazioni sono a corto raggio. Ne segue che scegliendo la dimensione della scatola abbastanza grande rispetto al raggio di interazione, la particella i − esima interagirà solamente con la più vicina immagine della particella j − esima, quindi, sarà sufficiente individuare l’immagine della particella j più vicina ad i e calcolare solo questa interazione. Questa procedura è chiamata ‘minimum image criterion’ ed è molto importante perché, altrimenti, utilizzando le condizioni al contorno periodiche, ci si ritroverebbe a calcolare un numero infinito di interazioni. Un altro vantaggio che deriva dai potenziali a corto raggio, è legato al fatto che spesso, non tutte le particelle interagiscono tra loro, ossia, non è detto che l’interazione della particella i − esima con la più vicina immagine della particella j − esima sia rilevante; in questo caso diventa legittimo troncare i potenziali ed evitare il calcolo di quantità che comunque darebbero un contributo irrilevante. 2.2.2 Liste dei vicini e Linked Lists Anche troncando i potenziali, però, si devono comunque calcolare le distanze tra tutte le coppie di particelle ad ogni interazione, il che è abbastanza dispendioso di risorse perché vuol dire calcolare N 2 valori. Per evitare anche questo spreco, sono state sviluppate varie tecniche mirate a conoscere, data una particella, quali sono le particelle abbastanza vicine da interagire con essa, senza dover calcolare la sua distanza da tutte le altre. Tra queste ci sono il metodo della ‘lista dei vicini di Verlet’ e quello delle ‘linked lists’. Le particelle j che interagiscono con una certa particella i sono quelle che si trovano rispetto ad essa a una distanza minore o uguale alla distanza di taglio. Quando si usano le liste dei vicini, si salvano in memoria tutte le particelle che sono a una distanza minore della distanza di taglio da i più quelle che si trovano in una corona circolare subito adiacente. CAPITOLO 2. METODO DI MONTE CARLO (a) Celle bidimensionale suddivisa in M = 4 parti per ogni direzione, per un totale di M · M = 16 celle risultanti 20 (b) Esempio di funzionamento a catena delle linked lists Figura 2.1: Metodo della suddivisione in celle con linked lists in due dimensioni. Per fare ciò, inizialmente si calcolano tutte le distanze tra la particella i e le altre presenti, poi si stila una lista di particelle che si trovano in una certa sfera centrata su i e con raggio maggiore della distanza di taglio. In questo modo, quando si dovrà conoscere la nuova energia, si calcoleranno le interazioni solo con le particelle nella lista (se la loro distanza da i è minore della distanza di taglio). Solitamente, scegliendo un raggio della sfera abbastanza grande, i vicini di una particella non cambiano in una sola interazione, per cui, aggiornando la lista dei vicini saltuariamente, ad esempio ogni 10 − 20 step, si ottiene il guadagno di calcolo voluto. Al crescere del numero di particelle nel sistema simulato, il metodo della lista dei vicini perde la sua efficienza e diventa più conveniente utilizzare il metodo delle linked lists [1]. Questo, consiste nel dividere la scatola di simulazione in M parti per ogni lato, quindi in un certo numero intero M · M · M di celle più piccole, che però abbiano lato l = L/M maggiore della distanza di taglio; in seguito, per ognuna di esse si individuano le 26 celle prime vicine. Volendo fare un esempio in due dimensioni, facendo riferimento alla figura 2.1, come vicini della cella 6 saranno identificate le celle 1,2,3,5,7,9,10,11. In questo caso, a differenza di quanto avveniva con la lista dei vicini, una volta creata, la lista delle celle vicine, non deve essere aggiornata. Inoltre, a questo punto, se per ogni cella si crea una lista di molecole che ci sono dentro, cercare i vicini diventa un operazione molto veloce. Costruita la struttura a celle, per calcolare l’energia dovuta alle interazioni della particella i, si deve capire in che cubo si trova e calcolare le interazioni solo con le particelle j che si trovano nel suo stesso cubo o in uno dei 26 cubi vicini che sono già stati individuati all’inizio. Per un sistema tridimensionale, se ogni lato è diviso in M parti, in ogni CAPITOLO 2. METODO DI MONTE CARLO 21 cella ci sono Nc = N/M 3 particelle, per cui bisogna computare 27N Nc distanze, invece delle N 2 che toccherebbe analizzare se non si utilizzasse questo metodo; ovviamente, maggiore è M , maggiore è il guadagno, sempre con il vincolo che le celle siano grandi almeno come la distanza di taglio, per assicurare che non vengano trascurate interazioni rilevanti. Se si vuole utilizzare la struttura a celle attraverso le linked list, si deve collegare ogni particella alla sua cella di appartenenza. Questa operazione è molto rapida e può essere ripetuta ad ogni step. Le linked list sono strutture dati astratte ben note in informatica. La loro implementazione concreta può essere realizzata in molti modi diversi, anche in dipendenza dal linguaggio di programmazione utilizzato. In Fortran potrebbero essere realizzate mediante strutture dati definite dal programmatore e puntatori. In alternativa, a volte preferibile per ragioni di efficienza, si possono usare gli array. Qui si descrive brevemente l’implementazione mediante due array. Nel primo array, chiamato HEAD, viene salvato un elemento per ogni cella. Da ognuno degli elementi in HEAD si può risalire al numero di una delle particelle che appartiene alla cella a cui fa riferimento. Questo numero rimanda a un secondo array LIST che contiene il numero della seconda particella che appartiene a quella data cella. In questo array è salvata la lista di tutte le particelle, quelle corrispondenti alla cella in questione, vengono individuate a catena con un meccanismo come quello che si vede in figura 2.1, in cui ognuna rimanda alla sua successiva. Alla fine, si arriva a un elemento della lista che segnala che non ci sono altre particelle in quel cubetto, si ritorna, quindi, alla lista HEAD per proseguire con la cella successiva. In pratica l’ultima particella di una cella viene salvata nella componente dell’array HEAD corrispondente a questa cella. Nell’array LIST, in corrispondenza della particella salvata in HEAD, sarà salvato il numero della particella successiva, e in quella successiva il numero di quella dopo ancora, a catena fino ad arrivare allo zero che segnala la fine delle particelle nella cella. Per fare un esempio se le particelle 1,3 e 7 sono le uniche che si trovano nella cella 5, si avrà: HEAD(5)=7 LIST(7)=3 LIST(3)=1 LIST(1)=0 In questo modo si riescono ad ottimizzare i tempi, sia perché assegnare a ogni cella le particelle che vi sono dentro è un operazione molto veloce, sia perché volendo si potrebbe scegliere di non aggiornare le liste ad ogni step ipotizzando che movimenti rilevanti avvengano più lentamente. Inoltre si è visto che il tempo necessario per la simulazione, utilizzando le linked lists ma anche le liste dei vicini, tende a crescere linearmente piuttosto che quadraticamente (questo però, senza tener conto del tempo necessario a creare e manipolare le liste) [1]. Capitolo 3 Simulazioni effettuate Durante il lavoro di tesi si sono voluti ricreare dei risultati presenti in un articolo [4] che trattava colloidi con interazioni isotrope. Per fare ciò si è utilizzato un programma che implementa il metodo di Monte Carlo ed è basato su un potenziale isotropo a buca quadrata (equazione 1.2). 3.1 Struttura del programma Il programma utilizzato lavora nell’ensemble canonico quindi NVT fissati n e probabilità di accettazione ρρm = e−βVnm . Gli step Monte Carlo sono effettuati tentando la mossa di una particella per volta, poiché questo procedimento si rivela essere quello che porta a convergere al risultato finale nel minor tempo. Gli input necessari sono larghezza della buca attrattiva, densità e temperatura del sistema, numero di step e passo Monte Carlo. Inoltre è necessario avere un file in cui è salvata una configurazione di partenza. In questo caso si è ottenuto tramite un secondo programma fatto in modo da disporre le particelle in un reticolo cubico FCC. Si ottiene quindi un sistema ordinato costituito da un certo numero di cellette convenzionali con 4 particelle per celletta. Questa non è l’unica opzione possibile in quanto, come detto nel capitolo sul Monte Carlo, il risultato finale, se si riesce a simulare un sistema ergodico, dovrebbe essere indipendente dalla situazione iniziale. Il numero di celle, Nc , per ogni direzione è stato scelto inizialmente pari a 3 per cui il numero totale di particelle a disposizione è N = 4 · Nc3 = 108. In realtà si è visto che, aumentando la larghezza della buca di potenziale (λ = 2.0), 108 particelle risultavano essere troppo poche per avere dei risultati attendibili. In questi casi, essendo l’interazione più a lungo raggio, è necessario avere più particelle per ricreare un sistema realistico. Si è quindi scelto di ingrandire il sistema in modo che contenesse 500 particelle, il che equivale a inserire 5 celle per ogni direzione. 22 CAPITOLO 3. SIMULAZIONI EFFETTUATE 23 (a) Disposizione iniziale delle particelle in (b) Dopo una simulazione di 106 step Monte un reticolo FCC con 3 celle per direzione Carlo con potenziale a buca quadrata. Figura 3.1: Immagini ottenute con jmol. Per verificare che il numero di particelle fosse sufficiente si è provato ad aumentare il numero di celle per direzione fino ad 8 ( che equivale ad avere 2048 particelle) e si è visto che l’energia alla quale il sistema convergeva rimaneva invariata, il che fa pensare che i risultati ottenuti con 500 particelle non siano restrittivi ma corretti anche nel limite termodinamico. Da questo reticolo, un volta definita la larghezza della scatola e il diametro delle particelle σ, si procede attraverso i vari step Monte Carlo, verso la configurazione di equilibrio. Il calcolo è ottimizzato attraverso una subroutine in cui viene implementato il metodo delle linked lists, a cui si accennava nel capitolo riguardante il Metodo di Monte Carlo; inoltre, sempre per cercare di ottimizzare la convergenza, si è fatto attenzione a mantenere un rapporto di accettazione tra il 10% e il 30% (con rapporto di accettazione si intende il numero di mosse Monte Carlo accettate sul numero di tentativi totali). La quantità a cui si era interessati è l’energia media del sistema per particella U/N , che poi è stata confrontata con i valori ottenuti da Largo e Solana [4]. Nello specifico le energie sono state ricavate per quattro diverse larghezze della buca attrattiva e in ognuno dei quattro casi sono state scelte due o tre densità e due o tre temperature. Per poter confrontare i valori ottenuti con quelli dell’articolo, si è utilizzato un terzo programma che, dall’elaborazione dei valori di energia ottenuti per ogni step, fornisce una stima della deviazione standard. 3.2 Calcolo degli errori correlati Il calcolo della deviazione standard non è immediato in quanto i risultati dei vari step delle simulazioni Monte Carlo non si possono considerare indipendenti. Dal modo in cui sono costruiti, si vede infatti, che al contrario essi sono altamente correlati in quanto un punto può distare dal successivo al massimo dello spostamento δr scelto come spostamento massimo di una mossa Monte Carlo. CAPITOLO 3. SIMULAZIONI EFFETTUATE 24 Dal momento che da tutte le energie dei vari step Monte Carlo si ottiene un’energia media, si vorrebbe ricavare l’errore associato ad essa. Più in generale data una certa quantità media hAi si vorrebbe conoscere la sua varianza. Con hAi si intende hAi = 1 τX run τrun τ =1 A(τ ) (3.1) dove τrun è il numero di step totali compiuti. Se i singoli risultati A(τ ) fossero statisticamente indipendenti allora la varianza della media si potrebbe calcolare semplicemente come σ 2 (hAi) = σ 2 (A)/τrun (3.2) σ 2 (A) = hδA2 irun − hδAi2run (3.3) dove ed essendo il valore di aspettazione dell’errore uguale a zero, ossia hδAi2run = 0, si avrebbe 2 2 σ (A) = hδA irun = 1 τX run τrun τ =1 (A(τ ) − hAi)2 (3.4) Però, come detto, nel caso delle simulazioni Monte Carlo si ottengono valori correlati, quindi, per ottenere una varianza della media bisogna inserire nell’equazione 3.4 il tempo di correlazione, ossia il numero di step per il quale persiste questo legame tra i risultati. Supponendo di dividere il numero di step totale, τrun , in blocchi ognuno contenente 2τA configurazioni identiche, per τA grande questo corrisponde ad avere un tempo di correlazione τA per cui la varianza si può scrivere come [1] σ 2 (hAirun ) = 2τA · σ 2 (A)/τrun . (3.5) In generale però, prima di effettuare l’analisi dei risultati, non si conosce il tempo di correlazione. Si sceglie quindi di stimare il legame fra i vari step dividendo il numero di step totali in un certo numero di blocchi nb in modo tale che nb τb = τrun . Si calcola la media per ogni blocco hAib = τb 1 X A(τ ) τb τ =1 (3.6) che viene utilizzata per stimare la varianza sulla media dei blocchi σ 2 (hAib ) = run 1 τX (hAib − hAi)2 . nb τ =1 (3.7) CAPITOLO 3. SIMULAZIONI EFFETTUATE 25 Utilizzando la varianza dei blocchi si può calcolare, utilizzando la definizione di Friedberg e Cameron [1], l’inefficienza statistica s τb · σ 2 (hAib ) τb →∞ σ 2 (A) s = lim (3.8) questa quantità in pratica indica quante sono le misure successive correlate tra loro. A questo punto, dato che ogni s valori in media il sistema diventa scorrelato, si può calcolare la varianza utilizzando invece che i risultati di tutti gli step solamente un valore ogni s. In questo modo i valori dovrebbero essere scorrelati e si può utilizzare la formula per statistiche indipendenti. Altrimenti si può utilizzare s per correggere la varianza di eventi indipendenti come detto prima σ 2 (A) · s σ 2 (hAirun ) = . (3.9) τrun Il programma calcola la deviazione standard in entrambi i casi; si è notato che i valori risultanti non si discostavano molto tra loro, perciò nelle tabelle 3.1 sono stati messi solo quelli prodotti con il primo metodo. 3.3 Risultati I grafici di figura 3.3 presentano un riassunto dei risultati ottenuti. In ascissa sono riportati gli step Monte Carlo effettuati, in ordinata i valori di U/N . Nel primo grafico 3.3(a) si vede un tipico andamento di una simulazione Monte Carlo, che dalla configurazione iniziale raggiunge l’equilibrio. Per il calcolo delle quantità d’interesse, tuttavia, non sono stati utilizzati i run di equilibrazione, ma solamente dati acquisiti una volta che il sistema era già stabilizzato, come si può notare guardando i grafici 3.3(b),(c),(d). Per assicurarsi che la configurazione finale corrispondesse realmente al minimo dell’energia, a partire dal reticolo FCC sono state effettuate alcune simulazioni successive, ognuna delle quali aveva come file di input la configurazione finale del run precedente. Questa procedura veniva ripetuta fino ad avere una statistica abbastanza grande per poter confermare che il sistema si fosse stabilizzato in un minimo dell’energia. Il grafico 3.3 (b) mostra come cambia l’energia al variare di λ a fissate densità e temperatura. L’energia più alta, come ci si aspettava, è quella relativa alla buca più stretta (λ = 1.1), mentre all’aumentare di λ si creano più legami quindi l’energia diminuisce. Gli ultimi due grafici mostrano i valori delle energie all’equilibrio per diverse temperature. Nel primo caso (grafico 3.3(c)) sia la densità che la larghezza della buca sono fissate, invece nel secondo (grafico 3.3(d)) sono riportati i valori per diverse densità, sempre con λ fissata. I risultati ottenuti sono riportati nelle tabelle 3.1. Si può notare come le energie medie (ottenute tutte a partire da 106 valori) siano tutte compatibili con quelle riportate nell’articolo con cui sono confrontate. Nelle tabelle CAPITOLO 3. SIMULAZIONI EFFETTUATE 26 Figura 3.2: Curve di coesistenza liquido-vapore per potenziali a square-well al variare delle larghezza della buca [6]. sono anche riportati i valori di hzi il numero di coordinazione. Presa una particella, il numero di coordinazione è stato definito come il numero di particelle che si trovano all’interno della buca attrattiva formata dalla particella. Quindi si è ricavato, sfruttando il valore costante dell’energia della buca, come 2 hzi = hU ∗ i (3.10) N dove con U ∗ si intende che l’energia è calcolata in unità di . Nel caso dei liquidi infatti c’è una certa libertà nel definire il numero di coordinazione dato che le strutture che si formano non sono ordinate. Si può notare che con questa scelta, nei casi di λ = 2.0 il numero di coordinazione medio arriva fino quasi a 23 particelle; infatti, con la definizione di z utilizzata, per larghezze della buca grandi, spesso le particelle che si trovano nella buca attrattiva non sono solo i primi vicini. Inoltre dai valori di hzi si può notare che per buche larghe anche nel caso di gas (ρ = 0.1) il numero di coordinazione è abbastanza alto (' 4). Per capire se il sistema studiato è un liquido o un gas si può fare riferimento ai dati riportati in figura 3.2 dove si vedono le curve di coesistenza liquido-vapore. Tutti i sistemi studiati si trovano verosimilmente al di sopra delle curve di coesistenza Per il caso λ = 1.1 si osservano forti fluttuazioni su larga scala, come si può vedere dai grafici 3.4 e dalla tabella 3.3, quindi non si può utilizzare una media su 106 , come fatto in precedenza, perchè si avrebbero risultati diversi in run diversi. Come ci si aspettava, sono state quindi riscontrate delle difficoltà nei casi di buca stretta e temperature basse che non si avevano nelle altre condizioni. La differenza tra le fluttuazioni di energia presenti in questo sistema e quelle presenti in sistemi a temperatura più alta o buca più larga è evidenziata dai grafici 3.4. Guardando queste figure si nota che i due grafici nella parte superiore (3.4(a) e (b)), che rappresentano il caso di λ = 1.1 e T ∗ = 0.5, hanno un CAPITOLO 3. SIMULAZIONI EFFETTUATE 0 27 0 'energia.dat' u 1:2 -0.2 -0.5 -0.4 -0.6 -1 lambda=1.1 lambda=1.2 lambda=1.5 lambda=2.0 U/N -0.8 -1.5 -1 -1.2 -2 -1.4 -2.5 -1.6 0 1000 2000 3000 4000 5000 6000 7000 8000 9000 0 0.1 0.2 0.3 0.4 10000 0.5 0.6 0.7 0.8 0.9 1 n step [x10^6] U/N (a) Tipico andamento di una simulazione (b) Energie del sistema per ρ = 0.1, T = Monte Carlo in cui si ha l’energia in funzione 3.0 al variare della larghezza della buca. degli step. 0 -1 -0.1 -2 -0.2 -3 -0.3 -4 -0.4 -5 -0.5 -6 -0.6 -7 -8 -0.7 rho=0.1 rho=0.1 rho=0.6 rho=0.6 rho=0.7 rho=0.7 -9 -0.8 T=3.0 T=1.0 T=0.7 -0.9 -1 T=3.0, T=5.0, T=3.0, T=5.0, T=3.0, T=5.0, 0 0.1 0.2 0.3 0.4 0.5 0.6 n step [x10^6] 0.7 0.8 -10 -11 0.9 1 -12 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 (c) Energie del sistema per ρ = 0.1, λ = (d) Energie relative a λ = 2.0, ogni energia 1, 2 al variare della Temperatura. è individuata tramite i valori di densità e di temperatura corrispondenti. Figura 3.3: Grafici dei risultati ottenuti. Le grandezze sono calcolate in unità ridotte quindi T ∗ = kB T /, ρ∗ = ρσ 3 , U ∗ = U/. andamento molto più irregolare di quelli nella parte inferiore (3.4(c) e (d)) dove le fluttuazioni su larga scala sono uguali a quelle su piccola scala. CAPITOLO 3. SIMULAZIONI EFFETTUATE 28 λ = 1.1 ρ∗ 0.1 0.8 T ∗ = 0.7 −U/N σU/N 0.2876 0.0012 0.29 2.550 0.009 2.54 hzi 0.57 5.12 T ∗ = 1.0 −U/N σU/N 0.1946 0.0015 0.19 2.281 0.004 2.28 hzi 0.39 4.55 T ∗ = 3.0 −U/N σU/N 0.1060 0.0005 0.11 1.890 0.006 1.89 hzi 0.21 3.77 λ = 1.2 ρ∗ 0.1 0.8 T ∗ = 0.7 −U/N σU/N 0.6166 0.0065 0.62 3.6789 0.0091 3.68 hzi 1.24 7.37 T ∗ = 1.0 −U/N σU/N 0.3999 0.0010 0.40 3.4269 0.0045 3.43 hzi 0.81 6.86 T ∗ = 3.0 −U/N σU/N 0.2257 0.0005 0.23 3.0873 0.0033 3.09 hzi 0.45 6.18 λ = 1.5 ρ∗ 0.1 0.7 T ∗ = 1.5 −U/N σU/N hzi 0.9195 0.0027 1.84 0.92 5.284 0.004 10.55 5.28 T ∗ = 3.0 −U/N σU/N hzi 0.6827 0.0015 1.37 0.69 5.082 0.003 10.15 5.08 λ = 2.0 ρ∗ 0.1 0.6 0.7 T ∗ = 3.0 −U/N σU/N hzi 1.9654 0.0067 3.91 1.96 9.753 0.006 19.54 9.75 11.353 0.007 22.68 11.35 T ∗ = 5.0 −U/N σU/N hzi 1.7220 0.0034 3.45 1.72 9.579 0.004 19.15 9.58 11.151 0.007 22.28 11.16 Tabella 3.1: Nella prima riga per ogni densità sono riportati i risultati ottenuti dalle simulazioni con i relativi errori, nella seconda riga ci sono i valori dell’articolo di Largo e Solana [4]. Le grandezze sono calcolate in unità ridotte quindi T ∗ = kB T /, ρ∗ = ρσ 3 , U ∗ = U/. CAPITOLO 3. SIMULAZIONI EFFETTUATE -2.8 -2.85 Energia per step -2.85 -2.9 -2.9 -2.95 -2.95 -3 -3 -3.05 -3.05 -3.1 -3.1 0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 -3.15 (a) λ = 1.1, T = 0.5 primo run. U/N -1.75 Energia per step 0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 (b) λ = 1.1, T = 0.5 secondo run. -2.95 Energia per step -1.8 -3 -1.85 -3.05 -1.9 Energia per step -3.1 -1.95 -3.15 -2 -2.05 29 -3.2 0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 n step [x10^6] (c) λ = 1.1, T = 3.0. -3.25 0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 (d) λ = 1.2, T = 3.0. Figura 3.4: Confronto tra l’equilibrazione delle energia nei casi di temperature alte e basse a densità ρ = 0.8. I grafici sono fatti a partire da run di 5 · 106 step. λ = 1.1, T ∗ = 0.5, ρ∗ = 0.8 n. passi 5 · 106 (primo run) 5 · 106 (secondo run) −U/N 2.973 3.005 σU/N 0.008 0.009 Tabella 3.2: Tabelle con i risultati del caso λ = 1.1, T ∗ = 0.5, ρ∗ = 0.8. Si vede che i valori ottenuti non sono compatibili tra loro entro un sigma. Capitolo 4 Conclusioni Con questo lavoro di tesi ci si è focalizzati sullo studio di una piccola parte della letteratura recente sui colloidi. Ci si è concentrati sulle caratteristiche che li rendono interessanti nel campo della ricerca e sulle applicazioni, in particolare quelle legate alle strutture autoassemblanti. In particolare nella prima parte ci si è interessati ai colloidi con interazioni anisotrope; a come possono essere creati in laboratorio e soprattutto a come possono essere modellizzati e con quale grado di realisticità. Sono state quindi studiate le tecniche di base che permettono di fare simulazioni in questo campo, ossia dinamica molecolare e Monte Carlo. Particolare attenzione si è riservata al Monte Carlo di Metropolis e all’analisi statistica dei dati delle simulazioni (in particolare ricavare gli errori di misure correlate). Si sono poi studiati alcuni metodi per migliorare l’efficienza degli algoritmi in cui si utilizzano tante particelle soffermandosi sul metodo delle ‘linked lists’. Si è proceduto mettendo in pratica parte di quanto appreso effettuando delle simulazioni Monte Carlo nell’ensemble N V T . In particolare ci si è posti il problema dell’effetto di variare l’estensione della regione attrattiva del potenziale. Siccome le problematiche relative a potenziali a range molto corto non dipendono in modo importante dall’anisotropia [7] ci si è messi nella condizione più semplice (potenziali isotropi a square-well). I risultati numerici per temperature supercritiche sono in ottimo accordo con i risultati in letteratura [4]. É stato verificato l’aumento delle fluttuazioni dell’energia per il caso di range corto (λ = 1.1) e temperature basse (T ∗ = 0.5) e la conseguente necessità di prolungare i run di simulazione aumentando il numero di passi anche di un ordine di grandezza. Ci si aspetta che questo comportamento valga anche per il caso anisotropo. 30 Bibliografia [1] M.P. Allen, D.J. Tildesley, Computer simulation of liquids, (Oxford University press, New York, 1991) [2] N. Kern, D. Frenkel, J. Chem. Phys. 118, No. 21, 9882 (2003) [3] J. Zhang, E. Luijten, S. Granick, Annu. Rev. Phys. Chem. 66, 581 (2015) [4] J. Largo and J.R. Solana, Phys. Rev. E 67, 066112 (2003) [5] E. Bianchi, R. Blaak, C, N. Likos, Phys. Chem. Chem. Phys. 13 , 6397 (2011) [6] D. M. Heyes and P. J. Aston, J. Chem. Phys. 97, No. 8, 5738 (1992) [7] Y.Duda, J. Chem. Phys. 130, 116101 (2009) 31