Bepaling energie en soortelijke warmte 2D-atoomrooster m.b.v. de Metropolis Monte Carlo methode



Vergelijkbare documenten
Inleiding MATLAB (2) november 2001

Uitwerking tentamen Analyse van Algoritmen, 29 januari

Informatica: C# WPO 10

TECHNISCHE UNIVERSITEIT EINDHOVEN. Tentamen OGO Fysisch Experimenteren voor minor AP (3MN10) Tentamen Inleiding Experimentele Fysica (3AA10)

PROS1E1 Gestructureerd programmeren in C Dd/Kf/Bd

Monte-Carlo simulatie voor financiële optieprijzen Studiepunten : 2

4.1 Negatieve getallen vermenigvuldigen [1]

Informatica: C# WPO 13

extra oefening algoritmiek - antwoorden

Bij het oplossen van een telprobleem zijn de volgende 2 dingen belangrijk: Is de volgorde van de gekozen dingen van belang?

Batch factureren Auteur : Reint Endendijk Versie : 1.0 Datum : 1 December 2012

Bepaalde Integraal (Training) Wat reken je uit als je een functie integreert

Hoofdstuk 21: Gegevens samenvatten

1 Rekenen met gehele getallen

Eindexamen wiskunde B1 vwo 2006-II

Algoritmen en programmeren: deel 2 - basis

De bisectie methode uitgelegd met een makkelijk voorbeeld

Uitwerkingen Rekenen met cijfers en letters

Hoofdstuk 2: Grafieken en formules

1.0 Voorkennis. Voorbeeld 1: Los op: 6x + 28 = 30 10x.

Lights Out. 1 Inleiding

Zoemzinnen. Algemene info. Functies met een variabel aantal argumenten

10 Materie en warmte. Onderwerpen. 3.2 Temperatuur en warmte.

Modelleren van roosterwensen

Informatica: C# WPO 12

Opdracht 2. Deadline maandag 28 september 2015, 24:00 uur.

Opdracht 3: Baanintegratie: Planeet in een dubbelstersysteem

IVF temperatuurregeling incubator

Java Les 3 Theorie Herhaal structuren

Vakgroep CW KAHO Sint-Lieven

Machten, exponenten en logaritmen

VBA voor Doe het Zelvers deel 20

Functie beschrijving: Het automatisch aanmaken van een raai-volgende contour

Het opstellen van een lineaire formule.

Examen VWO. wiskunde B1

De statespace van Small World Networks

Deel 1. Basiskennis wiskunde

Proef Natuurkunde Warmteafgifte weerstand

Propositielogica Het maken van een waarheidstabel

VBA voor doe het Zelvers deel 22. Handleiding van Helpmij.nl. Auteur: leofact

Eindexamen wiskunde B1-2 vwo 2006-II

Hoofdstuk 3. Matrices en stelsels. 3.1 Matrices. [[1,7]],[[12,8] ] of [ 1, 7; 12,8 ] bepaalt de matrix

Informatica: C# WPO 5

Onafhankelijke verzamelingen en Gewogen Oplossingen, door Donald E. Knuth, The Art of Computer Programming, Volume 4, Combinatorial Algorithms

Statistiek voor Natuurkunde Opgavenserie 1: Kansrekening

II. ZELFGEDEFINIEERDE FUNCTIES

Negende college algoritmiek. 15 april Dynamisch Programmeren

Score. Zelfevaluatie. Beoordeling door de leerkracht. Datum: Klas: Nr: Naam:

Eindexamen wiskunde B 1 havo I

Het leek ons wel een interessante opdracht, een uitdaging en een leuke aanvulling bij het hoofdstuk.

Opgave 1 - Uitwerking

Uitwerking tentamen Algoritmiek 9 juli :00 13:00

Nu een leuk stukje wiskunde ter vermaak (hoop ik dan maar). Optellen van oneindig veel getallen

