6 void Init (
double *us,
double x1,
double x2,
double x3)
14 double lor, vy_in, rhob, rhom, pm, pb, hb, hm,
eta, vjet;
16 static int first_call = 1;
36 vj = sqrt(1.0 - 1.0/100.);
39 print (
"Mach number = %12.6e\n",Mach);
44 vy_in = sqrt(1.0 - 1.0/lor/lor);
45 rhob = g_inputParam[
RHO_IN];
51 eta = rhob*hb/(rhom*hm)*lor*lor;
52 vjet = sqrt(eta)/(1.0 + sqrt(eta))*vy_in;
53 print (
" Estimated jet velocity = %f\n",vjet);
57 sigma = g_inputParam[
RM]*g_inputParam[
RM]*(0.5 - 2.0*log(g_inputParam[
RM]));
58 print (
" sigma = %f\n",1.0/sigma);
96 double rho_out, vx_out, vy_out, vz_out;
97 double pr_out, bx_out, by_out, bz_out;
98 double prof, lor, pr_in, vy_in, bz_in, *r;
102 #error Boundary not implemented for Staggered MHD
111 EXPAND(vx_out = d->
Vc[
VX1][k][2*
JBEG - j - 1][i]; ,
112 vy_out = -d->
Vc[
VX2][k][2*
JBEG - j - 1][i]; ,
113 vz_out = d->
Vc[
VX3][k][2*
JBEG - j - 1][i];)
114 EXPAND(bx_out = d->
Vc[
BX1][k][2*
JBEG - j - 1][i]; ,
115 by_out = d->
Vc[
BX2][k][2*
JBEG - j - 1][i]; ,
116 bz_out = -d->
Vc[
BX3][k][2*
JBEG - j - 1][i];)
117 pr_out = d->
Vc[PRS][
k][2*
JBEG - j - 1][
i];
119 prof = (r[
i] <= 1.0 ? 1.0 : 0.0);
122 vy_in = sqrt(1.0 - 1.0/lor/lor);
137 EXPAND(d->
Vc[
VX1][k][j][i] = vx_out*(1.0 - prof); ,
138 d->
Vc[
VX2][k][j][i] = vy_out - (vy_out - vy_in)*prof; ,
139 d->
Vc[
VX3][k][j][i] = vz_out*(1.0 - prof);)
141 EXPAND(d->
Vc[
BX1][k][j][i] = bx_out*(1.0 - prof); ,
142 d->
Vc[
BX2][k][j][i] = by_out*(1.0 - prof); ,
143 d->
Vc[
BX3][k][j][i] = bz_out - (bz_out - bz_in)*prof; )
144 d->
Vc[PRS][
k][
j][
i] = pr_out - (pr_out - pr_in)*prof;
void UserDefBoundary(const Data *d, RBox *box, int side, Grid *grid)
int vpos
Location of the variable inside the cell.
#define BOX_LOOP(B, k, j, i)
double **** Vc
The main four-index data array used for cell-centered primitive variables.
double g_inputParam[32]
Array containing the user-defined parameters.
void print(const char *fmt,...)
#define X2_BEG
Boundary region at X2 beg.
long int JBEG
Lower grid index of the computational domain in the the X2 direction for the local processor...
void Analysis(const Data *d, Grid *grid)
void Init(double *v, double x1, double x2, double x3)