5 – 9 de ago. de 2019
Fuso horário America/Sao_Paulo

Implementação e manutenção de código computacional em framework de cálculo de estrutura eletrônica de semicondutores

Não agendado
20m
Iniciação Científica

Palestrante

Ian Giestas Pauli

Descrição

O LFC(Laboratório de Física Computacional) ao longo de sua história vem trabalhando em modelos efetivos, usando o método $\mathrm{k}\cdot \mathrm{p}$ para descrever hetero-estruturas e super-redes. Para tanto, foi criado um software em Fortran para realizar os cálculos de estrutura eletrônica destes sistemas físicos. Possuindo aproximadamente $100$ mil linhas escritos em Fortran e $20$ anos de existência, o código acabou acumulando uma série de problemas, tornando a manutenção e a implementação de novas funcionalidades uma tarefa muito complicada. O objetivo do projeto é reimplementar o algoritmo desenvolvido no laboratório, estruturando-o de forma a facilitar a manutenções futuras e a sua utilização como uma biblioteca, usando técnicas de orientação a objetos e práticas modernas em Fortran, conciliando desempenho e praticidade (1), priorizando desempenho onde necessário: nos algoritmos de resolução de sistemas lineares, como o Gradiente Conjugado, e determinação de autovalores e autovetores, como o LOBPCG.(2-3) A nova implementação, ainda que faltando algumas funcionalidades, já conseguiu reduzir em 90% a quantidade de linhas, ao eliminar redundâncias diversas presentes no código antigo e usar bibliotecas externas para manipulação de strings e o uso de estruturas de dados do tipo chave-valor. A forma de entrar com dados no programa foi completamente repensada: antes a informação precisava ser escrita em um arquivo de texto pouco intuitivo no qual um caractere em branco fora do lugar ocasionava uma falha na leitura, agora as informações são passadas diretamente ao construtor de cada classe, que pode eventualmente depender de um arquivo externo, como é o caso no carregamento dos parâmetros dos materiais. Dessa forma, pode-se reutilizar o código na construção de uma interface para um usuário mais leigo em programação em um código à parte. Além disso, a implementação de novos hamiltonianos pode ser feita através de expressões muito parecidas com as expressões algébricas.

Referências

1 CLERMAN, N. S.; SPECTOR, W. Modern Fortran: style and usage. New York: Cambridge University Press, 2011.
2 GOLUB, G. H.; VAN LOAN, C. F. Matrix computations. 4th ed. Baltimore: Johns Hopkins University Press, 2013.
3 MEYER, C. Matrix analysis and applied linear algebra.Philadelphia: SIAM, 2000.

Subárea Física Computacional e Simulações Numéricas
Apresentação do trabalho acadêmico para o público geral Não

Autores primários

Ian Giestas Pauli Dr. Guilherme Matos Sipahi (Instituto de Química de São Carlos)

Materiais de apresentação

Ainda não há materiais