





Apresentação do software
O Quantum espresso é um pacote de softwares dedicado aos cálculos de estrutura eletrônica e que utilizam condições de contorno periódicas, ondas planas e pseudopotenciais.
Um dos desafios da utilização inicial do QE emerge da falta de interface gráfica dos programas do pacote. Para isso, dois outros programas são utilizados
​
- PWgui - Software que facilita a montagem de arquivos de entrada.
- XCrysden - Software que fornece uma interface gráfica para arquivos de entrada e de saída do QE.
​
Há ainda outros dois softwares que embora não obrigatórios, facilitam bastante o trabalho com o QE.
​
- Mercury - Excelente software para leitura de arquivos de informação cristalográfica ( Crystallographic Information File, *.cif), simulação de difração de raios-X de pó e análise de geometrias de equilíbrio.
- Avogadro - Ótimo software para o manejo das posições atômicas para o Quantum espresso.
PS: O avogadro não é suficiente para a montagem de arquivos de entrada no QE.

Plane Waves Graphic User Interface
O PWgui é um software dispensável, mas muito (muito mesmo) útil na montagem dos arquivos de entrada para o QE.
​
À priori, os arquivos de entrada do QE podem ser montados a partir de um editor de texto simples (e.g. vi, vim ou gedit), mas o programa é altamente exigente em relação à formatação do arquivo, ou seja, se uma vírgula estiver fora do lugar, o cálculo não "roda". A melhor maneira de garantir que tudo estará "no lugar" é usando o PWgui.
​
O PWgui possui quase todos os códigos utilizados pelo QE, mas a lista completa pode ser obtido na internet no site de input description. Clique aqui para ver um exemplo.
​
Ao lado há um vídeo que mostra o PWgui em ação.


O QE agrupa as variáveis relacionadas em grupos chamados Namelist. Esses grupo podem ser observados no PWgui e, também, nos arquivos de entrada do programa. Observe que há variáveis obrigatórias (aqui chamadas de requeridas) e outras opcionais.
As variáveis obrigatórias não possuem quaisquer valor pré-configurado, ou seja, se o usuário não alimentar o PWgui com esse valor, o cálculo não será bem sucedido. As variáveis opcionais, ao contrário, possuem valores pré-programados.
​
PS: Nem todas as variáveis opcionais podem ser usadas em seus valores-padrão, por exemplo:
-
O QE possui uma pasta-padrão para os pseudopotenciais, mas se esta pasta não existir no computador do usuário, o cálculo não rodará por falta desta exigência.
​
A figura abaixo mostra a relação entre as Namelist e as variáveis.
​