Moleculaire Dynamica en Monte Carlo Simulaties Case Study 17 Solid-Liquid Equilibrium of Hard Spheres. Joost van Bruggen juli 2004

Project: Kennisdocument Onderwerp: p90 Datum: 23 november 2009 Referentie: p90 onzekerheid Wat betekent de p90 (on)zekerheid?

leeftijd kwelder (in jaren)

Kosten. Computationale Intelligentie. Een zoekprobleem met stapkosten. Een voorbeeld: het vinden van een route. Zoeken met kosten.

IJkingstoets Wiskunde-Informatica-Fysica september 2018: algemene feedback

wiskunde A pilot havo 2016-II

Antwoorden. Magische vierkanten Vierkant voor Wiskunde Doeboek 8

Afbeelding 12-1: Een voorbeeld van een schaakbord met een zwart paard op a4 en een wit paard op e6.

Wiskunde D assignment problem. Hier stonden ooit namen

Het modelleren van een onvolkomen put met een meerlagenmodel

10. Controleopdrachten

Tentamen numerieke analyse van continua I

Kansrekening en Statistiek

1.3 Rekenen met pijlen

Kunstrijden op de schaats

Een eenvoudig algoritme om permutaties te genereren

UITWERKING. Thermodynamica en Statistische Fysica (TN ) 3 april 2007

Feedback proefexamen Statistiek I

Maak zelf een algoritme wanneer je een auto kunt winnen en welke auto je wint.

1.1 Tweedegraadsvergelijkingen [1]

T.A. Horsmeier. Hoeken en kromming. In genormeerde ruimten zonder inprodukt. Bachelorscriptie, 25 augustus 2009

Een spoedcursus python

Normering en schaallengte

TRILLINGEN EN GOLVEN HANDOUT FOURIER

1.0 Voorkennis. Voorbeeld 1: Los op: 6x + 28 = 30 10x.

Opgave 1 Vervormd vierkant kristal en elektronische structuur (totaal 24 punten)

13 Zonnestelsel en heelal

Modelleren C Appels. Christian Vleugels Sander Verkerk Richard Both. 2 april Inleiding 2. 3 Data 3. 4 Aanpak 3

Inleiding 8

Netwerkdiagram voor een project. AOA: Activities On Arrows - activiteiten op de pijlen.

Leren Programmeren met Visual Basic 6.0 Les 3+4. Hoofdstuk 4 : De Selectie

Divide & Conquer: Verdeel en Heers vervolg. Algoritmiek

Examen HAVO. wiskunde B. tijdvak 1 woensdag 14 mei uur

3. Stelsels van vergelijkingen

Wetenschappelijk Rekenen

Efficientie in de ruimte - leerlingmateriaal

Antwoordmodel - Kwadraten en wortels

Materialen in de elektronica Verslag Practicum 1

INFORMATICA 1STE BACHELOR IN DE INGENIEURSWETENSCAPPEN

NATUURKUNDE OLYMPIADE EINDRONDE 2013 PRAKTIKUMTOETS

Uitleg van de Hough transformatie

d. Met de dy/dx knop vind je dat op tijdstip t =2π 6,28 het water daalt met snelheid van 0,55 m/uur. Dat is hetzelfde als 0,917 cm per minuut.

Eindexamen wiskunde A1-2 compex vwo I

Praktische opdracht Wiskunde som van de ogen van drie dobbelstenen

Foutenberekeningen. Inhoudsopgave

Grafieken van veeltermfuncties

Sum of Us 2014: Topologische oppervlakken

Transcriptie:

Bepaling energie en soortelijke warmte 2D-atoomrooster m.b.v. de Metropolis Monte Carlo methode Verslag Computational Physics Sietze van Buuren Begeleider: Prof.Dr. H. de Raedt 29 december 25 Samenvatting Gepoogd is de energie en de soortelijke warmte van een 2D atoomrooster, dat voor de helft of een kwart is gevuld met atomen, uit te rekenen. Bij kleine atoomroosters kan dit vrij gemakkelijk handmatig of met de computer exact worden uitgerek. Bij grote roosters wordt er gebruik gemaakt van de Metropolis Monte Carlo methode (MMC-methode), aangezien het aantal configuraties te groot is voor numerieke optelling. 1

