aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/GRHydro_Prim2Con.c66
1 files changed, 51 insertions, 15 deletions
diff --git a/src/GRHydro_Prim2Con.c b/src/GRHydro_Prim2Con.c
index b3c59be..4f206d1 100644
--- a/src/GRHydro_Prim2Con.c
+++ b/src/GRHydro_Prim2Con.c
@@ -75,12 +75,17 @@ void Primitive2ConservativeC(CCTK_ARGUMENTS)
int keytemp = 0;
// don't need special error handling for analytic EOS
- EOS_Omni_pressOMP(*GRHydro_eos_handle,keytemp,GRHydro_eos_rf_prec,n,
- rhominus,epsminus,NULL,NULL,pressminus,keyerr,&anyerr);
-
- EOS_Omni_pressOMP(*GRHydro_eos_handle,keytemp,GRHydro_eos_rf_prec,n,
- rhoplus,epsplus,NULL,NULL,pressplus,keyerr,&anyerr);
-
+#pragma omp parallel for
+ for(int k=0;k<cctk_ash[2];k++)
+ for(int j=0;j<cctk_ash[1];j++) {
+ int i = CCTK_GFINDEX3D(cctkGH,0,j,k);
+ EOS_Omni_press(*GRHydro_eos_handle,keytemp,GRHydro_eos_rf_prec,cctk_ash[0],
+ &(rhominus[i]),&(epsminus[i]),NULL,NULL,&(pressminus[i]),
+ &(keyerr[i]),&anyerr);
+ EOS_Omni_press(*GRHydro_eos_handle,keytemp,GRHydro_eos_rf_prec,cctk_ash[0],
+ &(rhoplus[i]),&(epsplus[i]),NULL,NULL,&(pressplus[i]),
+ &(keyerr[i]),&anyerr);
+ }
free(keyerr);
} else {
if(reconstruct_temper) {
@@ -98,9 +103,17 @@ void Primitive2ConservativeC(CCTK_ARGUMENTS)
tempplus[i] = MIN(MAX(tempplus[i],GRHydro_hot_atmo_temp),GRHydro_max_temp);
}
- EOS_Omni_pressOMP(*GRHydro_eos_handle,keytemp,GRHydro_eos_rf_prec,n,
- rhominus,epsminus,tempminus,Y_e_minus,pressminus,keyerr,&anyerr);
-
+ // call the EOS with slices
+#pragma omp parallel for
+ for(int k=0;k<cctk_ash[2];k++)
+ for(int j=0;j<cctk_ash[1];j++) {
+ int i = CCTK_GFINDEX3D(cctkGH,0,j,k);
+ EOS_Omni_press(*GRHydro_eos_handle,keytemp,GRHydro_eos_rf_prec,cctk_ash[0],
+ &rhominus[i],&epsminus[i],&tempminus[i],&Y_e_minus[i],
+ &pressminus[i],
+ &keyerr[i],&anyerr);
+ }
+
if(anyerr!=0) {
#pragma omp parallel for
for(int i=0;i<n;i++) {
@@ -120,8 +133,16 @@ void Primitive2ConservativeC(CCTK_ARGUMENTS)
"Aborting!");
}
- EOS_Omni_pressOMP(*GRHydro_eos_handle,keytemp,GRHydro_eos_rf_prec,n,
- rhoplus,epsplus,tempplus,Y_e_plus,pressplus,keyerr,&anyerr);
+#pragma omp parallel for
+ for(int k=0;k<cctk_ash[2];k++)
+ for(int j=0;j<cctk_ash[1];j++) {
+ int i = CCTK_GFINDEX3D(cctkGH,0,j,k);
+ EOS_Omni_press(*GRHydro_eos_handle,keytemp,GRHydro_eos_rf_prec,cctk_ash[0],
+ &rhoplus[i],&epsplus[i],&tempplus[i],&Y_e_plus[i],
+ &pressplus[i],
+ &keyerr[i],&anyerr);
+ }
+
if(anyerr!=0) {
#pragma omp parallel for
@@ -159,8 +180,16 @@ void Primitive2ConservativeC(CCTK_ARGUMENTS)
temperature[i] = MIN(MAX(temperature[i],GRHydro_hot_atmo_temp),GRHydro_max_temp);
}
- EOS_Omni_pressOMP(*GRHydro_eos_handle,keytemp,GRHydro_eos_rf_prec,n,
- rhominus,epsminus,tempminus,Y_e_minus,pressminus,keyerr,&anyerr);
+ // call the EOS with slices
+#pragma omp parallel for
+ for(int k=0;k<cctk_ash[2];k++)
+ for(int j=0;j<cctk_ash[1];j++) {
+ int i = CCTK_GFINDEX3D(cctkGH,0,j,k);
+ EOS_Omni_press(*GRHydro_eos_handle,keytemp,GRHydro_eos_rf_prec,cctk_ash[0],
+ &rhominus[i],&epsminus[i],&tempminus[i],&Y_e_minus[i],
+ &pressminus[i],
+ &keyerr[i],&anyerr);
+ }
if(anyerr!=0) {
#pragma omp parallel for
@@ -200,8 +229,15 @@ void Primitive2ConservativeC(CCTK_ARGUMENTS)
} // for i, i<n
}
- EOS_Omni_pressOMP(*GRHydro_eos_handle,keytemp,GRHydro_eos_rf_prec,n,
- rhoplus,epsplus,tempplus,Y_e_plus,pressplus,keyerr,&anyerr);
+#pragma omp parallel for
+ for(int k=0;k<cctk_ash[2];k++)
+ for(int j=0;j<cctk_ash[1];j++) {
+ int i = CCTK_GFINDEX3D(cctkGH,0,j,k);
+ EOS_Omni_press(*GRHydro_eos_handle,keytemp,GRHydro_eos_rf_prec,cctk_ash[0],
+ &rhoplus[i],&epsplus[i],&tempplus[i],&Y_e_plus[i],
+ &pressplus[i],
+ &keyerr[i],&anyerr);
+ }
if(anyerr!=0) {
#pragma omp parallel for