29 double v2, f, dW, S2_W2;
30 double fmin, fmax, v2min, v2max;
78 v2 = 0.5*(v2min + v2max);
86 if (fabs(f) < 1.e-9)
break;
88 if (v2 >= 1.0 || k >= MAX_ITER) {
98 print (
"! PressureFix(): too many iterations while fixing p , v^2 = %f\n", v2);
105 S2_W2 = par->
S2/(par->
W*par->
W);
106 #if RMHD_REDUCED_ENERGY == YES
107 par->
E = par->
W - par->
D - par->
prs + 0.5*(1.0 + v2)*par->
B2 - 0.5*S2_W2;
109 par->
E = par->
W - par->
prs + 0.5*(1.0 + v2)*par->
B2 - 0.5*S2_W2;
117 double rho = par->
rho;
118 double th = par->
prs/rho;
122 par->
sigma_c = par->
prs*par->
lor/pow(rho,2.0/3.0)*(1.5*th + sqrt(2.25*th*th + 1.0));
138 double lor2, W2, f, pg;
141 lor2 = 1.0/(1.0 - v2);
148 p->
W = (2.5*pg + sqrt(2.25*pg*pg + p->
D*p->
D))*p->
lor;
153 f = p->
S2*(2.0*p->
W + p->
B2) + p->
m2*W2;
154 f /= (p->
W + p->
B2)*(p->
W + p->
B2)*W2;
double m2
Square of total momentum (input).
double D
Lab density (input).
static double VelocitySquareFunc(double, void *)
double g_smallPressure
Small value for pressure fix.
double S2
Square of S (input).
int PressureFix(Map_param *par)
double rho
proper density (output)
double W
D*h*lor (output).
void print(const char *fmt,...)
double lor
Lorentz factor (output).
double prs
Thermal pressure (output).
double sigma_c
Conserved entropy (input).
double B2
Square of magnetic field (input).
double E
Total energy (input).