aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorrhaas <rhaas@c83d129a-5a75-4d5a-9c4d-ed3a5855bf45>2014-04-15 19:48:28 +0000
committerrhaas <rhaas@c83d129a-5a75-4d5a-9c4d-ed3a5855bf45>2014-04-15 19:48:28 +0000
commit42214f960ac8c1d2d62bf49d587638c7e4021664 (patch)
tree26dafb7f630d2ed4ec27771bcdedd134e45613b1
parent09bde56fc60492d2f51385680efb66c97be59782 (diff)
GRHydro: start changes for improved EOS and HLLE handling
git-svn-id: http://svn.einsteintoolkit.org/cactus/EinsteinEvolve/GRHydro/trunk@605 c83d129a-5a75-4d5a-9c4d-ed3a5855bf45
-rw-r--r--interface.ccl19
-rw-r--r--src/GRHydro_Prim2Con.c32
2 files changed, 33 insertions, 18 deletions
diff --git a/interface.ccl b/interface.ccl
index d7451a4..c04b9a3 100644
--- a/interface.ccl
+++ b/interface.ccl
@@ -286,6 +286,21 @@ void FUNCTION EOS_Omni_press(CCTK_INT IN eoskey, \
USES FUNCTION EOS_Omni_press
+void FUNCTION EOS_Omni_press_cs2(CCTK_INT IN eoskey, \
+ CCTK_INT IN havetemp, \
+ CCTK_REAL IN rf_precision, \
+ CCTK_INT IN npoints, \
+ CCTK_REAL IN ARRAY rho, \
+ CCTK_REAL INOUT ARRAY eps, \
+ CCTK_REAL INOUT ARRAY temp, \
+ CCTK_REAL IN ARRAY ye, \
+ CCTK_REAL OUT ARRAY press, \
+ CCTK_REAL OUT ARRAY cs2, \
+ CCTK_INT OUT ARRAY keyerr, \
+ CCTK_INT OUT anyerr)
+
+USES FUNCTION EOS_Omni_press_cs2
+
void FUNCTION EOS_Omni_DPressByDEps(CCTK_INT IN eoskey, \
CCTK_INT IN havetemp, \
@@ -455,8 +470,8 @@ CCTK_REAL local_shift type = GF Timelevels = 1 tags='Prolongation="None" checkpo
real GRHydro_prim_bext type = GF Timelevels = 1 tags='Prolongation="None" checkpoint="no"'
{
rhoplus, velxplus, velyplus, velzplus, pressplus, epsplus, w_lorentzplus,
- rhominus, velxminus, velyminus, velzminus, pressminus, epsminus,
- w_lorentzminus
+ cs2plus, rhominus, velxminus, velyminus, velzminus, pressminus, epsminus,
+ w_lorentzminus, cs2minus
} "Primitive variables extended to the cell boundaries"
int GRHydro_scalars type = SCALAR tags='checkpoint="no"'
diff --git a/src/GRHydro_Prim2Con.c b/src/GRHydro_Prim2Con.c
index 4f206d1..16a8476 100644
--- a/src/GRHydro_Prim2Con.c
+++ b/src/GRHydro_Prim2Con.c
@@ -79,11 +79,11 @@ void Primitive2ConservativeC(CCTK_ARGUMENTS)
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]),
+ EOS_Omni_press_cs2(*GRHydro_eos_handle,keytemp,GRHydro_eos_rf_prec,cctk_ash[0],
+ &(rhominus[i]),&(epsminus[i]),NULL,NULL,&(pressminus[i]),&(cs2minus[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]),
+ EOS_Omni_press_cs2(*GRHydro_eos_handle,keytemp,GRHydro_eos_rf_prec,cctk_ash[0],
+ &(rhoplus[i]),&(epsplus[i]),NULL,NULL,&(pressplus[i]),&(cs2plus[i]),
&(keyerr[i]),&anyerr);
}
free(keyerr);
@@ -108,9 +108,9 @@ void Primitive2ConservativeC(CCTK_ARGUMENTS)
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],
+ EOS_Omni_press_cs2(*GRHydro_eos_handle,keytemp,GRHydro_eos_rf_prec,cctk_ash[0],
&rhominus[i],&epsminus[i],&tempminus[i],&Y_e_minus[i],
- &pressminus[i],
+ &pressminus[i],&cs2minus[i],
&keyerr[i],&anyerr);
}
@@ -137,9 +137,9 @@ void Primitive2ConservativeC(CCTK_ARGUMENTS)
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],
+ EOS_Omni_press_cs2(*GRHydro_eos_handle,keytemp,GRHydro_eos_rf_prec,cctk_ash[0],
&rhoplus[i],&epsplus[i],&tempplus[i],&Y_e_plus[i],
- &pressplus[i],
+ &pressplus[i],&cs2plus[i],
&keyerr[i],&anyerr);
}
@@ -185,9 +185,9 @@ void Primitive2ConservativeC(CCTK_ARGUMENTS)
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],
+ EOS_Omni_press_cs2(*GRHydro_eos_handle,keytemp,GRHydro_eos_rf_prec,cctk_ash[0],
&rhominus[i],&epsminus[i],&tempminus[i],&Y_e_minus[i],
- &pressminus[i],
+ &pressminus[i],&cs2minus[i],
&keyerr[i],&anyerr);
}
@@ -212,9 +212,9 @@ void Primitive2ConservativeC(CCTK_ARGUMENTS)
int lkeyerr[1];
int lanyerr = 0;
int lkeytemp = 1;
- EOS_Omni_press(*GRHydro_eos_handle,lkeytemp,GRHydro_eos_rf_prec,ln,
+ EOS_Omni_press_cs2(*GRHydro_eos_handle,lkeytemp,GRHydro_eos_rf_prec,ln,
&rhominus[i],&epsminus[i],&tempminus[i],
- &Y_e_minus[i],&pressminus[i],lkeyerr,&lanyerr);
+ &Y_e_minus[i],&pressminus[i],&cs2minus[i],lkeyerr,&lanyerr);
if(lanyerr !=0) {
CCTK_VWarn(0, __LINE__, __FILE__, CCTK_THORNSTRING,
"Aborting! keyerr=%d, r=%15.6E, t=%15.6E, ye=%15.6E",
@@ -233,9 +233,9 @@ void Primitive2ConservativeC(CCTK_ARGUMENTS)
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],
+ EOS_Omni_press_cs2(*GRHydro_eos_handle,keytemp,GRHydro_eos_rf_prec,cctk_ash[0],
&rhoplus[i],&epsplus[i],&tempplus[i],&Y_e_plus[i],
- &pressplus[i],
+ &pressplus[i],&cs2plus[i],
&keyerr[i],&anyerr);
}
@@ -259,9 +259,9 @@ void Primitive2ConservativeC(CCTK_ARGUMENTS)
int lkeyerr[1];
int lanyerr = 0;
int lkeytemp = 1;
- EOS_Omni_press(*GRHydro_eos_handle,lkeytemp,GRHydro_eos_rf_prec,ln,
+ EOS_Omni_press_cs2(*GRHydro_eos_handle,lkeytemp,GRHydro_eos_rf_prec,ln,
&rhoplus[i],&epsplus[i],&tempplus[i],
- &Y_e_plus[i],&pressplus[i],lkeyerr,&lanyerr);
+ &Y_e_plus[i],&pressplus[i],&cs2plus[i],lkeyerr,&lanyerr);
if(lanyerr !=0) {
CCTK_VWarn(0, __LINE__, __FILE__, CCTK_THORNSTRING,
"Aborting! keyerr=%d, r=%15.6E, t=%15.6E, ye=%15.6E",