Development of a finite elements framework for biological applications

Widening the usability of software can significantly enhance its adoption and the user engagement. Making the software available to experts on different fields can help open new research opportunities. This thesis presents the development of a finite elements library for Python, aimed at biological...

Descripción completa

Detalles Bibliográficos
Autor: Galvez Alcantara, David
Tipo de recurso: tesis de maestría
Fecha de publicación:2024
País:España
Institución:Universitat Oberta de Catalunya (UOC)
Repositorio:O2, repositorio institucional de la UOC
OAI Identifier:oai:openaccess.uoc.edu:10609/150592
Acceso en línea:http://hdl.handle.net/10609/150592
Access Level:acceso abierto
Palabra clave:finite elements
biology
python
hiperpy
elementos finitos
biología
Python (Computer program language) -- FMDP
Python (Llenguatge de programació) -- TFM
Descripción
Sumario:Widening the usability of software can significantly enhance its adoption and the user engagement. Making the software available to experts on different fields can help open new research opportunities. This thesis presents the development of a finite elements library for Python, aimed at biological simulations, designed to combine Python’s high-level usability with the performance of compiled languages. Our approach (hiperpy) leverages C++ code bindings and just-in-time compilation to create a Python interface for an already developed C++ finite elements framework (hiperlife). This allows users to access the capabilities of the C++ framework directly from Python. Our results show a performance overhead of approximately 10% of the execution time compared to the native C++ implementation, being lower for long executions. We conclude that this alternative interface can be highly beneficial for leveraging a finite-elements framework, prototyping, and for users proficient in high-level programming languages but not in C++. We also conclude that the Python interface maintains high-performance computation capabilities and the problem modelling capabilities of the original software.