Session 2

I. Simulating Magnetized Michel Accretion

Go to the ‘bhac_runs’ directory that you created in the first session tutorial

cd ~/bhac_runs

and copy the ‘Bondi2D’ test from the BHAC files.

cp -r $BHAC_DIR/tests/rmhd/bondi2D ./

Inside your bondi2D directory, type

$ BHAC_DIR / setup.pl -s

to see the configuration line. Unlike the shock tube test, now -d = 23, which means that this test is in 2D. Compile the test using

make

and create an output directory using

mkdir output

Before running the simulation, let’s reduce the completion time by changing the parameter ‘tmax’ in the parameter file ‘amrvac.par’ to 10.

Now run the simulation using

mpiexec -n 1 ./bhac

Execution should take approximately 2.5 minutes. If you have multiple CPUs you can speed up the process by using eg mpiexec -n 4 to run on 4 CPUs.

II. Viewing the output

To view the result, run

ipython3 –pylab

or

ipython –pylab

and load the Python BHAC tools by typing

import read, amrplot

As in the previous session, we can now load one of the output files of our simulation using

d = read.load(0,file=’output / data’, type=’vtu’)

To visualize the AMR data in 2D, the simplest thing is to use the polyplot (class) tool:

p1 = amrplot.polyplot (d.rho,d)

When plotting this and the other files, the plot should show a spherically symmetric density profile.

III. Error calculation and convergence tests

Since we started our simulation from an analytical initial condition, we can calculate the error rules by doing, for example:

Linf=np.max(d.rho-d0.rho)

where d0 contains the data from the initial condition.

You can then change the resolution of the solution by changing the nxlevel1 and nxlevel2 parameters in the parameter file. To save the output to another directory, specify that directory in the filenameout and filenamelog parameters. (Don’t forget to create the directory before running the simulation.)

Once you have simulations at different resolutions, plot the error norm against the number of nxlevel1 on a logarithmic graph. Is the simulation in the convergence regime?

Sesión 2

I. Simulación de acreción de Michel magnetizada

Sitúese en el directorio ‘bhac_runs’ que creó en el tutorial de la primera sesión

cd ~/bhac_runs

y copie el test ‘Bondi2D’ de los archivos de BHAC.

cp -r $BHAC_DIR/tests/rmhd/bondi2D ./

Dentro de su directorio bondi2D, teclee

$BHAC_DIR/setup.pl -s

para ver la línea de configuración. A diferencia de el test del tubo de choque, ahora -d=23, lo cual significa que este test es en 2D. Compile el test usando

make

y cree un directorio de salida usando

mkdir output

Antes de correr la simulación, reduzcamos el tiempo de finalización cambiando el parámetro ‘tmax’ en el archivo de parámetros ‘amrvac.par’ a 10.

Ahora corra la simulación usando

mpiexec -n 1 ./bhac

La ejecución debería tardar aproximadamente 2.5 minutos. Si cuenta con varios CPUs puede acelerar el proceso usando e.g. mpiexec -n 4 para correr en 4 CPUs.

II. Visualización de la salida

Para visualizar el resultado, ejecute

ipython3 –pylab

ó

ipython –pylab

y cargue las herramientas de Python BHAC escribiendo

import read, amrplot

Igual que en la sesión anterior, ahora podemos cargar uno de los archivos de salida de nuestra simulación usando

d=read.load(0,file=’output/data’, type = ‘vtu’)

Para visualizar los datos AMR en 2D, lo más sencillo es utilizar la herramienta (clase) polyplot:

p1=amrplot.polyplot(d.rho,d)

Al graficar éste y los demás archivos, la gráfica debería mostrar un perfil de densidad esféricamente simétrico.

III. Cálculo del error y pruebas de convergencia

Ya que iniciamos nuestra simulación a partir de una condición inicial analítica, podemos calcular las normas del error haciendo, por ejemplo:

Linf=np.max(d.rho – d0.rho)

donde d0 contiene los datos de la condición inicial.

A continuación puede cambiar la resolución de la solución cambiando los parámetros nxlevel1 y nxlevel2 en el archivo de parámetros. Para guardar la salida en otro directorio, especifique tal directorio en los parámetros filenameout y filenamelog . (No olvide crear el directorio antes de correr la simulación.)

Una vez que cuente con simulaciones a distintas resoluciones, grafique la norma del error contra el número de nxlevel1 en una gráfica logarítmica. ¿Está la simulación en el régimen de convergencia?