PLUTO
|
Reconnection test (Harris sheet) in 2D. More...
#include "pluto.h"
Go to the source code of this file.
Functions | |
void | Init (double *v, double x, double y, double x3) |
void | Analysis (const 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) |
Reconnection test (Harris sheet) in 2D.
In this setup - see also Section 5.3 of Mignone et al., ApJS (2012) 198:7 - we reproduce a 2D Harris current sheet with magnetic field profile given by
where l
is the half thickness of the layer. The density profile is given by
We use and
, following the guidelines of Birn et al., 2001, while
l
is user supplied.
In order to achieve equilibrium with the magnetic pressure, the thermal pressure is chosen to be , where
. The initial equilibrium is pertubed by an additional magnetic field defined as
The Lundquist number of a plasma is defined as
where is the Alfvén velocity,
,
is a typical lenght scale, and
the plasma resistivity. The reconnection rate
, with
and
the plasma inflow and outflow velocities, follows the Sweet-Parker scaling law
. In this example several values of the resitivity
, that correspond to different values of the Lundquist number
, are provided. The reconnection rate, calculated as the ratio
(see Mignone et al., 2012) verifies the Sweet-Parker scaling in the range
(see the first figure below).
The input parameters (read from pluto.ini
) for this test problem are:
g_inputParam[ETA]
: sets the value of resistivity g_inputParam[WIDTH]
: sets the layer width l
; g_inputParam[PSI0]
: sets the amplitude of perturbation Reference
Definition in file init.c.
void BackgroundField | ( | double | x1, |
double | x2, | ||
double | x3, | ||
double * | B0 | ||
) |
void Init | ( | double * | v, |
double | x, | ||
double | y, | ||
double | x3 | ||
) |
The Init() function can be used to assign initial conditions as as a function of spatial position.
[out] | v | a pointer to a vector of primitive variables |
[in] | x1 | coordinate point in the 1st dimension |
[in] | x2 | coordinate point in the 2nd dimension |
[in] | x3 | coordinate point in the 3rdt dimension |
The meaning of x1, x2 and x3 depends on the geometry:
Variable names are accessed by means of an index v[nv], where nv = RHO is density, nv = PRS is pressure, nv = (VX1, VX2, VX3) are the three components of velocity, and so forth.
Definition at line 82 of file init.c.
Assign user-defined boundary conditions.
[in,out] | d | pointer to the PLUTO data structure containing cell-centered primitive quantities (d->Vc) and staggered magnetic fields (d->Vs, when used) to be filled. |
[in] | box | pointer to a RBox structure containing the lower and upper indices of the ghost zone-centers/nodes or edges at which data values should be assigned. |
[in] | side | specifies the boundary side where ghost zones need to be filled. It can assume the following pre-definite values: X1_BEG, X1_END, X2_BEG, X2_END, X3_BEG, X3_END. The special value side == 0 is used to control a region inside the computational domain. |
[in] | grid | pointer to an array of Grid structures. |
Assign user-defined boundary conditions in the lower boundary ghost zones. The profile is top-hat:
where and
M
is the flow Mach number (the unit velocity is the jet sound speed, so ).
Assign user-defined boundary conditions:
x < 1/6
and reflective boundary otherwise.Assign user-defined boundary conditions at inner and outer radial boundaries. Reflective conditions are applied except for the azimuthal velocity which is fixed.
Assign user-defined boundary conditions.
[in/out] | d pointer to the PLUTO data structure containing cell-centered primitive quantities (d->Vc) and staggered magnetic fields (d->Vs, when used) to be filled. | |
[in] | box | pointer to a RBox structure containing the lower and upper indices of the ghost zone-centers/nodes or edges at which data values should be assigned. |
[in] | side | specifies on which side boundary conditions need to be assigned. side can assume the following pre-definite values: X1_BEG, X1_END, X2_BEG, X2_END, X3_BEG, X3_END. The special value side == 0 is used to control a region inside the computational domain. |
[in] | grid | pointer to an array of Grid structures. |
Set the injection boundary condition at the lower z-boundary (X2-beg
must be set to userdef
in pluto.ini
). For we set constant input values (given by the GetJetValues() function while for $ R > 1 $ the solution has equatorial symmetry with respect to the
z=0
plane. To avoid numerical problems with a "top-hat" discontinuous jump, we smoothly merge the inlet and reflected value using a profile function Profile().
Definition at line 130 of file init.c.