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

Magnetized accretion torus. More...

Functions

void InitDomain (Data *d, Grid *grid)
 
void BackgroundField (double x1, double x2, double x3, double *B0)
 
void UserDefBoundary (const Data *d, RBox *box, int side, Grid *grid)
 

Detailed Description

Magnetized accretion torus in 2D spherical coordinates in a radially stratified atmosphere. The accretion torus is determined by the equilibrium condition

\[ -\frac{1}{R} + \frac{1}{2(1-a)}\frac{L_k^2}{r^{2-2a}} +(n+1)\frac{p}{\rho} = const \]

where $p = K\rho^\gamma $, R is the spherical radius, r is the cylindrical radius. Since $ n = 1/(\gamma-1) $ then $ 1+n = \gamma/(\gamma-1) $ we can also write using $ a = 0 $ (constant angular momentum distribution, Kuwabara Eq [8]):

\[ -\frac{1}{R} + \frac{1}{2}\frac{L_k^2}{r^2} + \frac{\gamma}{\gamma-1}K\rho^{\gamma-1} = c = -\frac{1}{r_{\min}} + \frac{1}{2}\frac{L_k^2}{r_{\min}^2} \]

where the constant on the right hand side is determined at the zero pressure surface. The previous equation is used to compute K at the point where the density is maximum and then again to obtain the density distribution:

\[ K = \frac{\gamma-1}{\gamma}\left[ c + \frac{1}{r_{\max}} - \frac{1}{2}\frac{L_k^2}{r_{\max}^2} \right]\frac{1}{\rho_{\max}^{\gamma-1}}\,;\qquad \rho = \left[\frac{\gamma-1}{K\gamma}\left(c + \frac{1}{R} - \frac{1}{2}\frac{L_k^2}{r^2}\right)\right]^{1/(\gamma-1)} \]

Thus, specifying $ r_{\min} $, $ r_{\max} $ and $ \rho_{\max}$ determine the torus structure completely. The torus azimuthal velocity is compute from $v_\phi = L_k/r$.

The atmosphere is assumed to be isothermal and it is given by the condition of hydrostatic balance:

\[ \rho_a(R) = \eta\rho_{\max} \exp\left[\left(\frac{1}{R}-\frac{1}{r_{\min}}\right) \frac{GM}{a^2}\right] \]

where $\eta$ is the density contrast between the (maximum) torus density and the atmosphere density at $(r_{\min},0)$.

The torus surface is defined by the condition $p_t > p_a$.

The dimensionless form of the equation employs on the following units:

The user defined parameters of this problem, as they appear in pluto.ini, allows for control in the Torus shape and the contrast of physical values:

  1. g_inputParam[RMIN]: minimum cylindrical radius for the torus (inner rim)
  2. g_inputParam[RMAX]: radius of the Torus where pressure is maximum
  3. g_inputParam[RHO_CUT]: minimum density to define the last contour of the magnetic vec. pot.
  4. g_inputParam[BETA]: plasma beta
  5. g_inputParam[ETA] density contrast between atmosphere and Torus
  6. g_inputParam[SCALE_HEIGHT]: atmosphere scale height $ H=GM/a^2$

The magnetic field can be specified to be inside the torus or as a large-scale dipole field. In the first case, we give the vector potential:

\[ A_\phi = B_0(\rho_t - \rho_{\rm cut}) \]

In the second case, a dipole field is specified in the function DipoleField(). The user-defined constant USE_DIPOLE can be used to select between the two configurations.

Author
A. Mignone (migno.nosp@m.ne@p.nosp@m.h.uni.nosp@m.to.i.nosp@m.t)
T. Matsakos (titos.nosp@m.@odd.nosp@m.job.u.nosp@m.chic.nosp@m.ago.e.nosp@m.du)
Date
March 02, 2017

References

Function Documentation

◆ BackgroundField()

void BackgroundField ( double  x1,
double  x2,
double  x3,
double *  B0 
)

Define the component of a static, curl-free background magnetic field.

◆ 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().

◆ UserDefBoundary()

void UserDefBoundary ( const Data *  d,
RBox *  box,
int  side,
Grid *  grid 
)

Assign user-defined boundary conditions. At the inner boundary we use outflow conditions, except for velocity which we reset to zero when there's an inflow