Vamos criar um arquivo de entrada?
Para termos uma experiência com o PWgui, vamos trabalhar com uma célula unitária de cobre metálico (FCC).
​
1) O primeiro a ser feito é procurar em bases de dados, estruturas cristalográficas que possam ser usadas como modelos teóricos. No caso da célula unitária do sobre, vamos usar os dados experimentais publicados no Journal of Materials Science 23 (1988) 757-760.
​
2) Vá ao site do QE e faça o download de diferentes arquivos de pseudopotenciais de cobre
Observe que há um "sem número" de pseudopoteciais diferentes, mas eles se agrupam em "famílias", sendo as mais importantes: Pseudopotenciais de norma conservada (NCPP), pseudopotenciais ultramacios (USPP) ou projetor de ondas aumentadas (PAW). Há outras formas de "tipos de pseudopotenciais, mas esse é um assunto mais avançado.
​
3) Abra o PWGui e clique em: 'create new input file' e em seguida em 'Create new PW.X input file.'
​
Observe, PWgui é parte do pacote do Quantum espresso, logo, ele é capaz de gerar entradas para vários dos softwares do pacote. Neste tutorial nós vamos utilizar gerar entradas para o "pw.x".
​
4) Na Namelist 'Control' vamos configurar parâmetros relacionados ao tipo de cálculo e aos manejo dos arquivos necessários.
-
Em 'Job title' escreva o nome do sistema que você está calculando. Neste caso vamos escrever 'copper'
-
Em 'Type of calculation' selecione o tipo de cálculo que você pretende fazer.
-
Em 'Temporary directory' selecione uma pasta na qual o programa possa deixar arquivos temporários. Você pode criar uma pasta e selecioná-la.
-
Em 'Temp. directory for files generated by each CPU' selecione uma pasta na qual o programa possa deixar arquivos temporários. Você pode criar uma pasta e selecioná-la. Essa pasta, inclusive pode ser a mesma do 'Temporary directory'
-
Em 'Directory containing pseudopotencial files' selecione o lugar onde você fez o download dos pseudopotenciais de cobre. Você pode criar uma pasta e selecioná-la.
-
Em 'Prefix for I/O filenames' escreva o nome do trabalho que está realizando. Por exemplo: 'copper-optimization'. É desejável que você troque este nome todas as vezes que alterar algum parâmetro de cálculo. É com base no 'prefix' que os arquivos temporários serão gerados.
Observe, há diversas outras variáveis possíveis de serem configuradas e o fato de não configurá-las significa dizer que você está assumindo os valores-padrão.
​
5) Na Namelist 'System' vamos configurar parâmetros relacionados ao sistema que será calculado. Nesta etapa será necessário conhecimentos introdutórios de cristalografia. Você pode configurar seu sistema de diferentes formas e isso será levemente diferente ao trabalhar com cristais moleculares ( e.g. células de compostos orgânicos) ou cristais iônicos (e.g. metais). Vamos fazer da maneira mais simples.
-
Em 'Bravais lattive index' selecione 'Cubic F (fcc)' , que define o sistema como um sistema cúbico de face centrada.
-
Em 'How to specify lattice' você definirá o tamanho da célula unitária. Você pode optar por 'celldm()' e colocar o valor Bohr ou 'by A,B,C,cosAB,cosAC,cosBC' e colocar o valor em Angstrom. Neste caso nós opte por 'by A,B,C,cosAB,cosAC,cosBC' porque os valores dos arquivos *.cif já estão em angstrom
-
Em 'number of atoms in the unit cell' coloque o valor 1.
-
Em 'number of type of atoms in the unit cell' coloque o valor 1.
-
Em 'Kinetic energy cutoff for WAVEFUNCTION' coloque o valor 30
Se estivéssemos trabalhando com semicondutores e/ou isolantes já poderíamos passar a configurar outra Namelist. Como cobre é um metal, entretanto, é necessário preencher outras variáveis referentes à ocupação dos elétrons. Desta forma, vamos configurar as variáveis opcionais.
-
Em 'Occupation of states' selecione smearing
-
Em 'Gaussian spreading for BZ integration' coloque o valor 0.02
-
Em 'Type of spreading/smearing' selecione 'first order interpolation in Methfessel-Paxton spreading'
​
6) Na Namelist 'Lattice&Atoms' vamos configurar parâmetros relacionados com o sistema cristalino em si e aos átomos envolvidos na rede que representaremos. Desta forma, as Namelists 'Lattice&Atoms' e 'System' estão relacionadas.
-
Em 'Atomic_Species' preencha:
-
Atomic-label com Cu​
-
Atomic-mass com o valor 63.55
-
Selecione o arquivo de pseudopotencial em questão
-
-
Em Atomic_Positions marque a opção 'Cartesian in ANGSTROMS' e preencha os campos
-
Atomic-label com Cu​
-
X-Coordinate com o valor 0 | Y-Coordinate com o valor 0 | Z-Coordinate com o valor 0
-
​
7) Na Namelist 'K-points' vamos configurar a malha para a amostragem na primeira zona de Brillouin. Como estamos apenas no nosso primeiro arquivo de entrada, mantenha em "automatic generation' e certifique-se que nk1, nk2 e nk3 estejam com o valor 1
​
8) Salva seu arquivo e guarde o caminho no qual ele foi salvo.
​
Pronto! Agora já temos um arquivo com o qual QE é capaz de realizar cálculos de estrutura eletrônica.
Abra o arquivo em modo texto (isso pode ser feito pela interface gráfica ou pelo terminal, com o comando 'vi') e compare as Namelist que você preencheu no PWgui. Para visualizar o arquivo em 3D vamos usar o XCrysden.




