[Commits] [svn:einsteintoolkit] GRHydro/trunk/src/ (Rev. 604)

rhaas at tapir.caltech.edu rhaas at tapir.caltech.edu
Tue Apr 15 14:48:25 CDT 2014


User: rhaas
Date: 2014/04/15 02:48 PM

Modified:
 /trunk/src/
  GRHydro_Prim2Con.c

Log:
 GRHydro: change prim2con EOS calls to calls for x-slices

File Changes:

Directory: /trunk/src/
======================

File [modified]: GRHydro_Prim2Con.c
Delta lines: +51 -15
===================================================================
--- trunk/src/GRHydro_Prim2Con.c	2014-04-15 19:48:22 UTC (rev 603)
+++ trunk/src/GRHydro_Prim2Con.c	2014-04-15 19:48:25 UTC (rev 604)
@@ -75,12 +75,17 @@
      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 @@
 	 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,9 +133,17 @@
 		    "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
 	 for(int i=0;i<n;i++) {
@@ -159,8 +180,16 @@
 	 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 @@
 	 } // 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



More information about the Commits mailing list