Sunday, September 8, 2024     [ login ]

Forums

Ejecutar varios modelos de Iber en serie con python

Gonzalo García-Alén
13/07/2023 19:33:00
Ejecutar varios modelos de Iber en serie con python
Hola,

Hace poco comentaba con un compañero que en Iber existe la posibilidad de ejecutar el modelo sin entrar en la interfaz gráfica, simplemente llamando al ejecutable. Una de las ventajas más interesantes que tiene esto es que se puede programar la ejecución de varios modelos de Iber de manera autónoma. Si, por ejemplo, quiero ejecutar un modelo de Iber para 3 periodos de retorno diferentes, puedo construir los tres modelos y programar que se vayan ejecutando uno detrás de otro. Es decir, en cuanto termina la simulación de uno, empieza automáticamente la siguiente. Dejo aquí una descripción de cómo hago yo esto por si a alguno le resulta útil.

En primer lugar hay que construir de la manera habitual (a través de la interfaz gráfica) los modelos de Iber. Una vez construida la malla, asignadas las condiciones de contorno, etc., es importante generar los archivos de texto que utiliza Iber como input. Esto lo hacemos clickando en el botón de "Calcular" de la interfaz gráfica, como si quisiéramos hacer el cálculo normal del modelo. En cuanto aparezca este mensaje abajo a la izquierda ya podemos interrumpir la ejecución:

Este mensaje indica que se han generado todos los archivos de Iber dentro de la carpeta del modelo. Ahora ya podemos cerrar la interfaz gráfica (llamada GiD).

En segundo lugar, es necesario pegar dentro de la carpeta de cada modelo, el ejecutable de Iber que queramos usar. Los ejecutables de Iber los encontramos en la ubicación en la que se haya instalado Iber. En windows, están en esta ruta: ...\Iber 3.3\problemtypes\IBER.gid\bin\windows . Hay que ir a la ruta anterior y copiar-pegar el ejecutable que queramos usar dentro de cada carpeta. Si queremos usar el ejecutable Iberplus.exe, por ejemplo, copiamos este ejecutable de la ruta anterior y lo pegamos dentro de la carpeta de nuestro modelo (dentro de la carpeta *.gid).

Una vez hayamos hecho lo anterior con todos los modelos que queremos calcular, usamos python para ejecutar todos los modelos "en serie" de manera autónoma. Yo suelo usar Spyder (se puede descargar desde aquí: https://www.spyder-ide.org/) para editar y ejecutar código en python. Os dejo un link al código que utilizo yo: https://gitlab.com/gonzaloalen/scriptsiber/-/raw/main/EjecutarIber_serie.py. Solamente es necesario modificar la variable "ModelosIber" indicando la ruta de todos los modelos que se quieran ejecutar y ya se puede ejecutar el script. Se puede seguir la evolución del cálculo de cada modelo abriendo el archivo "proceso.rep" que tiene cada carpeta del modelo o bien a través de la terminal de python.

Espero le sea de ayuda a alguno. 

Un saludo,
Gonzalo García-Alén

 Ejecutar varios modelos de Iber en serie con python   Gonzalo García-Alén 13/07/2023 19:33
         Ejecutar varios modelos de Iber en serie con python   Enrique Escolano 13/07/2023 20:54
         Ejecutar varios modelos de Iber en serie con python   Gerardo Soto Guichapani 13/07/2023 21:04
             Ejecutar varios modelos de Iber en serie con python   jose miguel fragozo arevalo 13/07/2023 21:09
                 Ejecutar varios modelos de Iber en serie con python   Enrique Escolano 13/07/2023 21:36