PLUTO Test Problems
4.4-patch2
|
Axisymmetric jet propagation. More...
Functions | |
void | GetJetValues (double, double *) |
void | InitDomain (Data *d, Grid *grid) |
void | UserDefBoundary (const Data *d, RBox *box, int side, Grid *grid) |
Description.
The jet problem is set up in axisymmetric cylindrical coordinates . We label ambient and jet values with the suffix "a" and "j", respectively. The ambient medium is at rest and is characterized by uniform density and pressure,
and
. The beam enters from the lower-z boundary from a circular nozzle of radius
and carries a constant poloidal field
and a (radially-varying) toroidal component
. Flow variables are prescribed as
Here a
is the magnetization radius while . These profiles are similar to the ones used by Tesileanu et al. (2008). The pressure distribution is found by solving the radial momentum balance between thermal, centrifugal and magnetic forces:
Neglecting rotation and assuming Bz
to be constant the solution of radial momentum balance becomes
and the jet on-axis pressure increases for increasing toroidal field:
where is the ambient pressure.
Normalization.
Since the MHD equations are scale-invariant we have the freedom to specify a reference length, density and velocity. Here we choose
UNIT_VELOCITY
). In this case, the ambient pressure is computed from the ambient temperature Ta = 2500 K
.In this way the number of parameters is reduced to 4:
g_inputParam[ETA]
: density contrast g_inputParam[JET_VEL]
: Jet velocity g_inpurParam[SIGMA_Z]
: poloidal magnetization;g_inpurParam[SIGMA_PHI]
: toroidal magnetization; Magnetization are defined as follows:
The following MAPLE code can be used to verify the solution:
When cooling is enabled, two additional parameters controlling the amplitude and frequency of perturbation can be used:
g_inputParam[PERT_AMPLITUDE]
: perturbation amplitude (in units of jet velocity);g_inputParam[PERT_PERIOD]
: perturbation period (in years).The jet problem has been tested using a variety of configurations, namely:
Conf. | GEOMETRY | DIM | T. STEPPING | RECONSTRUCTION | divB | EOS | COOLING |
---|---|---|---|---|---|---|---|
#01 | CYLINDRICAL | 2 | RK2 | LINEAR | CT | IDEAL | NO |
#02 | CYLINDRICAL | 2 | HANCOCK | LINEAR | CT | IDEAL | NO |
#03 | CYLINDRICAL | 2 | ChTr | PARABOLIC | CT | IDEAL | NO |
#04 | CYLINDRICAL | 2.5 | RK2 | LINEAR | NONE | IDEAL | NO |
#05 | CYLINDRICAL | 2.5 | RK2 | LINEAR | CT | IDEAL | NO |
#06 | CYLINDRICAL | 2.5 | RK2 | LINEAR | CT | PVTE_LAW | NO |
#07 | CYLINDRICAL | 2.5 | ChTr | PARABOLIC | NONE | IDEAL | SNEq |
#08 | CYLINDRICAL | 2.5 | ChTr | PARABOLIC | NONE | IDEAL | MINEq |
#09 | CYLINDRICAL | 2.5 | ChTr | PARABOLIC | NONE | IDEAL | H2_COOL |
Here 2.5 is a short-cut for to 2 dimensions and 3 components.
The following image show the (log) density map at the end of simulation for setup #01.
References
void GetJetValues | ( | double | R, |
double * | vj | ||
) |
Define jet value as functions of the (cylindrical) radial coordinate. For a periodic jet configuration, density and verical velocity smoothly join the ambient values. This has no effect on equilibrium as long as rotation profile depends on the chosen density profile.
void InitDomain | ( | Data * | d, |
Grid * | grid | ||
) |
void UserDefBoundary | ( | const Data * | d, |
RBox * | box, | ||
int | side, | ||
Grid * | grid | ||
) |
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().