Session 1

First session

I. Installing and running a first simulation with BHAC

Follow the steps in the tutorial “Getting started” at 

In case you are using a Windows machine, you probably need  to follow the steps here:

II. Visualizing the output

1. Setting up the BHAC python tools

You may need to install ipython3 and vtk. On a Linux terminal, you can do so by typing

    sudo apt install ipython3

    sudo apt-get install python3-vtk7

And following the instructions.

Now we need to set-up the path to the BHAC python tools. To do so, open the file .bashrc in your home directory, and add the line

export PYTHONPATH = $BHAC_DIR/tools/python:$PYTHONPATH

Just after the definition of BHAC_DIR.

Back on the terminal, type:

source ~/.bashrc

Now we should be ready to visualize BHAC data using ipython.

2. Plotting data

Inside the directory shockTube, run ipython3 with

ipython3 --pylab

and load the BHAC python tools by typing

import read, amrplot

Now we can load one of the output files from our previous run using


The data is now stored on the object “d”, and we can query several quantities by looking at its attributes. For example,

d.time contains the time.

d.rho contains the density array (the rest of variables contained in “d” were displayed at the time of loading it).

We can get the positions and store them in the array x by doing:


and plot the spatial distribution of density using


We can also plot with crosses in order to visualize the different AMR levels.


You might notice how the resolution increases close to the discontinuity.

Now we can read the second snapshot, using


and repeat the steps. To which time does this snapshot correspond? How does density and other quantities look like? What is the behaviour of mesh refinement?

III. Changing the parameters

  1. Number of adaptive mesh refinement levels

The number of AMR levels is controlled by the parameter ‘mxnest’ in the parameter file, amrvac1D.par. You may try increasing or decreasing by one the number of levels in the simulation, runnning and plotting again.

  1. Reconstruction

The type of reconstruction is controlled by the variable ‘typelimiter1’. Set it to ‘minmod’ instead of ‘cada3’. What is the difference in sharpness between the solution obtained with minmod and that obtained with cada3? For the complete list of reconstruction techniques available in BHAC, you can have a look at the manual at and look for ‘typelimiter1’.

  1. What else can you change?

Primera sesión

I. Instalación de BHAC y primera simulación

Siga los pasos en el tutorial“Guía de iniciación” en 

En caso de que esté utilizando una máquina con Windows, probablemente deba seguir los pasos descritos aquí:

II. Visualización de los datos

1. Configuración de las herramientas de Python de BHAC

Es posible que deba instalar ipython3 y vtk. En una terminal de Linux, puede hacerlo escribiendo

    sudo apt install ipython3

    sudo apt-get install python3-vtk7

Y siguiendo las instrucciones.

Ahora necesitamos configurar la ruta a las herramientas de Python de BHAC. Para hacerlo, abra el archivo .bashrc en su directorio personal y agregue la línea

export PYTHONPATH = $ BHAC_DIR / tools / python: $ PYTHONPATH

Justo después de la definición de BHAC_DIR.

De vuelta en la terminal, escriba:

source ~ / .bashrc

Ahora deberíamos estar listos para visualizar los datos de BHAC usando ipython.

2. Graficando

Dentro del directorio shockTube, ejecute ipython3 con

ipython3 --pylab


ipython --pylab

y cargue las herramientas de Python BHAC escribiendo

import read, amrplot

Ahora podemos cargar uno de los archivos de salida de nuestra primera simulación usando

d=read.load(0,file='output/data1D', type = 'vtu')

Los datos ahora se almacenan en el objeto “d”, y podemos consultar varias cantidades observando sus atributos. Por ejemplo,

d.time contiene el tiempo.

d.rho contiene el arreglo de la densidad (el resto de variables contenidas en “d” se muestran al momento de cargar el archivo).

Podemos obtener las posiciones y almacenarlas en el arreglo ‘x’ haciendo:


y graficar la distribución espacial de la densidad usando


También podemos graficar con cruces para visualizar los diferentes niveles de AMR.


Observe cómo la resolución aumenta cerca de la discontinuidad.

Ahora podemos leer el siguiente archivo, usando

e=read.load(1,file='output/data1D', type='vtu')

y repetir los pasos. ¿A qué tiempo corresponde este archivo? ¿Cómo se ven la densidad y otras cantidades? ¿Cuál es el comportamiento del refinamiento de la malla?

III. Cambiando otros parámetros

  1. Número de niveles de refinamiento de malla adaptativa

El número de niveles de AMR se controla mediante el parámetro ‘mxnest’ en el archivo de parámetros, amrvac1D.par. Puede intentar aumentar o disminuir en uno el número de niveles de la simulación, correr de nuevo y volver a graficar.

  1. Reconstrucción

El tipo de reconstrucción está controlado por la variable ‘typelimiter1’. Configúrelo en ‘minmod’ en lugar de ‘cada3’. ¿Cuál es la diferencia de nitidez entre la solución obtenida con minmod y la obtenida con cada3? Para obtener la lista completa de técnicas de reconstrucción disponibles en BHAC, puede consultar el manual en y buscar ‘typelimiter1’.

  1. ¿Qué otros parámetros se pueden cambiar?