Mostrar el registro sencillo del ítem
Documentation & Integration of Automated Workflow in Atomistic Software for Charge Analysis with SIESTA
dc.contributor.author | Bergua López, Ramón María | |
dc.date.accessioned | 2023-03-14T10:40:03Z | |
dc.date.available | 2023-03-14T10:40:03Z | |
dc.date.issued | 2022 | |
dc.identifier.uri | http://hdl.handle.net/10334/7138 | |
dc.description | 39 páginas. | es |
dc.description.abstract | Trabajo de Máster Universitario en Simulación Molecular (2021/22). Directores: Dr. D. Felipe Jiménez Blas; Dra. Dª. Mónica García-Mota. En esta memoria se describe el trabajo llevado a cabo durante una estancia de 3 meses en SIMUNE Atomistics, una empresa que provee de herramientas de simulación a la comunidad científica, académica e industrial de todo el mundo, y está desarrollando un software de simulación en Python llamado ASAP 1 (Atomistic Simulation Advanced Platform). ASAP contiene, entre otros paquetes, el uso del código abierto de simulación SIESTA 2,3,4 (Spanish Initiative for Electronic Simulations with Thousands of Atoms), para facilitar al usuario el trabajo de manera mucho más rápida y flexible a través de una interfaz gráfica evitando así el uso de la terminal. También entre otros servicios, SIMUNE ofrece tutoriales específicos de SIESTA así como apoyo profesional para aquellos usuarios del código que quieran resolver problemas de computación específicos. El objetivo de mi estancia en SIMUNE consistió en documentar en forma de tutorial la manera de llevar a cabo el análisis de cargas mediante el uso de SIESTA que se incluirá en los tutoriales que ofrecen como parte de sus servicios a clientes. Una vez completado, tuve que implementar en ASAP una función que permitiera automatizar el análisis de cargas a través del software. Los pasos a seguir para completar mi objetivo satisfactoriamente fueron los siguientes. Tuve que familiarizarme con el uso del código SIESTA en la terminal, completando para ello los tutoriales de uso ofrecidos por SIMUNE y realicé un trabajo de feedback aportando mi experiencia de usuario para la mejora del mismo. Más adelante, estudié los distintos métodos de análisis de carga disponibles en SIESTA que calculan la población electrónica de una sustancia. Estos son los métodos de Mulliken, Hirshfeld y Voronoi y aprendí en qué consisten y por qué motivo es más recomendable el uso de un método u otro. Busqué en el manual de SIESTA la manera de utilizarlos y propuse una serie de ejemplos sencillos. Al finalizar la redacción del tutorial me encargué de la implementación de dicha funcionalidad en el software ASAP. Para ello tuve que escribir un código de programación orientado a objetos con el lenguaje Python. Comenzando por el diseño del widget que permite al usuario seleccionar entre los tres distintos métodos de análisis, continuando con el tratamiento de datos del archivo de salida que emite SIESTA para extraer el resultado del análisis y finalizando con la exposición de los mismos en una tabla en la que el usuario pueda visualizarlos. Para este trabajo fue vital el uso de GitLab, un portal de trabajo que permite a los equipos de desarrollo trabajar en el código, a través de ramas que se modifican de manera independiente y que luego se incluyen en el código principal tras su revisión. Como parte de mi tarea de desarrollador del software, fue necesario incluir también unos tests que verifiquen que la aplicación funcione como se espera, mediante modelos sencillos introducidos manualmente en el código, y cuyos resultados conocidos se comparaban con los resultados emitidos por la aplicación. Además, dado que los resultados de un cálculo atomístico varían en función de la multiplicidad de espín electrónico seleccionada (molécula no polarizada, spin colineal, o no colineal), tuvimos que tenerlo en cuenta a la hora del tratamiento de datos y exposición de resultados. En última instancia, aplicamos cambios cosméticos que dotaban a la tabla de una estética más elegante y legible para el usuario y presentamos el resultado en una demo a todo el equipo de la empresa. | es |
dc.description.abstract | This report describes the work carried out during a 3-month internship at SIMUNE Atomistics, a company that provides simulation tools to the scientific, academic and industrial community around the world. Simune is developing a simulation software in Python called ASAP (Atomistic Simulation Advanced Platform ). ASAP contains, among other packages, the use of the open source code SIESTA (Spanish Initiative for Electronic Simulations with Thousands of Atoms), to facilitate the user's work in a much faster and more flexible way through an interface graph thus avoiding the use of the terminal. In addition, among other services, SIMUNE offers specific SIESTA tutorials as well as professional support for those code users who want to solve specific computer problems. The goal of this internship was to document as a tutorial about how to perform charge analysis using SIESTA, which will be included in the tutorials that SIMUNE offers as part of their services. Once completed, I had to implement a function in ASAP that automatize charge analysis inside the software. The steps to follow were the following. I get comfortable with the use of SIESTA code in terminal, by fulfilling user tutorials offered by SIMUNE and doing a feedback work to contribute with my user experience to improve those tutorials. Then, I studied the different charge analysis methods available in SIESTA that calculate electronic population for a given substance. These methods are the Mulliken, Hirshfeld and Voronoi methods and I learned about their principles and also how to perform them using SIESTA wondering which method is more suitable for any situation. After writing the tutorial I was in charge of the implementation of said functionality in the ASAP software. For this task I had to develop an object-oriented programming code with the Python language. Starting with the design of the widget that allows the user to select between the three different analysis methods, continuing with the data processing of the output file issued by SIESTA, extract the result of the analysis and a presentation in a tablewhere the user can see them. Vital to this work was the use of GitLab, a web portal that allows development teams to work on code, through branches that are modified independently of the master code. These branches can be merge into master code after review. As part of my task as a software developer, it was also necessary to include some tests that verify that the application works as expected, through simple models introduced manually in the code, and whose known results were compared with the results issued by the application. In addition, given that the results of an atomistic calculation vary depending on the electron spin multiplicity selected (unpolarized molecule, collinear spin, or non-collinear), we had to take this into account when processing the data and presenting the results. Ultimately, we applied cosmetic changes that gave the table a more elegant and user-readable aesthetic and presented the result in a demo to the entire company team. | en |
dc.language.iso | spa | es |
dc.publisher | Universidad Internacional de Andalucía | es |
dc.relation.ispartofseries | Máster Universitario en Simulación Molecular | es |
dc.rights | Attribution-NonCommercial-NoDerivatives 4.0 Internacional | * |
dc.rights.uri | http://creativecommons.org/licenses/by-nc-nd/4.0/ | * |
dc.subject | SIMUNE Atomistics | es |
dc.subject | ASAP (Atomistic Simulation Advanced Platform) | es |
dc.subject | SIESTA (Spanish Initiative for Electronic Simulations with Thousands of Atoms) | es |
dc.subject | Software | es |
dc.title | Documentation & Integration of Automated Workflow in Atomistic Software for Charge Analysis with SIESTA | en |
dc.type | masterThesis | es |
dc.rights.accessRights | openAccess | es |