Hoppa till huvudinnehållet
Institutionen för informationsteknologi

Simulering av kemiska processer

Inledning

Simulering av kemiska processer kan göras på olika sätt. Ett av sätten är att utgå från Schrödingerekvationen och göra en så kallad kvantmekanisk simulering. Denna typ av simulering lämpar sig bra för att studera enstaka atomer eller molekyler i detalj. Det kan till exempel röra sig om bindningarnas egenskaper. Det här projektet har handlat om att implementera en variant av en lösare för Schrödingerekvationen anpassad för parallelldatorer.

Kvantmekaniska simuleringar har tendensen att bli väldigt minneskrävande, även då endast ett litet antal partiklar simuleras. Av denna anledning utförs dessa simuleringar bäst på stora datorkluster med mycket internminne. I vårt fall har vi använt en del av Uppsala Universitets datorkluster Osiris, med 80 GB internminne.

simMorse1D_50dpi.png

Teori

Vid en kvantmekanisk simulering används systemets vågfunktion (som betecknas av den grekiska bokstaven psi) för att beskriva systemet. Vågfunktionen uppfyller den så kallade Schrödingerekvationen. Denna ekvation är hjärtat i vårt simuleringsprogram.

schrodinger.png

I Schrödingerekvationen ingår systemets hamiltonian (H). Hamiltonianen är en energioperator som när den verkar på vågfunktionen ger systemets totala energi. Lite förenklat kan man säga att Schrödingerekvationen talar om vilka vågfunktioner som tillåts existera tillsammans med den givna hamiltonianen. Den beskriver även hur dessa vågfunktioner ändrar sig med tiden.

För att få en bild av hur programmet fungerar beskriver vi principen här:
Simulatorn fungerar så att man sätter upp problemet genom att definiera systemets potentiella energi (en del av hamiltonianen) och området man vill simulera. Programmet räknar sedan ut systemets grundtillstånd, det vill säga den vågfunktion som svarar mot systemets lägsta energi. Utifrån denna vågfunktion simuleras sedan hur vågfunktionen ändrar sig med tiden.
Programmet levererar utdata i form av en dumpad fil med vågfunktionens värden i varje tidssteg. Dessa filer kan sedan läsas in och analyseras av något lämpligt externt program (till exempel Matlab).

Uppdaterad  2007-06-11 09:29:15 av Patrik Harström (student).