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?