Dibujo de Mallas de Elementos Finitos.-

Una interesante aplicación de Metapost, es su utilización como elemento de dibujo, es decir, como paso final de otras aplicaciones para visualizar resultados.

En lo que sigue, vamos a ver una curiosa aplicación preparada, en principio, para Unix (Linux), pero que con pequeñas modificaciones se puede hacer extensible a cualquier otro S.O.

Para la realización práctica de esta aplicación, hacemos un uso importante del lenguaje de programación AWK que, aunque antiguo, sigue siendo extremadamente útil para determinadas utilidades y que nos parece muy adecuado a Metapost. La página a la que dirigimos a los interesados en él, es la de Brian W. Kernighan, que no necesita presentación.

Vamos a ir directamente al grano porque el proceso es algo entretenido y no queremos resultar aburridos.

Para llevar a cabo la tarea, hemos utilizado las herramientas siguientes,

  1. Lenguaje Fortran77 para la generación de la malla de E.F. y para la resolución del problema.
  2. Utilidad MAKE de Unix para la elección de lo que queremos, y cómo lo queremos, visualizar.
  3. Lenguaje de Programación AWK que nos genera diferentes programas de Metapost
  4. Metapost, claro está, aunque una vez establecido el método, todos los ficheros de Metapost se generan automáticamente. Metapost, como hemos dicho, juega el papel de la interface gráfica final.

Por otro lado, hemos creado diferentes opciones, dependiendo del tipo de malla o deformada que queramos visualizar. Así, cuando el tamaño que tratamos es pequeño, podemos dibujar la malla y/o la deformada señalando con números los valores de los nodos y/o de los elementos. Asímismo, podemos emplear colores para obtener un efecto más grato.

Todas las variantes puestas a punto por el momento, y que no pensamos incrementar, se eligen utilizando el comando MAKE. La respuesta a este comando es la pantalla de GV (GhostView), que aparece delante de nosotros con el dibujo final, que podemos imprimir o modificar o ...

Con lo dicho hasta ahora, el planteamiento general pensamos que ha quedado suficientemente claro. Vamos entonces a revisar cada uno de los puntos, primero desde un punto de vista puramente práctico, es decir, pensado para su utilización inmediata, y después daremos una explicación más detallada de cada uno de los puntos.

Los más impacientes pueden bajarse el fichero dist.tar.gz de aquí mismo y desgunzipearlo y destarrearlo, es decir escribir "tar xvzf dist.tar.gz" en un directorio cualquiera pero que tenga acceso a los ejecutables "dvips", "mpost", "awk", "latex", "gv" y finalmente "g77". (En una instalación standard de Linux, todo ésto es accesible sin más.). Veremos que se nos ha creado el directorio "dist". Vamos a él y escribimos "make". En unos instantes aparecerá una malla "simploncilla", con elementos de ocho nodos, con cada nodo numerado y cada elemento, incluído en un pequeño círculo, también numerado. Como comprobación podeis echar un vistazo a la figura1 donde se representa esta primera malla.

Bueno, pues eso es casi todo. Ahora vamos a comentar las diferentes posibilidades que tenemos de visionar la malla en cuestión aparte de la que hemos visto. Las opciones que tenemos son:

  1. Representar la malla desnuda (con perdón). Para eso deberemos escribir: "make M"
  2. Representar la misma malla que hemos comentado en primer lugar, pero con colores. Haremos: "make Mcne"
  3. Igual pero escribiendo sólo los elementos y sin color (indicada para mallas grandes).: "make Me"
  4. Lo mismo pero sólo numerando los nodos: "make Mn"
  5. Dibujar la deformada. Este caso, requiere un cálculo completo y lo explicaremos más adelante.
  6. Cambiar la malla. Para ello, basta copiar otro fichero adecuado de otra malla, con el mismo formato que tiene "mesh", a este fichero "mesh". En el paquete se incluyen tres mallas diferentes, mesh1, mesh2 y mesh3. Esta última es relativamente grande, por lo que si se pretende ver con nodos y elementos, el resultado será poco estimulante. (No olvidemos que esta malla tiene 480 elementos y alrededor de 1200 nodos.) Sin embargo, siempre podremos verla por trozos, utilizando la capacidad de zoom de GV.

A aquéllos que deseen explicaciones más prolijas y poder analizar deformadas, les sugerimos que vuelvan al menú de Aplicaciones y vayan a "Detalles....", donde encontrarán la página "pelma". En cualquier caso, recomendamos a todos que "fisguen" los ficheros *.awk y si se animan a pasar la malla tercera (mesh3) por "make Me", por ejemplo, que echen un vistazo al fichero "mesh.mp" que habrá generado el programita "genmp.awk". Entonces seguro que empezarán a entender todo este lío y la potencia de AWK aliado a Metapost.