Inhoudsopgave 1 Inleiding 3 2 Theorie 3 3 Handmatige bepaling 4 4 Geautomatiseerde numerieke optelling 5 5 Metropolis Monte Carlo methode 6 Conclusie 9 Dankwoord 9 A Numerieke optelling 1 B MMC-methode 11 C Additionele grafieken 13 C.1 Numerieke optelling........................ 13 C.2 MMC-methode.......................... 14 2

1 Inleiding Bij het vak computational physics krijgt iedere student een opdracht toegewezen m.b.t. tot dit vakgebied. In dit verslag is beschreven hoe van een tweedimensionaal atoomrooster de energie en de soortelijke warmte kunnen worden bepaald als functie van de temperatuur. Bij de exacte bepaling van deze waarden is het nodig om alle roosterconfiguraties te bepalen en door te rekenen. Voor een rooster van 2 2 atomen (dat voor de helft gevuld is met atomen) is het aantal configuraties (6) zo klein dat het mogelijk is om deze met de hand door te rekenen. Voor een rooster van 4 4 atomen moet het aantal configuraties (128) door worden gerek m.b.v. een computer. Bij een rooster van 8 8 atomen is het aantal configuraties (1, 83 1 18 ) zo groot dat het praktisch onmogelijk is om met de computer al deze combinaties na te rekenen. Hiervoor wordt de MMC-methode gebruikt om de energie en soortelijke warmte te benaderen. 2 Theorie Het rooster wordt als volgt voorgesteld. Het gaat om een tweedimenstionaal rooster van L L atomen. We definiëren twee soorten atomen in dit rooster: Type A op plaats i: N i = 1 Type B op plaats i: N i = Voor het gemak zal worden aangenomen dat type A een atoom is en type B een lege plek. Elke atoom heeft vier buren: boven, rechts, onder en links. Als een atoom zich op de rand van het rooster bevindt dan is het misse buuratoom het atoom aan andere kant van het rooster. Dus N i±lêx = N i±lêy = N i (1) De energie van een roosterconfiguratie wordt bepaald door de som te nemen van N i N j over diens buuratomen (N j ). Vervolgens wordt er gesommeerd over de atomen in het rooster (N i ). De energie van één roosterconfiguratie k is dus: E k = J N i N j = J N i N j (2) i j i,j De letter J houdt verband met de constante van Boltzmann, welke voor het gemak in deze opdracht op één is gesteld. 3

Om nu de totale energie U uit te rekenen van een atoomrooster moeten alle E k worden bepaald en in gevuld worden in: U = 1 L 2 E k e βe k k e βe k Hier is β gedefiniëerd als β 1 T. De soortelijke warmte C wordt bepaald met: 3 Handmatige bepaling k k (3) Eke 2 βe k C = β2 k L 2 L 2 U 2 e βe k (4) Voor een 2 2 rooster kunnen betrekking (3) en (4) met de hand worden bepaald. Net zoals als bij het 4 4 en het 8 8 rooster zal dit worden gedaan voor i N i = L 2 /n, waarbij n = 2, 4. Bij een 2 2 zijn dit respectievelijk 1 en 2 voor n = 4 en n = 2. Met één plek bezet (dus n = 4) kunnen vier combinaties worden gemaakt: 1 2 3 4 Voor elke configuratie als n = 4 is de energie nul, aangezien het enige atoom nooit een naburig atoom heeft. Daarom is U = en ook C =. Voor n = 2 is het echter wat interessanter: 1 2 3 4 5 6 4

