Arquivos Cube Gaussian

Origem
dezembro 2003


Introdução

O arquivo de cubo descreve dados volumétricos bem como as posições atômicas, ela se origina a partir do pacote de software Gaussian. O arquivo consiste de um cabeçalho que inclui o átomo de informação e o tamanho, bem como a orientação dos dados volumétricos. Isto é seguido pelos dados volumétricos, um elemento escalar por voxel. Todos os aspectos do arquivo são texto (legível), originalmente os valores numéricos foram 5 ampla para inteiros que começaram cada linha de cabeçalho (após o primeiro) e os valores de ponto flutuante foram formatados 12,6, ou seja, 12 caracteres de largura, com 6 casas decimais.

Cabeçalho

As duas primeiras linhas do cabeçalho são comentários, eles são geralmente ignorados pelos pacotes de análise ou usado como duas etiquetas padrão.

A terceira linha tem o número de átomos incluídos no ficheiro seguido pela posição da origem dos dados volumétricos.

As próximas três linhas dar o número de voxeis ao longo de cada eixo (x, y, z), seguido pelo vector eixo. Nota isto significa que o volume não precisa ser alinhado com o eixo de coordenadas, na verdade, isso também significa que ele pode ser cortado, embora a maioria dos pacotes volumétricos não vai apoiar isso. O comprimento de cada vector é o comprimento do lado do voxel, permitindo assim volumes não cúbicos. Se o sinal do número de voxeis em uma dimensão for positivo, então as unidades são Bohr, se for negativo, então Angstroms.

A última seção no cabeçalho é uma linha para cada átomo, composto por 5 números, o primeiro é o número de átomos, em segundo lugar (?), Os três últimos são os x, y, z coordenadas do centro do átomo.

Dados volumétricos

Os dados volumétrica é, um número de ponto flutuante simples para cada elemento volumétrico. O formato Gaussian originais dispostos os valores no formato mostrado abaixo no exemplo, a maioria dos programas de análise pode ler qualquer espaço em branco formato separado. Tradicionalmente, a grade é providenciado com o eixo x como a espira externa e o eixo Z como o circuito interno, por exemplo, como escrito

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

Exemplo

No exemplo a seguir os dados volumétrico é de 40 por 40 por 40 grade, cada voxel é 0.283459 unidades de largura e o volume está alinhado com o eixo de coordenadas. Há três átomos.

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