Gaussian Cube filer

Original English version
Skrevet av Paul Bourke
Desember 2003

Introduksjon

Kuben fil beskriver volumetriske data samt atomposisjoner, det stammer fra den Gaussiske programvarepakken. Filen bestÃĨr av en topptekst som inneholder atomet informasjon og stÃļrrelse, samt orientering av de volumetriske data. Dette etterfÃļlges av de volumetriske data, en skalar per volumelement element. Alle aspekter av filen er tekst (lesbare), opprinnelig tallverdiene var 5 bred for heltall som startet hver overskrift linje (etter det fÃļrste) og flytepunktverdiene ble formatert 12,6, det vil si 12 tegn bred med 6 desimaler.

Overskrift

De to fÃļrste linjene i overskriften er kommentarer, de er generelt ignorert av analyse pakker eller brukes som to standardetikettene.

Den tredje linje har antallet atomer som inngÃĨr i filen, fulgt av posisjonen til opprinnelsen av de volumetriske data.

De neste tre linjer gir antallet voksler langs hver akse (x, y, z), etterfulgt av aksen vektoren. Merk dette betyr volumet behÃļver ikke ÃĨ vÃĶre pÃĨ linje med koordinere aksen, ja det betyr ogsÃĨ at det kan bli skÃĨret selv om de fleste volumetriske pakkene ikke vil stÃļtte det. Lengden av hver vektor er lengden av den side av volumelementet og dermed tillater ikke-kubiske volum. Hvis fortegnet til antallet voksler i en dimensjon er positiv sÃĨ enhetene er Bohr, hvis negative deretter ÅngstrÃļm.

Den siste seksjonen i hodet er en linje for hvert atom som bestÃĨr av 5 tall, den fÃļrste er den atomtallet, andre (?), De siste tre er de x, y, z koordinatene for sentrum atom.

Volumetriske data

Den volumetriske data er grei, en flytetall for hvert volumelement. Den opprinnelige Gaussiske formatet anordnet verdiene i det format som er vist nedenfor i eksemplet, kan de fleste analyseprogram leser eller hvite omrÃĨder adskilt format. Tradisjonelt risten er innrettet med x-aksen som den ytre slÃļyfe, og z-aksen som den indre slÃļyfe, for eksempel skrevet som

   for (ix = 0; ix <NX; ix ++) {
      for (iy = 0; iy <NY; iy ++) {
         for (iz = 0; iz <NZ; iz ++) {
            printf ( "% g", data [ix] [IY] [iz]);
            if (iz% 6 == 5)
               printf ( "\ n");
         }
         printf ( "\ n");
      }
   }

Eksempel

I det fÃļlgende eksempel den volumetriske data er en 40 ved 40 ved 40 gitter, hver voksel er 0.283459 heter bred og volumet er innrettet med koordinatakse. Det er tre atomer.

CPMD CUBE FILE.
 OUTER LOOP: X, MIDDLE LOOP: Y, INNER LOOP: Z
    3    0.000000    0.000000    0.000000
   40    0.283459    0.000000    0.000000
   40    0.000000    0.283459    0.000000
   40    0.000000    0.000000    0.283459
    8    0.000000    5.570575    5.669178    5.593517
    1    0.000000    5.562867    5.669178    7.428055
    1    0.000000    7.340606    5.669178    5.111259
 -0.25568E-04  0.59213E-05  0.81068E-05  0.10868E-04  0.11313E-04  0.35999E-05
      :             :             :           :            :            :
      :             :             :           :            :            :
      :             :             :           :            :            :
        I dette tilfellet vil det vÃĶre 40 x 40 x 40 flytende punktverdier
      :             :             :           :            :            :
      :             :             :           :            :            :
      :             :             :           :            :            :