Als we voor elke configuratie (2) uitrekenen, zien we dat E 1 = E 2 = E 3 = E 4 = 4J en E 5 = E 6 =. Worden deze waarden ingevuld in (3) en (4) dan krijgen we hiervoor respectievleijk de functies: en U = 2Je 4βJ 2e 4βJ + 1 ( 8e C = β 2 4βJ 2e 4βJ + 1 4J 2 e 4βJ ) (2e 4βJ + 1) 2 Rekenen we deze waardan uit als functie van de tijd, dan krijgen we de energie en de soortelijke warmte te zien. Zie figuur 1. (5) (6).45.25.4.35.2 Energie.3.25.2.15.15.1.1.5.5 Figuur 1: De energie en de soortelijke warmte van een 2 2 rooster als n = 2. 4 Geautomatiseerde numerieke optelling Bij een 4 4 rooster is handmatig alle configuraties uitrekenen praktisch onmogelijk. Daarom is hier een computerprogramma voor geschreven. Dit computerprogramma bepaalt eerste alle mogelijke configuraties. Daarna rekent het programma per configuratie (2) uit voor een gegeven temperatuur 5

en kan zo (3) en (4) bepalen voor deze temperatuur. Het programma is geschreven in Matlab. Eerste genereert het programma alle mogelijk configuraties die er zijn: k = 1; for i = 1:2^(L^2) N = rem(floor(i * pow2(1-l^2:)),2); if sum(n) == L^2/no M(k,:) = N; k = k + 1; Dan rekent het van elke configuratie de energie (2) uit. for i = 1:L for j = 1:L U = U + N(i,j).* (N(mod(i, L) + 1, j) + N(mod(i - 2, L) + 1, j) + N(i, mod(j, L) + 1) + N(i, mod(j - 2, L) + 1)); Hierna bepaalt het programma betrekking (3) en (4). for i = 1:combs E = energ(m(i,:), L); U1 = U1 + E*exp(-E./T); U2 = U2 + exp(-e./t); U3 = U3 + E.^2*exp(-E./T); U = 1/L^2.*U1./U2; C = (1./(L*T)).^2.*(U3./U2 - L^2*U.^2); De volledige code van het programma valt te vinden in appix A. De energie en soortelijke warmte van een 4 4 rooster, en n = 2, staan in figuur 2. De uitkomst voor n = 4 is terug te vinden in appix C. Zoals te zien is, is figuur 2 redelijk analoog aan de gegevens van figuur 1 op pagina. 6

Energie.9.8..6.5.4.3.2.1 1.8 1.6 1.4 1.2 1.8.6.4.2 Figuur 2: De energie en de soortelijke warmte van een 4 4 rooster als n = 2. 5 Metropolis Monte Carlo methode Omdat het aantal configuraties bij een 8 8 rooster te groot wordt, is de MMC-methode gebruikt om gunstige configuraties te kiezen. Dit gebeurt op de volge wijze. Eerst wordt een willekeurige configuratie gegenereerd, waarna deze met een willekeurig kleine gewijzigde configuratie wordt vergeleken. Is de energie van de nieuwe configuratie lager dan de oude, dan wordt de nieuwe configuratie onmiddelijk aangenomen en opgeteld bij de som E = 1 M k E k (waarbij M het aantal gegenereerde configuraties is). Als de energie hoger is dan wordt gekeken of er wordt voldaan aan e E/kT r, waarbij r een random getal is in het interval [, 1]. Is dit zo dan wordt alsnog de nieuwe configuratie meegenomen in de eerder genoemde som, maar als dit niet zo is dan wordt de oude configuratie meegenomen in deze som. Hierna begint het proces opnieuw en wordt het net zo vaak herhaald als is aangegeven. In Matlab ziet dit er ongeveer zo uit: for i = 1:p s = round((l^2-2)*rand(1) + 1); g = round(rand(1)*(s - 1) + 1);