X-Window Crystalline structure and densities

O XCrysden é o software de visualização e análise dos arquivos de entrada (*.inp) e saída do QE (*.out). O programa pode, ainda, ler outros formatos de arquivos como o *.pbd, mas há softwares mais interessantes para esse fim.
​
Para abrir seu arquivo de entrada recém criado siga os passos:
-
Abra o XCrysden
-
Clique em 'Open Pwscf e em seguida e 'Open PWscf input file'
-
Encontre seu arquivo e clique em 'OK'
-
Clique 'do not reduce dimensionality' e clique em 'OK'
-
​
Pronto! Agora já podemos ver nossos arquivos no XCrysden. Verifique que é possível extrair uma série de dados de distância/ângulos, dos números dos átomos do sistema.
​
Dica: explore os botõezinhos na parte de baixo da janela e (por enquanto) mantenha a visualização em 'nicely-cut unit cell'
Como submeter o arquivo de entrada ?
Para submeter seu arquivo de entrada, abra o terminal, navegue até o endereço onde seu arquivo de entrada está e digite:
​
pw.x < nomedoarquivo.inp > nomedoarquivo.out
​
Por exemplo, se seu arquivo se chama cu.inp, você digitará
​
pw.x < cu.inp > cu.out
​
Observe, essa não é a maneira otimizada de submeter um trabalho, mas nesta etapa do treinamento funcionará.
​
PS: Se houver algo de errado com o arquivo de entrada, o QE escreverá um arquivo 'CRASH' com a mensagem de erro.
​


Exercícios - Quantum espresso
Nesta parte do treinamento, os exercícios propostos tem duas intenções:
​
1) Chamar a atenção para detalhes relacionados a teoria fundamental de sólidos
2) Fornecer o modus operandi de algumas metodologias teóricas
​
Os exercícios terão perguntas que deverão ser respondidas
Exercícios com a célula unitária de Silício (Fd3m, 5.43070 Å)
IMPORTANTE: Observe que, embora classificação da rede de Bravais do Si e Cu seja a mesma (FCC), o grupo espacial delas não é.
​
1) Monte o arquivo de entrada a partir dos dados do arquivo de informações cristalográficas (*.cif)
2) Coloque a energia de corte das ondas planas em 30 Ry
3) Selecione um grid de pontos k com uma grade de 4x4x4
​
4) Energia total e pseudopotenciais
4.1 - Vá ao site do QE e faça o download de dois pseudopotenciais (um do tipo USPP e outro PAW)
4.2 - Faça o cálculo de energia (scf) para a célula unitária de silício, com os mesmos parâmetros de cálculo, exceto pelo pseudopotencial.
4.3 - Compare as energias totais obtidas nos arquivos de saída (*.out)
​
5) Testes de convergência para a base (ondas planas)
5.1 - Vá a literatura e procure um artigo no qual os autores tenham trabalhado com células unitárias semelhantes (preferencialmente FCC) e com a mesma família de pseudopotenciais. Essa etapa é importante para que se defina o critério de convergência.
5.2 - Faça o cálculo de energia (scf) com diferentes valores de ondas planas
5.3 - Compare as energias, de acordo com o critério de convergência
​
6) Testes de convergência para a amostragem de pontos k (densidade da grade).
6.1 - Faça o cálculo de energia (scf) com diferentes amostragens de pontos k. Lembrando: A amostragem deve levar em consideração o tamanho da célula unitária e, obviamente, de cada um dos vetores. Quanto menor a célula unitária, maior a necessidade de amostragem (vide recíproca)
6.2 - Compare as energias, de acordo com o critério de convergência
​
7) Otimização de geometria
7.1 - Com o cutoff da base e a densidade da malha de pontos k definidos, realize dois cálculos de otimização de geometria diferentes
-
otimização dos íons (relax) - os parâmetros de célula permanecerão fixas e será permitida apenas a otimização de posição dos íons.
-
otimização total da célula (vc-relax) - a célula unitária será complemente otimizada (vetores e íons de saída
7.2 - Abra os arquivos de saída com o XCrysden e compare as distâncias e parâmetros de célula. Qual a variação percentual?


