Instalando o programa xtb

xtb é um programa de estrutura eletrônica molecular que usa métodos semi-empíricos extended tight-binding (xTB) recentemente publicados​1,2​. Esses métodos prometem ser robustos e acurados, tendo sido parametrizados para estruturas, frequências vibracionais e interações não-covalentes da maior parte da tabela periódica. São muito rápidos e funcionam bastante bem para moléculas grandes, o que é perfeito para uma infinidade de aplicações, incluindo explorações preliminares de superfícies de energia potencial.

Baixar o pacote

O programa é obtido na página do projeto no GitHub. Vá em releases e baixe o pacote mais recente (no presente momento isso significa o arquivo xtb-191213.tar.xz).

Instalação

Descompacte o conteúdo do arquivo em uma pasta:

tar xf xtb-191213.tar.xz

Caso tenta dificuldades na descompactação, tente instalar xz-utils (no Ubuntu, use o comando sudo apt install xz-utils​*​). Eu costumo instalar programas em /opt, então movo a pasta com o conteúdo descompactado para /opt/xtb:

sudo mv xtb_6.3.pre1 /opt/xtb

(Caso esteja atualizando, talvez seja interessante executar sudo rm -rf /opt/xtb antes, para limpar a versão anterior. Use esse comando com muito cuidado.) Neste momento, executar /opt/xtb/bin/xtb --version irá resultar na seguinte saída:

      -----------------------------------------------------------      
     |                   =====================                   |     
     |                           x T B                           |     
     |                   =====================                   |     
     |                         S. Grimme                         |     
     |          Mulliken Center for Theoretical Chemistry        |     
     |                    University of Bonn                     |     
      -----------------------------------------------------------      

   * xtb version 6.3.0 (preview) compiled by 'ehlert@majestix' on 2019-12-12

normal termination of xtb

Configurando o programa

Agora precisamos configurar o programa. A recomendação é adicionar as seguintes linhas ao arquivo ~/.bashrc (ou ~/.zshrc se você usa Zsh):

export MKL_NUM_THREADS=4
export OMP_NUM_THREADS=4
export OMP_STACKSIZE=1G
export OMP_MAX_ACTIVE_LEVELS=1
ulimit -s unlimited
export XTBHOME=/opt/xtb
source $XTBHOME/share/xtb/config_env.bash

(Veja o manual do programa para mais detalhes sobre cada linha acima.) Atenção: onde se diz *THREADS está sendo especificada a quantidade de processos que podem rodar simultaneamente no computador. (Essas configurações também podem constar em um script de submissão.)

Atualize as configurações executando source ~/.bashrc e tente executar xtb --version. A mesma saída anterior deve aparecer.

Fazendo um teste simples

Agora vamos rodar um cálculo de teste e nos certificarmos que ele roda em paralelo. Crie um arquivo h2.xyz com dois átomos de hidrogênio a uma distância de 1 Å. Você pode usar um editor de texto para isso (ou usar o Avogadro, por exemplo); o conteúdo será semelhante ao seguinte:

2

H   0.0   0.0   0.0
H   0.0   0.0   1.0

Agora rode uma otimização com frequências (o tee permite salvar a saída e vê-la ao mesmo tempo):

xtb h2.xyz --ohess | tee h2.ohess.out

Após algumas informações sobre citações, o programa indica o início do cálculo com informações sobre o sistema, número de processadores, etc.:

 * started run on 2020/01/02 at 12:17:21.304     

           -------------------------------------------------
          |                Calculation Setup                |
           -------------------------------------------------

          program call               : xtb h2.xyz --ohess
          coordinate file            : h2.xyz
          omp threads                :                     4
          number of atoms            :                     2
          number of electrons        :                     2
          charge                     :                     0
          spin                       :                   0.0
          first test random number   :      0.94702239823383

A mensagem abaixo indica convergência da geometria:

   *** GEOMETRY OPTIMIZATION CONVERGED AFTER 6 CYCLES ***

Após o cálculo de frequências, algumas informações são dadas. Observe o número de frequências e quantas delas são imaginárias:

          ...................................................
          :                      SETUP                      :
          :.................................................:
          :  # frequencies                           1      :
          :  # imaginary freq.                       0      :
          :  linear?                              true      :
          :  only rotor calc.                    false      :
          :  symmetry                              din      :
          :  rotational number                       2      :
          :  scaling factor                  1.0000000      :
          :  rotor cutoff                   50.0000000 cm⁻¹ :
          :  imag. cutoff                  -20.0000000 cm⁻¹ :
          :.................................................:

Por fim, a geometria otimizada é escrita no arquivo xtbopt.xyz. Eu costumo sobrescrever o arquivo de coordenadas original:

mv xtbopt.xyz h2.xyz

A distância final obtida é 0.776 Å (menos de 5% do valor indicado pelo NIST). Essa geometria final pode ser agora submetida a cálculos mais precisos.

Aqui fizemos apenas uma otimização com frequências; você pode obter mais informações sobre tudo que o xtb é capaz de fazer no manual online, ou então executar xtb --help.


  1. ​*​
    Como a maioria dos usuários de Windows, eu assumo que você usa o mesmo sistema operacional que eu.

Referências

  1. (1)
    Grimme, S.; Bannwarth, C.; Shushkov, P. A Robust and Accurate Tight-Binding Quantum Chemical Method for Structures, Vibrational Frequencies, and Noncovalent Interactions of Large Molecular Systems Parametrized for All Spd-Block Elements (Z = 1–86). J. Chem. Theory Comput. 2017, 1989–2009. https://doi.org/10.1021/acs.jctc.7b00118.
  2. (2)
    Bannwarth, C.; Ehlert, S.; Grimme, S. GFN2-XTB—An Accurate and Broadly Parametrized Self-Consistent Tight-Binding Quantum Chemical Method with Multipole Electrostatics and Density-Dependent Dispersion Contributions. J. Chem. Theory Comput. 2019, 1652–1671. https://doi.org/10.1021/acs.jctc.8b01176.

Deixe uma resposta