h = round((l^2 - s - 1)*rand(1) + s + 1); [Nj, Ej] = intenerg(n, E, g, h, L, s); if Ej < E U1 = U1 + Ej; U2 = U2 + Ej^2; E = Ej; N = Nj; elseif exp(-(ej - E)/T) >= rand(1) U1 = U1 + Ej; U2 = U2 + Ej^2; E = Ej; N = Nj; else U1 = U1 + E; U2 = U2 + E^2; U = U1/(p*L^2); C = (1./(L*T)).^2.*(U2/p - L.^2.*U.^2); De volledige code van het MMC-algoritme valt terug te vinden in appix B..45.4 Exact MMC.25 Exact MMC.35.2 Energie.3.25.2.15.15.1.1.5.5 Figuur 3: De MMC-methode vergeleken met de exacte resultaten bij een 2 2 rooster als n = 2. De resultaten van de MMC-methode worden met eerdere data van het 2 2 en het 4 4 rooster vergeleken. Dit is te zien in figuur 3 en 4. In beide 8

figuren is n = 2, de grafiek voor n = 4 is terug te vinden in appix C..9.8 Exact MMC 4 3.5 Exact MMC. 3 Energie.6.5.4.3.2.1 2.5 2 1.5 1.5 Figuur 4: De MMC-methode vergeleken met de exacte resultaten bij een 4 4 rooster als n = 2. In figuur 3 en 4 benaderen de laagste temperaturen de uitkomsten van de MMC-methode slecht. Dit is altijd het geval en dit heeft waarschijnlijk te maken met de acceptatiefactor e E/kT, welke temperatuurafhankelijk is. Hetzelfde effect doet zich voor bij het 8 8 rooster, zoals te zien is in figuur 5 op pagina 1. Voor de overige temperaturen komen de benaderingen in figuur 3 en 4 van de MMC-methode redelijk tot goed overeen met de exacte waarden. 6 Conclusie De conclusie die kan worden getrokken is dat de MMC-methode een goede methode is om de energie en de soortelijk warmte van atoomroosters te bepalen. Echter voor erg lage temperaturen, werkt de methode niet goed. Dankwoord Graag zou ik Prof.Dr. H. De Raedt willen bedanken voor de assistentie bij dit vak. 9

.9 25.8. 2 Energie.6.5.4.3 15 1.2.1 5 Figuur 5: De resultaten van de MMC-methode bij een 8 8 rooster als n = 2. Appices A Numerieke optelling function [U, C] = enercon(l, no, T) % Matlab functie Computational Physics % Functie voor het exact bepalen van de energie en soortelijke warmte van % een rooster met een gegeven aantal atomen. % U Energie van alle roosterconfiguraties % C van alle roosterconfiguraties % N Roostersamenstelling (matrix) % L Formaat rooster % T % no bepaalt hoeveelheid atomen, hoeveelheid = L^2/no, no = 2, 4 %Initialisatie U1 = ; U2 = ; U3 = ; k = 1; %Hoeveelheid configuraties combs = nchoosek(l^2,l^2/no); %Genereer matrix (veel te langzaam) for i = 1:2^(L^2) N = rem(floor(i * pow2(1-l^2:)),2); if sum(n) == L^2/no M(k,:) = N; k = k + 1; 1

