Gaussian Kub Filer

Link: http://paulbourke.net/dataformats/cube/

Inledning

kub-fil beskriver – data samt atom-positioner, det kommer från den Gaussiska programpaketet. Filen består av en rubrik som innehåller atom information och storlek och orientering – data. Detta är följt av – data, en skalär per voxel element. Alla aspekter av filen i text (human readable), ursprungligen den numeriska värden var 5 bred för heltal som började varje rad i huvudet (efter den första) och flyttal var formaterad 12.6, som är 12 tecken som är brett med 6 decimaler.

Rubrik

De två första raderna i huvudet är kommentarer, de är i allmänhet ignoreras genom att analysera paket eller användas som två standard etiketter.

Den tredje raden har antalet atomer som ingår i filen, följt av positionen för den ursprung – data.

De kommande tre linjer ger antalet voxlar längs varje axel (x, y, z), följt av axel vektor. Observera att detta innebär att volymen behöver inte vara i linje med koordinataxel, ja det innebär också att det kan vara klippt även om de flesta – paket inte kommer att stödja det. Längden på varje vektor är längden på den sida av voxel vilket gör att icke kubiska volymer. Om tecken på antalet voxlar i en dimension är positivt då enheterna är Bohr, om de är negativa då Ångström.

Den sista delen i rubriken är en rad för varje atom består av 5 siffror, den första är den atom nummer, andra (?), de tre sista är x -, y -, z-koordinater atom center.

– data

– data är enkel, en flytande punkt nummer för varje – element. Den ursprungliga Gaussian format ordnas värdena i det format som visas nedan i exempel, de flesta analysera program kan läsa alla vita separerade med mellanslag format. Traditionellt nätet är arrangerade med x-axeln som den yttre loopen och z-axeln som den inre slingan, till exempel, skrivs 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");
      }
   }

Exempel

I följande exempel – data är en 40 40 40 nätet, varje voxel är 0.283459 enheter brett och volymen är i linje med koordinataxeln. Det finns 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
      :             :             :           :            :            :
      :             :             :           :            :            :
      :             :             :           :            :            :
        In this case there will be 40 x 40 x 40 floating point values
      :             :             :           :            :            :
      :             :             :           :            :            :
      :             :             :           :            :            :

Leave a Reply

Your email address will not be published. Required fields are marked *