LTensor : Una librería para cálculo tensorial de alto desempeño. - Rojas Fredini, Pablo Sebastián
La gran mayoría de los fenómenos de los fenómenos físicos son descriptos matemáticamente a través de tensores y mediante distintas operaciones y relaciones algebraicas entre éstos. Posiblemente los tensores más usados son los del rango 1 y 2 (vectores y matrices), pero tensores de más alto rango (particularmente hasta el orden 4) aparecen en todo momento en distintas ramas de la física y el cálculo numérico avanzado. Debido a la complejidad que involucran las ecuaciones formuladas, es común que las se expresen utilizando ls convención de la sumatoria de Einstein que permite escribir expresiones tensoriales de manera sintética y clara. Debido a que las ecuaciones son resueltas computacionalmente surge la necesidad de disponer de una herramienta que permita codificar de manera sencilla y eficiente las operaciones sensoriales formuladas durante el desarrollo teórico de la solución. En este trabajo se evalúan potenciales soluciones y se introduce una nueva librería de clases denominada Ltensor. La misma permite, mediante el uso de técnicas basadas en templates denominadas Expression Templates y Metaprogramming, codificar en C ecuaciones sensoriales expresadas en notación indicial que presentan una correspondencia directa con la versión en papel de las mismas. A los diversos beneficios aportados por Ltensor en términos de sintaxis y legibilidad de código se le suma uno fundamental para el cálculo científico: eficiencia computacional. En este sentido, durante el trabajo se llevaron a cabo pruebas que demostraron que Ltensor puede competir con código C nativo en cuanto a performance respecta. La librería fue utilizada exitosamente en un software de simulación demostrando flexibilidad, adecuación a los objetos y potencia.