Código YAMBO - YAMBO code
| Autor (es) original (is) | Andrea Marini |
|---|---|
| Desenvolvedor (s) | Conor Hogan, Myrta Gruning, Daniele Varsano, Davide Sangalli, Andrea Ferretti, Pedro Melo, Ryan McMillan, Fabio Affinito, Alejandro Molina-Sanchez, Henrique Miranda |
| lançamento inicial | 2008 |
| Versão estável | 4.5 / 2 de janeiro de 2020
|
| Repositório | github |
| Escrito em | Fortran , C |
| Sistema operacional | Unix , como o Unix |
| Plataforma | x86 , x86-64 |
| Disponível em | inglês |
| Modelo | Teoria de muitos corpos |
| Licença | GPL |
| Local na rede Internet | www |
Yambo é um pacote de software de computador para estudar aspectos da teoria de muitos corpos de sólidos e sistemas moleculares . Ele calcula as propriedades do estado excitado de sistemas físicos a partir dos primeiros princípios , por exemplo, da lei da mecânica quântica sem o uso de dados empíricos. É um software de código aberto lançado sob a GNU General Public License (GPL). No entanto, o repositório de desenvolvimento principal é privado e apenas um subconjunto dos recursos disponíveis no repositório privado é clonado no repositório público e, portanto, distribuído.
Propriedades de estado animado
Yambo pode calcular:
- Energias de quasipartículas : pólo de plasmon, aproximação COHSEX ou eixo real
- Vida dentro da aproximação GW
- Absorção óptica : RPA, Bethe Salpeter com ou sem aproximação de Tamm-Dancoff, TDDFT em TD-LDA ou LRC
- Espectroscopia de perda de energia de elétrons
- Polarizabilidade Dinâmica
- acoplamento elétron-fônon (teoria de perturbação estática e dinâmica)
- propriedades magneto-ópticas
- espectroscopia de superfície
Sistemas físicos
Yambo pode tratar moléculas e sistemas periódicos (ambos metálicos e isolantes) em três dimensões (sólidos cristalinos), duas dimensões (superfícies) e uma dimensão (por exemplo, nanotubos , nanofios , cadeias poliméricas ). Ele também pode lidar com sistemas magnéticos colineares (isto é, funções de onda polarizada por spin ) e não colineares ( spinors ).
Os sistemas típicos têm o tamanho de 10-100 átomos, ou 10-400 elétrons, por célula unitária no caso de sistemas periódicos.
Métodos teóricos e aproximações
Yambo se baseia na teoria da perturbação de muitos corpos e na teoria do funcional da densidade dependente do tempo . As energias das quasipartículas são calculadas dentro da aproximação GW para a energia própria. As propriedades ópticas são calculadas resolvendo a equação de Bethe-Salpeter ou usando a aproximação adiabática da densidade local dentro da teoria do funcional da densidade dependente do tempo.
Detalhes numéricos
Yambo usa uma base de ondas planas definida para representar as funções de onda eletrônicas (de partícula única). Os elétrons centrais são descritos com pseudopotenciais conservadores de normas . A escolha de um conjunto de base de onda plana impõe a periodicidade dos sistemas. Sistemas isolados e sistemas que são periódicos em apenas uma ou duas direções podem ser tratados usando uma abordagem de supercélula. Para tais sistemas, Yambo oferece duas técnicas numéricas para o tratamento das integrais de Coulomb: o método de corte e o método de integração aleatória.
Detalhes técnicos
- Yambo tem interface com códigos funcionais de densidade de onda plana : ABINIT , PWscf , CPMD e com a biblioteca ETSF-io. Os utilitários que fazem a interface desses códigos com o Yambo são distribuídos junto com o programa principal.
- O código-fonte é escrito em Fortran 95 e C
- O código é paralelizado usando bibliotecas MPI em execução
Interface de usuário
- Yambo tem uma interface de usuário de linha de comando. Chamar o programa com opção específica gera a entrada com valores padrão para os parâmetros consistentes com os dados presentes no sistema.
- Uma ferramenta de pós-processamento, distribuída junto com o programa principal, auxilia na análise e visualização dos resultados.
Requisitos do sistema, portabilidade
- Sistemas baseados em Unix
- Compiladores para as linguagens de programação Fortran 95 e C
- opcional: compilador PGI Fortran para a versão GPU (a partir da versão 4.5)
- opcional: netcdf , fftw , MPI (para execução paralela), etsf-io , libxc , hdf5
- Os requisitos de hardware dependem muito do sistema físico em estudo e do nível teórico escolhido. Para memória de acesso aleatório (RAM), os requisitos podem variar de menos de 1 GB a alguns GBs, dependendo do problema.
Aprendendo Yambo
A equipe do Yambo fornece uma página da web wiki com uma lista de tutoriais e notas de aula . No site do yambo também há uma lista de todas as teses feitas com o código.
Parte não distribuída
Parte do código YAMBO é mantida em um repositório privado. Estes são os recursos implementados e ainda não distribuídos:
- energia total usando o teorema da flutuação-dissipação da conexão adiabática
- campo magnético
- GW autoconsistente
- Bethe-Salpeter dinâmica
- Bethe-Salpeter de momentum finito
- espectroscopia em tempo real
- kernels avançados para teoria funcional da densidade dependente do tempo (kernel Nanoquanta).