Exportación e importación de datos

Resumen: En esta sección se muestran algunos de los útiles de FreeFEM para exportar datos a ficheros.

Exportación de mallados

La función savemesh permite salvar a un fichero la información relativa a un mallado:

Importación de mallados .msh y .mesh

Para recuperar un mallado de un fichero msh o mesh se puede usar la función readmesh:

Observación: los nombres dados a las curvas que definen el contorno no son almacenados en el fichero. Por lo tanto todas las referencias tendrán que hacerse mediante las etiquetas.

Ejemplo

 

Escritura y lectura de datos en ficheros

En la Introducción ya se describieron las instrucciones básicas de lectura y escritura de FreeFEM (ver aquí): cin y cout. Estas instrucciones utilizan los dispositivos de entrada y salida por defecto definidos en el sistema (normalmente, son el teclado y la pantalla

Para escribir/leer en un fichero, lo primero que hay que hacer es abrirlo y darle un nombre (interno al programa):

Después habrá que dirigir los datos a escribir/leer a ese nombre.

Ejemplo Este código crea/abre un archivo de nombre hola.txt y escribe en él tres líneas:

Observación: En FreeFEM, el código que se encierra entre llaves forma un bloque . El fichero se cierra de forma automática cuando se cierra el bloque o se termina el programa.

Ejemplo Este código abre el fichero creado en el ejemplo anterior y lee los datos almacenados en él, asignándolos, respectivamente, a las variables var1, num y var2.

Observación: más información y opciones para estas instrucciones aquí.

Ejemplo En este ejemplo se salva a un fichero la solución de un problema variacional calculada previamente:

Ejemplo En este ejemplo se recuperan los datos (mallado y solución) guardados en ficheros en el ejemplo anterior y se dibuja la solución.

 

Exportación para MATLAB

Los macros ffSaveVh y ffSaveData permiten salvar a un fichero, respectivamente, la información de un espacio de elementos finitos y los datos de una función de dicho espacio. Dichos macros están definidos, junto con otros, en el fichero ffmatlib.idp. Para poder utilizarlos es preciso "incluir" dicho fichero en nuestro código.

Ejemplo

Para posteriormente utilizar estos datos con MATLAB, es preciso usar una serie de M-funciones de la librería ffmatlib , que se encuentra en la carpeta del mismo nombre. En el programa MATLAB hay que añadir la ruta de dicha carpeta al PATH de MATLAB:

Observación: Tanto el fichero ffmatlib.idp con los macros para FreeFEM como la carpeta ffmatlib con la librería para MATLAB se pueden descargar aquí.

Ejemplo

Añadir el código siguiente al final del programa Elliptic3D.edp:

El siguiente código MATLAB permite visualizar la solución de dicho problema:

El código MATLAB siguiente permite ver la solución en un corte del objetpo 3D paralelo al plano OXZ. Los puntos S1, S2 y S3 determinan el plano de corte:

 

Anna Doubova - Rosa Echevarría - Dpto. EDAN - Universidad de Sevilla