Oppgave 1 Introduksjon til Linux og kvantekjemiske beregninger KJM-MEF4010 Kvantekjemiske metoder Vår 2006 1 Introduksjon Hensikten med denne oppgaven er å gi en kort introduksjon til viktige og nyttige Linux-kommandoer, samt å vise hvordan kvantekjemiske beregninger kan kjøres i et Linux-miljø. Underveis vil man også stifte bekjentskap med den molekylbyggeren som vi skal benytte i kurset. For de som allerede kjenner UNIX/Linux vil første del av oppgaven være nokså banal og man kan gå hurtig gjennom den. Merk imidlertid at man må kopiere og redigere input-filene som beskrevet, før man kan starte beregningene. 2 Linux-introduksjon Vi antar at man har logget inn på en Linux-maskin og har et terminalvindu tilgjengelig (og aktivt) på skjermen. 2.1 Hjelp til kommandoer og programmer Vis man-side man kommando Vanlige hjelpefunksjoner program -h eller program --help For alle innebygde Linux-kommandoer får man opp en fyldig beskrivelse av bruk og opsjoner ved å skrive man kommando (du kan også forsøke man man!). Disse man-sidene kan man så navigere rundt i ved hjelp av linjeskift (en linje fremover), mellomrom (en side frem), b (en side bakover) og q (avslutt). Det kreves imidlertid en viss trening for å fordøye denne informasjonen. 1
Når det gjelder andre programmer og skript er ting mindre standardisert, men man kan forsøke enten program -h eller program --help. 2.2 Filer og kataloger Vis aktiv katalog pwd Lag ny katalog mkdir katalog Slett katalog rmdir katalog Skift katalog cd katalog Som de aller fleste andre operativsystemer, skiller man også i Linux mellom filer og kataloger (mapper). Katalogene brukes til å samle og organisere filer, mens filene på sin side kan være tekst, bilder, programmer e.l. For å finne ut hvilken katalog man står i benyttes kommandoen pwd, har man akkurat logget inn på maskinen skal man befinne seg på hjemmeområdet sitt (tilsvarer M:\ under Windows). Ved å gi kommandoen cd hopper man forøvrig tilbake til hjemmeområdet, uansett hvor man måtte befinne seg. Det er fornuftig å opprette en egen katalog for dette kurset og deretter egne kataloger for hver oppgave. Gi derfor følgende kommandoer > cd > mkdir kjm4010 > cd kjm4010 > mkdir oppgave1 Her oppretter man en ny katalog med navn kjm4010, hopper inn i denne katalogen og lager til slutt en underkatalog som heter oppgave1. Vis filer ls Kopier fil cp filnavn1 filnavn2 Flytt fil (gi nytt navn) mv filnavn1 filnavn2 Slett fil rm filnavn 2
Fortsett med kommandoene > cd oppgave1 > ls Katalogen oppgave1 inneholder ingen filer ennå. Vi hopper i stedet over til en annen katalog som inneholder filer vi skal benytte videre i oppgaven: > cd /site/kjm4010/oppgave1 > ls Et lite antall filer skal da listes opp, og ønsker vi mer informasjon om størrelse på filene etc, kan vi forsøke ls -l. En annen nyttig variant er ls -ltr som sorterer filene i omvendt rekkefølge etter når de sist ble endret. Vi ønsker så å kopiere nødvendige filer over til eget hjemmeområde > cp *.com ~/kjm4010/oppgave1 > cd ~/kjm4010/oppgave1 > ls -l Merk jokertegnet * som betyr at alle filene som har endelsen.com skal kopieres over til katalogen oppgave1. * står for en hvilken som helst kombinasjon av tegn, mens? betyr ett vilkårlig tegn. Disse jokertegnene er nyttige for å gjøre operasjoner på et antall filer samtidig. Legg også merke til bruken av tegnet som er en forkortelse for eget hjemmeområde. Den siste ls-kommandoen viser forhåpentligvis at filene er korrekt kopiert over. NB! Linux skiller mellom små og store bokstaver i navn på filer og kataloger, med andre ord er minfil.txt, Minfil.txt og MINFIL.TXT tre forskjellige filer! 2.3 Se på og redigere filer Vis tekstfil less filnavn Rediger tekstfil pico filnavn emacs filnavn & vi filnavn Vi ønsker å ta en titt på de filene vi har kopiert. Filen nh3-plan.com inneholder geometrien til et plant NH 3 -molekyl og nødvendige besvergelser for å få Gaussian til å gjøre en geometrioptimering. Ta en titt på filen ved å skrive: > less nh3-plan.com Før vi kan starte en beregning basert på denne input-filen, må vi angi hvilket basissett som skal benyttes. Bruk én av editorene pico, emacs eller vi til å redigere den første linjen i filen. Bytt ut teksten basissett med 6-31G**. 3
2.4 Kontakte andre maskiner Logge inn på annen maskin ssh maskin Kopier filer til/fra annen maskin scp maskin:katalog/filnavn. scp filnavn maskin:katalog Hvis man skal logge inn på andre maskiner, f.eks. logge inn på PC-lab maskinene fra termstua, så benyttes kommandoen ssh. Forsøk > ssh ulrik og skriv inn ditt passord. For å sjekke hvilken maskin du er inne på, skriv > hostname For å bryte forbindelse gis kommandoen > logout Av og til kan det også være behov for å overføre filer til/fra en annen maskin. Da benyttes kommandoen scp som fungerer på nesten samme måte som den vanlige cp-kommandoen. Imidlertid kan man spesifisere maskinen som det skal kopieres til/fra. Merk at både ssh og scp er sikre kommandoer (opprettes kryptert forbindelse), og disse skal benyttes i stedet for de utrygge kommandoene telnet og ftp! 3 Kvantekjemiske beregninger 3.1 NH 3 3.1.1 Plant NH 3 Kjøre beregning med Gaussian rung98 com-fil log-fil & Vi er nå klare til å kjøre en geometrioptimering av det plane NH 3 -molekylet: > rung98 nh3-plan.com nh3-plan.log & At vi avlutter en kommando med tegnet & betyr at en jobb skal kjøre i bakgrunnen, og vi står fritt til å skrive andre kommandoer i terminalvinduet. Når jobben er ferdig, vil resultatet av kjøringen befinne seg i filen nh3-plan.log. Kikk på denne filen med less eller en editor og let frem følgende opplysninger: Hartree Fock-energien til den optimerte geometrien 4
Optimert N-H bindingsavstand Optimert H-N-H bindingsvinkel Hint: Informasjon for den optimerte geometrien befinner seg på slutten av outputfilen. 3.1.2 Pyramidalt NH 3 Vi vet at likevektsgeometrien til NH 3 ikke er plan, men derimot pyramidal. For å finne denne må vi bryte den plane symmetrien. Lag en kopi av input-filen: > cp nh3-plan.com nh3-prmd.com Rediger de kartesiske koordinatene i nh3-prmd.com slik at molekylet ikke lenger er plant. Kjør deretter en ny geometrioptimering ved å skrive > rung98 nh3-prmd.com nh3-prmd.log & Hent ut den samme informasjonen som fra forrige kjøring og sammenlign verdiene du har funnet for henholdsvis plant og pyramidalt NH 3. Hvordan er bindingslengder og -vinkler i det plane molekylet kontra det pyramidale? Hva er barrieren for inversjon av ammoniakk-molekylet på dette teori-nivået? 3.2 Benzen 3.2.1 Energi og struktur Start GaussView gv & Grafikkdump av aktivt vindu Alt + Print Screen Vi skal så bevege oss over til et annet lite molekyl, nemlig benzen (C 6 H 6 ). Start opp molekylbyggeren GaussView med kommandoen > gv & Benzen finnes som en ferdig ring, det eneste man behøver å gjøre er å trykke på Rings og deretter klikke med venstre musknapp omtrent midt i det store vinduet. Dersom man får problemer, kan man forøvrig starte på nytt ved å velge New fra menylinjen. Man kan så vri og vende på molekylet man har bygget ved å holde inne venstre musknapp og bevege musen. Holder man midterste musknapp (hjulet) nede, kan man flytte molekylet i skjermplanet, og holder man inne høyre musknapp kan man zoome ut og inn. 5
Etter at benzen-molekylet er ferdig, velger man File, Save, krysser av for Write Cartesian Coordinates, kaller filen c6h6.com (under Save the Following File ) og trykker Save. Avslutt så GaussView med File og Exit. Vi har nå laget en input-fil som kan kjøres i Gaussian, men før vi går videre vil vi gjøre noen endringer. Åpne c6h6.com i valgfri editor og gjør følgende: Rediger linjen som begynner med %mem=, slik at det står %mem=150mb. Dette justerer opp hvor mye minne programmet får lov til å benytte. Endre linjen som begynner med # til # HF/6-31G* Opt Freq. Vi angir da bølgefunksjon, basissett og at det skal kjøres en geometrioptimering og til slutt en frekvensanalyse. Start beregningen med kommandoen > rung98 c6h6.com c6h6.log & Det tar sannsynligvis noen minutter før kjøringen er ferdig, men når den er klar skal det finnes to resultatfiler, c6h6.log og c6h6.chk. Det er kun den første av disse som er en tekstfil og som lar seg lese. Åpne c6h6.log i en editor og forsøk å finne energien til den optimerte geometrien (let etter den siste forekomsten av teksten SCF Done ). Finn også ut hvor lange de optimerte C-C og C-H bindingsavstandene er. 3.2.2 Vibrasjonsmoder Vi ønsker å undersøke vibrasjonsmodene til benzen. Start opp GaussView igjen med > gv & Velg så File og Open. File Type settes til.chk og du skal da kunne dobbeltklikke på c6h6.chk i listen av filer. Neste punkt er å velge Results fra menyen og deretter Vibrations. I dialogboksen som dukker opp kan man velge hvilken vibrasjonsmode som skal animeres, trykk Start for å starte vibrasjonen. Hva er typisk for vibrasjonene med lave frekvenser, og hva karakteriserer de høyfrekvente vibrasjonene? 3.2.3 HOMO og LUMO Til slutt vil vi også studere HOMO (highest occupied molecular orbital) og LUMO (lowest unoccupied molecular orbital) i dette systemet. Stopp vibrasjonene og lukk denne dialogboksen, velg så View og Display Format, sett Surface Format: til Translucent. Dra eventuelt også alle sliderne over til accurate, dette gir litt penere grafikk. Trykk Okay. 6
Figure 1: Prolin (C 5 H 9 NO 2 ) Neste punkt er å velge Results og så Surfaces. Trykk Generate for å gjøre klar første molekylorbital. Systemet har 42 elektroner og dermed 21 okkuperte molekylorbitaler. Velg orbital nummer 21 som er HOMO, og trykk OK. En orbital skal da etter hvert være tilgjengelig i listen Surfaces Available. Marker denne og trykk Apply. Vri systemet slik at man får et godt inntrykk av hvordan orbitalen ser ut. Vi kan så fange denne figuren ved å trykke Alt + Print Screen, men pass på at vinduet med molekylorbitalen er aktivt før du trykker tastekombinasjonen. Velg et fornuftig filnavn og trykk Save. Gjenta nøyaktig den samme prosessen for LUMO, inkludert å lagre orbitalen som en grafikkfil. Basert på visualiseringen, vil du klassifisere henholdsvis HOMO og LUMO som bindende eller anti-bindende molekylorbitaler? 3.3 Prolin 3.3.1 Molekylbygging Lukk vinduene med molekylorbitaler og dialogboksen med flater og velg File, New i GaussView. Vi skal nå bygge et litt mer komplisert molekyl. Prolin er en aminosyre med struktur som vist i Figur 1. Bygg opp dette molekylet ved å velge ulike grunnstoffer og fornuftige hybridiseringer. Husk at du kan fjerne atomer/minske valens ved hjelp av Delete Atom og øke valens ved hjelp av Add Valence. Bruk Bond for å lage eller fjerne bindinger mellom atomer. Etter at strukturen er ferdig bygd (pass på å få med alle hydrogenatomene), kan det være lurt å kjøre Clean. Lagre deretter molekylet med File og Save. Husk Write Cartesian Coordinates og gi filen navnet prolin.com. 3.3.2 Elektrostatisk potensial Filen prolin opt.com, som du allerede har kopiert over til hjemmeområdet ditt, inneholder en ferdig geometrioptimert struktur for prolin. Åpne denne filen i GaussView og sjekk at strukturen ligner på den du selv bygde. Start så beregningen med: > rung98 prolin_opt.com prolin_opt.log & Når beregningen er ferdig, skal prolin opt.chk åpnes i GaussView, pass på å velge riktig filtype. Velg View, Display Format på menyen. Sjekk at Surface 7
Format fortsatt er satt til Translucent. Trykk Okay for å lukke denne dialogboksen. Vi skal så beregne den totale elektrontettheten samt det elektrostatiske potensialet rundt molekylet. Potensialet skal visualiseres på en isotetthetsflate. Fremgangsmåten er da som følger: Start med å velge Results, Surfaces på menyen. Trykk deretter Generate. Velg Total Density under Kind, kryss av for Use Full Density og trykk Okay. Trykk Generate nok en gang, men velg nå Potential og trykk Okay. Vent til de to flatene er ferdig beregnet, dette tar litt tid. Marker tetthetsflaten og kryss av Map values from 2nd surface. I listen som kommer opp er eneste valg potensialet, trykk Okay, og til slutt Apply. Visualisering som dukker frem indikerer hvordan f.eks. et annet molekyl vil oppleve potensialet rundt prolin. Hvilke deler av molekylet har henholdsvis partiell positiv og partiell negativ ladning? Roter molekylet til en fornuftig orientering og ta vare på figuren med Alt + Print Screen. 3.3.3 Zwitterionet Vi ønsker også å undersøke den zwitterioniske formen av prolin. Lukk visualiseringsvinduet og dialogboksen for Surfaces. Flytt så et hydrogen (proton) fra karboksylgruppen til nitrogenatomet ved å bruke Delete Atom og Add Valence. Lagre den nye strukturen ved å velge File, Save, bruk for eksempel prolin-zwt.com som filnavn og trykk Save. Vi skal nøye oss med å bestemme bølgefunksjonen til dette zwitterionet, dvs. vi foretar ingen geometrioptimering. Kjør beregningen med: > rung98 prolin_zwt.com prolin_zwt.log & Åpne prolin zwt.chk i GaussView, og plott potensialet på isoelektrontettheten på nøyaktig samme måte som over. Ta også vare på denne figuren. Hvordan fordeler positiv og negativ ladning seg i zwitterionet? Merk at skalaen for potensialet ikke vil være identisk med den forrige geometrien. Hent ut SCF-energien til de to konformasjonene til prolin som er undersøkt, ved å skrive: > grep SCF Done prolin_opt.log > grep SCF Done prolin_zwt.log Hvilken av de to er mest stabil i gassfase? Merk: Denne sammenligningen blir kun kvalitativ, for en rettferdig sammenligning må zwitterionet geometrioptimeres. 8