INTEMA   05428
INSTITUTO DE INVESTIGACIONES EN CIENCIA Y TECNOLOGIA DE MATERIALES
Unidad Ejecutora - UE
congresos y reuniones científicas
Título:
UN FRAMEWORK ORIENTADO A OBJETOS PARA LA IMPLEMENTACIÓN DE MÉTODOS DISCRETOS
Autor/es:
DIEGO SANTIAGO; MARCO DONDERO; SANTIAGO URQUIZA
Lugar:
San Luis, Argentina
Reunión:
Congreso; XVII Congreso sobre Metodos Numericos y sus Aplicaciones - ENIEF 2008; 2008
Institución organizadora:
cimec - Intec - Universidad Nacional de San Luis - niversidad Nacional del Litoral - Conicet
Resumen:
En este trabajo se describe una implementación orientada a objetos de un Framework para la resolución de problemas derivados de métodos discretos (FEM, FVM, FDM, BEM, etc.). Se eligió el lenguaje de programación C++ como plataforma de desarrollo con el objetivo de obtener un código eficiente, fácilmente extensible y mantenible. Este desarrollo se basa en la arquitectura de un Framework preexistente implementado en Fortran del cual se reutilizan procedimientos vinculados al manejo de matrices, a la resolución de sistemas de ecuaciones, así como ciertas abstracciones de datos y lineamientos arquitectónicos. Se describen las principales abstracciones y clases que soportan la arquitectura, las que dan lugar a un diseño altamente modular, que cumple con el principio de inversión de control y que permite la reutilización total del programa principal, sin sufrir alteraciones, cuando se implementan diferentes formulaciones y métodos. Por último, se realizan estudios de desempeño y eficiencia computacional contrastando con la versión original en FORTRAN, sobre la base de casos adecuadamente elegidos. Los resultados obtenidos muestran que la versión en C++ no produce pérdidas apreciables de eficiencia mientras que representa un mejoramiento significativo en modularidad y extensibilidad, constituyéndose de esta manera, en una alternativa de gran potencial y versatilidad para la rápida implementación numérica de todo tipo de formulaciones, conservando los niveles de desempeño de los códigos de propósito específico.