Currently Browsing

November, 2006

Fortran + xml

A la hora de definir un formato para un ficheros de opciones de programa que estas haciendo, se hace interesante el utilizar xml. Actualmente hay muchos intérpretes de xml para Java y C. Aunque no hay ninguno con las mismas caracterí­sticas para Fortran, el xmlf90.

Programado en Fortran 90, te permite leer un fichero xml y extraer toda clase de opciones del mismo. Actualmente lo uso para leer los datos de la simulación atómica, como los modelos fí­sicos a utilizar, el elemento quí­mico y las condiciones de densidad electrónica, temperatura y tamaño del plasma; pero la intención es en el futuro utilizarlo para leer las configuraciones electrónicas del plasma.

PETSc: Portable Extensible Toolkit for Scientific Computation

En este post voy a comentar una librerí­a de funciones matemáticas que me está siendo de gran ayuda para el desarrollo de mi proyecto de fin de carrera.

La librerí­a en cuestión se puede encontrar en el enlace: PETSc.

La caracterí­stica de PETSc que más me interesa es la inclusión entre sus funciones de muchos (y en verdad son muchos) métodos de resolución de sistemas de ecuaciones lineales por métodos iterativos (para los tamaños de sistemas de ecuaciones que tengo que manejar, un método directo es inviable).

Para más señas: incluye el Bigradiente Conjugado y el GMRES (Generalized Minimal Residual). Estos son los métodos que mejores resultados dieron cuando se utilizó la librerí­a CXML (Compaq eXtended Mathematical Library). Esta última librerí­a se descartó ya que no esta disponible para Linux y es comercial.

Por otro lado, y aunque no se empleará por el momento, otra de las grandes caracterí­sticas de PETSc es que es capaz de procesar los sistemas de ecuaciones en paralelo, aprovechando así­ la capacidad de cómputo del cluster GIRMA-Lab1. Todo ello de forma muy transparente a la hora de programarlo.

Otra caracterí­sticas a citar es que dispone de una buena documentación, muy bien estructurada y con numerosos ejemplos. ¡Esto és fantástico! Muchas librerí­as potentes son inútiles porque la curva de aprendizaje es tremendamente empinada. Por último, citaré que es muy portable ya que funciona tanto en Unix como en Windows (aunque no lo he comprobado).