Gaussian Cube Files

Ditulis oleh Paul Bourke
Source: http://paulbourke.net/dataformats/cube/
Desember 2003

Pengantar

File kubus menggambarkan Data volumetrik serta posisi atom, itu berasal dari paket software Gaussian. file terdiri dari header yang mencakup informasi atom dan ukuran serta orientasi data volumetrik. Ini diikuti dengan data volumetrik, satu skalar per elemen voxel. Semua aspek dari file yang teks (dibaca manusia), awalnya nilai-nilai numerik yang 5 lebar untuk bilangan bulat yang dimulai setiap baris header (setelah yang pertama) dan nilai-nilai floating point diformat 12,6, yaitu, 12 karakter lebar dengan 6 tempat desimal.

Header

Dua baris pertama dari header adalah komentar, mereka umumnya diabaikan oleh paket parsing atau digunakan sebagai dua label default.

Baris ketiga memiliki jumlah atom termasuk dalam file diikuti dengan posisi asal data volumetrik.

Tiga baris selanjutnya memberikan jumlah voxels bersama setiap sumbu (x, y, z) diikuti oleh vektor sumbu. Catatan ini berarti volume tidak perlu selaras dengan sumbu koordinat, memang itu juga berarti itu dapat digesek meskipun sebagian besar paket volumetrik tidak akan mendukung itu. Panjang masing-masing vektor adalah panjang sisi voxel sehingga memungkinkan volume non kubik. Jika tanda jumlah voxels di dimensi positif maka unit Bohr, jika negatif maka angstrom.

Bagian terakhir dalam header adalah salah satu baris untuk setiap atom terdiri dari 5 nomor, yang pertama adalah jumlah atom, kedua (?), Tiga terakhir adalah x, y, z koordinat dari pusat atom.

Data volumetrik

Data volumetrik sangat mudah, satu angka floating point untuk setiap elemen volumetrik. Format Gaussian asli diatur nilai-nilai dalam format yang ditunjukkan di bawah dalam contoh, sebagian besar program parsing dapat membaca spasi Format dipisahkan. Tradisional grid diatur dengan sumbu x sebagai loop luar dan sumbu z sebagai loop batin, misalnya, ditulis sebagai

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

Contoh

Pada contoh berikut data volumetrik adalah 40 dengan 40 oleh 40 grid, setiap voxel adalah 0,283459 unit luas dan volume sejajar dengan sumbu koordinat. Ada tiga atom.

 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
      :             :             :           :            :            :
      :             :             :           :            :            :
      :             :             :           :            :            :