%Reken energien uit for i = 1:combs E = energ(m(i,:), L); U1 = U1 + E*exp(-E./T); U2 = U2 + exp(-e./t); U3 = U3 + E.^2*exp(-E./T); %Bepaling Energie en U = 1/L^2.*U1./U2; C = (1./(L*T)).^2.*(U3./U2 - L^2*U.^2); %. function U = energ(n, L) % ------------------------------------------------------------------------- % Matlab functie Computational Physics % Metropolis Monte Carlo: Energie van een 2D-kristalrooster % Functie voor de energie van n roostercombinatie % ------------------------------------------------------------------------- % U Energie v/e rooster % N Roostersamenstelling (matrix) % L Formaat rooster % beta 1/ % ------------------------------------------------------------------------- % Declaratie U = ; N = sparse(mod([1:l^2]-1,l) + 1, floor(1:1/l:l+1-1/l), N, L, L); %Bepaling energie for i = 1:L for j = 1:L U = U + N(i,j).* (N(mod(i, L) + 1, j) + N(mod(i - 2, L) + 1, j) + N(i, mod(j, L) + 1) + N(i, mod(j - 2, L) + 1)); B MMC-methode function [U, C] = moncar(l, no, T, p) % Matlab functie Computational Physics % Metropolis Monte Carlo: Energie van een 2D-kristalrooster % Functie voor het bepalen van een schatting van de energie en soortelijke % warmte van een rooster met een gegeven aantal atomen. % U Energie van alle roosterconfiguraties % C van alle roosterconfiguraties % L Formaat rooster % no bepaalt hoeveelheid atomen, hoeveelheid = L^2/no, no = 2, 4 % T % p Aantal iteraties % s Snijpunt roosterverdeling s = L^2/no; %Initialisatie N = floor(((1-1/(l^2)):-1/(l^2):)/(1-1/no)); E = energ(n, L); U1 = E; U2 = E^2; 11

%Metropolis Monte Carlo Methode for i = 1:p g = round(rand(1)*(s - 1) + 1); h = round((l^2 - s - 1)*rand(1) + s + 1); [Nj, Ej] = intenerg(n, E, g, h, L, s); if Ej < E U1 = U1 + Ej; U2 = U2 + Ej^2; E = Ej; N = Nj; elseif exp(-(ej - E)/T) >= rand(1) U1 = U1 + Ej; U2 = U2 + Ej^2; E = Ej; N = Nj; else U1 = U1 + E; U2 = U2 + E^2; U = U1/(p*L^2); C = (1./(L*T)).^2.*(U2/p - L.^2.*U.^2); function [Nj, Ej] = intenerg(n, E, i, j, L, s) % Matlab functie Computational Physics % Metropolis Monte Carlo: Energie van een 2D-kristalrooster % Functie voor het random omwisselen van twee atomen in een atoomrooster. % Het het bereken van de energie adhv van de vorige configuratie % N Roostersamenstelling (matrix) % E Energie rooster N % Nj Gewijzigde rooster % Ej Energie van het gewijzigde rooster % L Lengte array %Bepaling trivialiteiten k = L^2; %Omwisseling Nj = N; Nj(i) = N(j); Nj(j) = N(i); %Bepaling Ej M = sparse(mod([1:l^2]-1,l) + 1, floor(1:1/l:l+1-1/l), N, L, L); Mj = sparse(mod([1:l^2]-1,l) + 1, floor(1:1/l:l+1-1/l), Nj, L, L); p = mod(i - 1, L) + 1; q = floor((i - 1)/L + 1); v = mod(j - 1, L) + 1; w = floor((j - 1)/L + 1); Ej = E + 2*( (Nj(i) - Nj(j))*(M(mod(p, L) + 1, q) + M(mod(p - 2, L) + 1, q) + M(p, mod(q, L) + 1) + M(p, mod(q - 2, L) + 1)) + (Nj(j) - Nj(i))*(Mj(mod(v, L) + 1, w) + Mj(mod(v - 2, L) + 1, w) + Mj(v, mod(w, L) + 1) + Mj(v, mod(w - 2, L) + 1))); 12

C Additionele grafieken C.1 Numerieke optelling.16.12.14.1.12 Energie.1.8.6.8.6.4.4.2.2 Figuur 6: De energie en de soortelijke warmte van een 4 4 rooster als n = 4. 13

C.2 MMC-methode.16.14 Exact MMC.12.1 Exact MMC.12 Energie.1.8.6.8.6.4.4.2.2 Figuur : De MMC-methode vergeleken met de exacte resultaten bij een 4 4 rooster als n = 4. Energie.18.16.14.12.1.8.6.4.2.4.35.3.25.2.15.1.5 Figuur 8: De resultaten van de MMC-methode bij een 8 8 rooster als n = 4. 14