Meep: Notas

Primero que nada cabe mencionar que la documentación de Meep en cuanto a la interfaz de C++ es por desgracia muy escasa por lo que se tendrá que hacer una indagatoria a fondo en el código de la librería para ver como funciona y entenderla, la ventaja de eso es que se conocerá la herramienta a fondo y se tendrá la mayor flexibilidad y control sobre el código de las simulaciones, la documentación de la herramienta da la impresión de que la intención principal del Meep desde el punto de vista de las personas que lo crearon fue que fuera utilizado principalmente y mayormente desde “Scheme” generando archivos con extension “.ctl” y utilizando la libctl y un paquete llamado Guile para hacer el linkeo con la librería C++ original, esto reduce mucho la complejidad de tener que utilizar la librería C++ para las simulaciones pero el problema que se puede observar es que no se entendería completamente la herramienta.

También, el código de C++ del Meep esta escasamente documentado y se puede ver de primer vistazo que no era la intención de que fuera utilizado directamente, hay un par de artículos como el C++ tutorial y el C++ reference donde se pueden ver algunos ejemplos de como utilizar el Meep desde C++ pero definitivamente esta documentación es insuficiente, también, los artículos apuntan a un documento .pdf que escribió Steven G. Johnson donde documenta algunos ejemplos pequeños de como utilizar la herramienta directamente desde C++ como librería pero de nuevo la documentación es poca.

Por otra parte, se tiene el mailing list en donde se pueden ver algunos ejemplos que hace la gente que utiliza el meep y en donde se dan buenos tips de como hacer las cosas en C++, en general la moraleja de todo esto es que se tendrá que sumergir en el código del la librería en sí si es que se quiere tener un nivel aceptable de entendimiento sobre este software, lo que resulta atractivo es poder documentar como funciona exactamente y como hacer cosas directamente desde la librería C++ ya que no existe esa documentación.

La ventaja principal es que se tiene la documentación actual la cual esta mayoritariamente en scheme pero también tenemos los archivos que mapean al scheme con las funciones de C++ por lo que se puede hacer ingeniería inversa, una vez que se haga se sabrá como definir una geometría o cualquier tipo de objeto directamente desde la librería C++ ya que la librería C++ en si no conoce nada de bloques, esferas, cilindros etc y por el contrario se utiliza un paquete de geometrías externo que también fue creado por el MIT.

Bueno, suficiente de tanta charla, lo primero que se tiene que hacer es instalar el Meep con todas las librerías de desarrollo para poder hacer las modificaciones y programas desde C++, en el siguiente post anexo una guía de instalación de paquetes, contiene algo de documentación al inicio de cada grupo de paquetes que necesita el Meep para funcionar para crear una idea de todas las dependencias de esta tan interesante herramienta..

Leave a Reply

Your email address will not be published. Required fields are marked *