PLUTO
|
Axisymmetric jet propagation. More...
#include "pluto.h"
Go to the source code of this file.
Functions | |
void | GetJetValues (double, double *) |
static double | Profile (double, double) |
void | Init (double *v, double x1, double x2, double x3) |
void | Analysis (const Data *d, Grid *grid) |
void | UserDefBoundary (const Data *d, RBox *box, int side, Grid *grid) |
Variables | |
static double | a = 0.8 |
static double | Ta |
static double | pa |
static double | mua |
Axisymmetric jet propagation.
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
Definition in file init.c.
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.
Definition at line 264 of file init.c.
void Init | ( | double * | v, |
double | x1, | ||
double | x2, | ||
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 139 of file init.c.
|
static |
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 196 of file init.c.