PLUTO Test Problems
4.4-patch2
|
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) |
Magnetized accretion torus in 2D spherical coordinates in a radially stratified atmosphere. The accretion torus is determined by the equilibrium condition
where ,
R
is the spherical radius, r
is the cylindrical radius. Since then
we can also write using
(constant angular momentum distribution, Kuwabara Eq [8]):
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:
Thus, specifying ,
and
determine the torus structure completely. The torus azimuthal velocity is compute from
.
The atmosphere is assumed to be isothermal and it is given by the condition of hydrostatic balance:
where is the density contrast between the (maximum) torus density and the atmosphere density at
.
The torus surface is defined by the condition .
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:
g_inputParam[RMIN]
: minimum cylindrical radius for the torus (inner rim)g_inputParam[RMAX]
: radius of the Torus where pressure is maximumg_inputParam[RHO_CUT]
: minimum density to define the last contour of the magnetic vec. pot.g_inputParam[BETA]
: plasma betag_inputParam[ETA]
density contrast between atmosphere and Torusg_inputParam[SCALE_HEIGHT]
: atmosphere scale height 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:
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.
References
void BackgroundField | ( | double | x1, |
double | x2, | ||
double | x3, | ||
double * | B0 | ||
) |
Define the component of a static, curl-free background magnetic field.
void InitDomain | ( | Data * | d, |
Grid * | grid | ||
) |
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