PLUTO Test Problems  4.4-patch2
Functions
init.c File Reference

Accretion disk in 3D spherical coordinates. More...

Functions

void InitDomain (Data *d, Grid *grid)
 

Detailed Description

Setup a magnetized disk in 3D spherical coordinates $(r,\theta,\phi$). The disk model is taken form [Flo11],[Mig12] and it consists of an initial equilibrium in a point mass gravity $ 1/r^2$ with equilibrium profiles given by

\[ \rho = \frac{1}{R^{3/2}}\exp\left[\frac{\sin(\theta) - 1}{c_0^2}\right] \,,\qquad p = c_s^2\rho\ ,,\qquad v_\phi = \frac{1}{\sqrt{r}}\left(1 - \frac{5}{2\sin\theta}c_0^2\right) \]

where $R = r\sin\theta$ is the cylindrical radius while $c_0 = H/R$ and $c_s = H/R^{3/2}$ is the sound speed. Here H is the scale height and it is proportional to the cylindrical radius. The constant of proportionality is the ratio $ H/R $ defined by the input parameter g_inputParam[H_R]. With the current setting, one rotation period of the inner orbit (r=1) is $\Delta T = 2\pi$.

Differently from [Flo11], a polodial magnetic field is used here, with vector potential prescribed as follows:

\[ A_\phi = A_0\frac{\sin(2\pi R) - R\cos(2\pi R)}{R} \exp\left[-\left(\frac{z}{H}\right)^4\right] \exp\left[-\left(\frac{R-6}{2}\right)^4\right] \]

where A0 is a constant chosen to prescribe a given plasma beta. The exponential terms on the right hand side confine the magnetic field in the midplane around R=6. We also make the vector potential vanish identically for $ z/H > 2.5$ or $ R < 2.5$.

The boundary conditions are all set to userdef:

For the sake of simplicity only a quarter of a disk is considered. This test problems can be run normally or using the FARGO module, giving a saving factor of (roughly) 5. The figure below was produced by running the current setup at twice the resolution and for 90 orbits using FARGO.

mhd_spherical_disk.02.png
Density map of the disk after 90 innter orbits at twice the resolution.
Authors
A. Mignone (migno.nosp@m.ne@t.nosp@m.o.inf.nosp@m.n.it)
Date
Jul 19, 2019

References

Function Documentation

◆ InitDomain()

void InitDomain ( Data *  d,
Grid *  grid 
)

Assign initial condition by looping over the computational domain. Called after the usual Init() function to assign initial conditions on primitive variables. Value assigned here will overwrite those prescribed during Init().