25 void PrimToCons (
double **uprim,
double **ucons,
int ibeg,
int iend)
38 double rhoe, kinb2,
T, gmm1;
43 for (i = ibeg; i <= iend; i++) {
63 u[ENG] = kinb2 + v[PRS]/gmm1;
71 u[ENG] = rhoe + kinb2;
73 if (u[ENG] != u[ENG]){
74 print(
"! PrimToCons: KE:%12.6e uRHO : %12.6e, m2 : %12.6e \n",rhoe,v[
RHO],u[ENG]);
88 int ConsToPrim (
double **ucons,
double **uprim,
int ibeg,
int iend,
109 int i, nv, err, ifail;
110 int use_entropy, use_energy=1;
111 double tau, rho, gmm1,
rhoe,
T;
112 double b2, m2, kinb2, rhog1;
120 for (i = ibeg; i <= iend; i++) {
131 print(
"! ConsToPrim: negative density (%8.2e), ", u[
RHO]);
142 EXPAND(v[
VX1] = u[MX1]*tau; ,
146 EXPAND(v[BX1] = u[BX1]; ,
150 kinb2 = 0.5*(m2*tau + b2);
157 print(
"! ConsToPrim: negative energy (%8.2e), ", u[ENG]);
171 use_energy = !use_entropy;
173 rhog1 = pow(rho, gmm1);
174 v[PRS] = u[ENTR]*rhog1;
177 print(
"! ConsToPrim: negative p(S) (%8.2e, %8.2e), ", v[PRS], u[ENTR]);
184 u[ENG] = v[PRS]/gmm1 + kinb2;
189 v[PRS] = gmm1*(u[ENG] - kinb2);
192 print(
"! ConsToPrim: negative p(E) (%8.2e), ", v[PRS]);
196 u[ENG] = v[PRS]/gmm1 + kinb2;
201 u[ENTR] = v[PRS]/pow(rho,gmm1);
209 #elif EOS == PVTE_LAW
217 if (u[ENG] != u[ENG]){
218 print(
"! ConsToPrim: NaN found\n");
222 rhoe = u[ENG] - kinb2;
230 print (
"! ConsToPrim: rhoe < 0 or T < T_CUT_RHOE; ");
234 u[ENG] = rhoe + kinb2;
243 u[RHO_D] =
MAX(u[RHO_D], 1.e-20);
245 EXPAND(v[MX1_D] = u[MX1_D]/v[RHO_D]; ,
246 v[MX2_D] = u[MX2_D]/v[RHO_D]; ,
247 v[MX3_D] = u[MX3_D]/v[RHO_D];)
#define T_CUT_RHOE
Sets the lowest cut-off temperature used in the PVTE_LAW equation of state.
double g_smallDensity
Small value for density fix.
double InternalEnergy(double *v, double T)
double g_smallPressure
Small value for pressure fix.
#define FLAG_CONS2PRIM_FAIL
#define FLAG_ENTROPY
Update pressure using entropy equation.
int GetEV_Temperature(double rhoe, double *v, double *T)
int ConsToPrim(double **ucons, double **uprim, int ibeg, int iend, unsigned char *flag)
void print(const char *fmt,...)
void Show(double **, int)
void PrimToCons(double **uprim, double **ucons, int ibeg, int iend)
double Pressure(double *v, double T)
int GetPV_Temperature(double *v, double *T)
#define QUIT_PLUTO(e_code)