Gaussove Datoteke Kocke

Original

Uvod

Datoteka kocke opisuje volumetrične podatke in položaje atomov, izhaja iz programskega paketa Gausov. Datoteka je sestavljena iz glave, ki vsebuje informacije o atomu in velikost ter usmeritev volumetričnih podatkov. Sledijo volumetrični podatki, en skalar na vokel element. Vsi vidiki datoteke so besedilo (človeško berljivo), prvotno so bile številske vrednosti 5 široke za cela števila, ki so začela vsako glavo (po prvem) in vrednosti s plavajočo vejico so bile oblikovane v 12,6, to je 12 znakov, široko s 6 decimalnimi mesti.

Glava

Prvi dve vrstici glave so komentarji, jih običajno ignorirajo z razčlenjevanjem paketov ali pa se uporabljajo kot dve privzeti oznaki.

Tretja vrstica vsebuje število atomov, vključenih v datoteko, ki mu sledi položaj izvora volumetričnih podatkov.

Naslednje tri vrstice dajo število vokselov vzdolž vsake osi (x, y, z), ki ji sledi vektor osi. Opomba: to pomeni, da ni treba poravnati glasnosti s koordinatno osjo, ampak tudi to pomeni, da je lahko striženo, čeprav večina volumetričnih paketov tega ne podpira. Dolžina vsakega vektorja je dolžina strani voksela, kar omogoča ne kubične prostornine. Če je znak števila voksel v dimenziji pozitiven, potem so enote Bohr, če so negativni, potem Angstromovi.

Zadnji del v glavi je ena vrstica za vsak atom, sestavljen iz 5 števil, prva je številka atoma, druga (?), Zadnja tri so koordinate x, y, z atoma centra.

Volumetrični podatki

Volumetrični podatki so preprosti, ena številka s plavajočo vejico za vsak volumetrični element. Izvirni Gaussov format je urejal vrednosti v spodaj prikazani obliki v primeru, da lahko večina programov za branje prebere katero koli obliko, ločeno z belino. Tradicionalno je mreža razporejena z osjo x kot zunanjo zanko in z osjo kot notranjo zanko, na primer napisano kot

 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");
      }
   }

Primer

V naslednjem primeru so volumetrični podatki 40 do 40 z 40 mrežami, vsak voxel je širok 0,283459 enot, volumen pa je poravnan s koordinatno osjo. Obstajajo trije atomi.

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
      :             :             :           :            :            :
      :             :             :           :            :            :
      :             :             :           :            :            :
        In this case there will be 40 x 40 x 40 floating point values
      :             :             :           :            :            :
      :             :             :           :            :            :
      :             :             :           :            :            :