User: rhaas Date: 2013/07/19 10:46 AM
Modified: /trunk/ interface.ccl, schedule.ccl /trunk/src/ external.inc, tov.c, utils.inc /trunk/test/ test_two_max.par
Log: do not set conservatives, remove TOV_Atmosphere
remove TOV_Atmosphere[] from the code and no longer set the conservative variables. Instead TOVSolver relies on GRHydro to set the conservatives in InitialPrim2Con and to enforce atmosphere in initialatmospherereset. This also fixes any asymmetry in atmosphere handling between the stars.
File Changes:
Directory: /trunk/src/ ======================
File [modified]: external.inc Delta lines: +0 -4 =================================================================== --- trunk/src/external.inc 2013-07-11 13:27:33 UTC (rev 142) +++ trunk/src/external.inc 2013-07-19 15:46:05 UTC (rev 143) @@ -57,7 +57,6 @@
assert(TOV_Surface!=0); assert(TOV_R_Surface!=0); - assert(TOV_Atmosphere!=0);
assert(TOV_r_1d!=0); assert(TOV_rbar_1d!=0); @@ -130,7 +129,6 @@
assert(TOV_Surface!=0); assert(TOV_R_Surface!=0); - assert(TOV_Atmosphere!=0);
assert(TOV_r_1d!=0); assert(TOV_rbar_1d!=0); @@ -200,7 +198,6 @@
assert(TOV_Surface!=0); assert(TOV_R_Surface!=0); - assert(TOV_Atmosphere!=0);
assert(TOV_r_1d!=0); assert(TOV_rbar_1d!=0); @@ -587,7 +584,6 @@ ); }
- /* FIXME: check for Atmosphere */ } } if (debug)
File [modified]: tov.c Delta lines: +3 -90 =================================================================== --- trunk/src/tov.c 2013-07-11 13:27:33 UTC (rev 142) +++ trunk/src/tov.c 2013-07-19 15:46:05 UTC (rev 143) @@ -42,7 +42,6 @@ CCTK_REAL * TOV_Surface=0; CCTK_REAL * TOV_R_Surface=0; CCTK_REAL * TOV_RProp_Surface=0; -CCTK_REAL * TOV_Atmosphere=0;
CCTK_REAL * TOV_r_1d=0; CCTK_REAL * TOV_rbar_1d=0; @@ -200,7 +199,6 @@ assert(TOV_Surface!=0); assert(TOV_R_Surface!=0); assert(TOV_RProp_Surface!=0); - assert(TOV_Atmosphere!=0);
assert(TOV_r_1d!=0); assert(TOV_rbar_1d!=0); @@ -222,20 +220,6 @@ else rho_central=TOV_Rho_Central[star];
- if (rho_abs_min > 0.0) - TOV_Atmosphere[star] = rho_abs_min; - else - TOV_Atmosphere[star] = rho_central * rho_rel_min; - - if (initial_rho_abs_min > 0.0) - TOV_Atmosphere[star] = initial_rho_abs_min; - else - if (initial_rho_rel_min > 0.0) - TOV_Atmosphere[star] = rho_central * initial_rho_rel_min; - - if (initial_atmosphere_factor > 0.0) - TOV_Atmosphere[star] *= initial_atmosphere_factor; - /* Set conformal state like set in parameter file if we do not use * the old initial data. In this case we have to use what we get */ if (!TOV_Use_Old_Initial_Data) @@ -526,10 +510,9 @@
CCTK_INT i,j,k, i3D, star; CCTK_REAL *r_to_star; - CCTK_REAL g_diag, max_g_diag, max_rho, det, sqrt_det; + CCTK_REAL g_diag, max_g_diag, max_rho; CCTK_REAL my_velx, my_vely, my_velz, my_psi4; - CCTK_REAL vlowx, vlowy, vlowz; - CCTK_REAL D_h_w, PI, local_tiny; + CCTK_REAL PI, local_tiny;
CCTK_INT tov_lapse;
@@ -543,7 +526,6 @@
assert(TOV_Surface!=0); assert(TOV_R_Surface!=0); - assert(TOV_Atmosphere!=0);
assert(TOV_r_1d!=0); assert(TOV_rbar_1d!=0); @@ -608,14 +590,9 @@ { CCTK_INFO("Not using old matter initial data"); TOV_C_fill(rho, LSH_MAX_I+1, 0.0); - TOV_C_fill(dens, LSH_MAX_I+1, 0.0); TOV_C_fill(eps, LSH_MAX_I+1, 0.0); TOV_C_fill(press, LSH_MAX_I+1, 0.0); - TOV_C_fill(tau, LSH_MAX_I+1, 0.0); TOV_C_fill(w_lorentz, LSH_MAX_I+1, 0.0); - TOV_C_fill(sx, LSH_MAX_I+1, 0.0); - TOV_C_fill(sy, LSH_MAX_I+1, 0.0); - TOV_C_fill(sz, LSH_MAX_I+1, 0.0); TOV_C_fill(velx, LSH_MAX_I+1, 0.0); TOV_C_fill(vely, LSH_MAX_I+1, 0.0); TOV_C_fill(velz, LSH_MAX_I+1, 0.0); @@ -789,12 +766,6 @@ rho[i3D] = max_rho; eps[i3D] = eps_point[star]; press[i3D] = press_point[star]; - /* Set atmosphere according to chosen star */ - if(rho[i3D] <= TOV_Atmosphere[star]) { - rho[i3D] = TOV_Atmosphere[star]; - press[i3D] = TOV_K * pow(rho[i3D],TOV_Gamma); - eps[i3D] = press[i3D]/(TOV_Gamma-1.0)/rho[i3D]; - }
} else if (CCTK_EQUALS(TOV_Combine_Method, "average")) @@ -832,33 +803,13 @@ eps[i3D] += eps_point[star_i]; press[i3D] += press_point[star_i]; /* we still have to know if we are inside one star - and which */ - if ( (rho_point[star_i] > max_rho) && - (rho_point[star_i] > TOV_Atmosphere[star_i])) + if (rho_point[star_i] > max_rho) { max_rho=rho_point[star_i]; star=star_i; } - - - /* Reset atmosphere according to chosen star */ - /* It is absolutely idiotic to have different - atmosphere thresholds for different stars that are placed - on the same goddamn grid. This also screws symmetry, so - we get rid of it /* - /* if(rho[i3D] <= TOV_Atmosphere[star_i]) { - rho[i3D] = TOV_Atmosphere[star_i]; - press[i3D] = TOV_K[star_i] * pow(rho[i3D],TOV_Gamma[star_i]); - eps[i3D] = press[i3D]/(TOV_Gamma[star_i]-1.0)/rho[i3D]; - } */ - }
- if(rho[i3D] <= TOV_Atmosphere[0]) { - rho[i3D] = TOV_Atmosphere[0]; - press[i3D] = TOV_K * pow(rho[i3D],TOV_Gamma); - eps[i3D] = press[i3D]/(TOV_Gamma-1.0)/rho[i3D]; - } - if (TOV_Conformal_Flat_Three_Metric) { my_psi4 -= ((TOV_Num_TOVs+TOV_Use_Old_Initial_Data-1)/my_psi4); @@ -888,34 +839,6 @@ 2*gxz[i3D] * velx[i3D] * velz[i3D]+ 2*gyz[i3D] * vely[i3D] * velz[i3D]) * my_psi4); } - /* now all combine methods are doing the same */ - if ((TOV_Num_TOVs==1) && (rho[i3D] <= TOV_Atmosphere[0])) - { - velx[i3D] = vely[i3D] = velz[i3D] = 0.0; - w_lorentz[i3D] = 1.0; - } - - SpatialDet(gxx[i3D],gxy[i3D],gxz[i3D],gyy[i3D],gyz[i3D],gzz[i3D],&det); - - sqrt_det=sqrt(det) * pow(my_psi4, 1.5); - dens[i3D] = sqrt_det * w_lorentz[i3D] * rho[i3D]; - - /* this variable is only for temporal storage */ - D_h_w = dens[i3D] * (1 + eps[i3D] + press[i3D]/rho[i3D]) * w_lorentz[i3D]; - - vlowx = gxx[i3D]*velx[i3D] + gxy[i3D]*vely[i3D] + gxz[i3D]*velz[i3D]; - vlowy = gxy[i3D]*velx[i3D] + gyy[i3D]*vely[i3D] + gyz[i3D]*velz[i3D]; - vlowz = gxz[i3D]*velx[i3D] + gyz[i3D]*vely[i3D] + gzz[i3D]*velz[i3D]; - - sx[i3D] = D_h_w * vlowx; - sy[i3D] = D_h_w * vlowy; - sz[i3D] = D_h_w * vlowz; - - /* One could use D_h_w here, but it would introduce more error */ - tau[i3D] = sqrt_det * (rho[i3D] *w_lorentz[i3D]*w_lorentz[i3D] * - (1.0 + eps[i3D]) + - press[i3D]*(w_lorentz[i3D]*w_lorentz[i3D]-1.0) ) - - dens[i3D]; }
@@ -976,11 +899,6 @@ TOV_Copy(i3D, velx_p_p, velx); TOV_Copy(i3D, vely_p_p, vely); TOV_Copy(i3D, velz_p_p, velz); - TOV_Copy(i3D, dens_p_p, dens); - TOV_Copy(i3D, tau_p_p, tau); - TOV_Copy(i3D, sx_p_p, sx); - TOV_Copy(i3D, sy_p_p, sy); - TOV_Copy(i3D, sz_p_p, sz); TOV_Copy(i3D, w_lorentz_p_p, w_lorentz); case 2: TOV_Copy(i3D, gxx_p, gxx); @@ -991,11 +909,6 @@ TOV_Copy(i3D, velx_p, velx); TOV_Copy(i3D, vely_p, vely); TOV_Copy(i3D, velz_p, velz); - TOV_Copy(i3D, dens_p, dens); - TOV_Copy(i3D, tau_p, tau); - TOV_Copy(i3D, sx_p, sx); - TOV_Copy(i3D, sy_p, sy); - TOV_Copy(i3D, sz_p, sz); TOV_Copy(i3D, w_lorentz_p, w_lorentz); } CCTK_INFO("Done interpolation.");
File [modified]: utils.inc Delta lines: +0 -5 =================================================================== --- trunk/src/utils.inc 2013-07-11 13:27:33 UTC (rev 142) +++ trunk/src/utils.inc 2013-07-19 15:46:05 UTC (rev 143) @@ -7,7 +7,6 @@ assert(TOV_Surface==0); assert(TOV_R_Surface==0); assert(TOV_RProp_Surface==0); - assert(TOV_Atmosphere==0);
assert(TOV_r_1d==0); assert(TOV_rbar_1d==0); @@ -20,7 +19,6 @@ TOV_Surface = malloc(TOV_Num_TOVs * sizeof(CCTK_REAL)); TOV_R_Surface = malloc(TOV_Num_TOVs * sizeof(CCTK_REAL)); TOV_RProp_Surface = malloc(TOV_Num_TOVs * sizeof(CCTK_REAL)); - TOV_Atmosphere = malloc(TOV_Num_TOVs * sizeof(CCTK_REAL));
TOV_r_1d = malloc(TOV_Num_Radial * TOV_Num_TOVs * sizeof(CCTK_REAL)); TOV_rbar_1d = malloc(TOV_Num_Radial * TOV_Num_TOVs * sizeof(CCTK_REAL)); @@ -39,7 +37,6 @@ assert(TOV_Surface!=0); assert(TOV_R_Surface!=0); assert(TOV_RProp_Surface!=0); - assert(TOV_Atmosphere!=0);
assert(TOV_r_1d!=0); assert(TOV_rbar_1d!=0); @@ -50,7 +47,6 @@ free(TOV_Surface); free(TOV_R_Surface); free(TOV_RProp_Surface); - free(TOV_Atmosphere);
free(TOV_r_1d); free(TOV_rbar_1d); @@ -63,7 +59,6 @@ TOV_Surface=0; TOV_R_Surface=0; TOV_RProp_Surface=0; - TOV_Atmosphere=0;
TOV_r_1d=0; TOV_rbar_1d=0;
Directory: /trunk/test/ =======================
File [modified]: test_two_max.par Delta lines: +2 -3 =================================================================== --- trunk/test/test_two_max.par 2013-07-11 13:27:33 UTC (rev 142) +++ trunk/test/test_two_max.par 2013-07-19 15:46:05 UTC (rev 143) @@ -43,10 +43,9 @@ tovsolver::TOV_Num_TOVs = 2 tovsolver::TOV_Num_Radial = 200000 tovsolver::TOV_Combine_Method = "maximum" +tovsolver::TOV_Gamma = 2.0 +tovsolver::TOV_K = 100.0
-tovsolver::TOV_Gamma = 2.0 -tovsolver::TOV_K = 100.0 - tovsolver::TOV_Rho_Central[0] = 0.16e-3 tovsolver::TOV_Position_x[0] = -15.0
Directory: /trunk/ ==================
File [modified]: interface.ccl Delta lines: +1 -7 =================================================================== --- trunk/interface.ccl 2013-07-11 13:27:33 UTC (rev 142) +++ trunk/interface.ccl 2013-07-19 15:46:05 UTC (rev 143) @@ -1,18 +1,12 @@ # Interface definition for thorn TOVSolver
implements: TOVSolver -inherits: GRHydro, Constants +inherits: ADMBase, HydroBase, Constants, StaticConformal
USES INCLUDE: constants.h
public:
-void FUNCTION SpatialDet(CCTK_REAL IN gxx, CCTK_REAL IN gxy, \ - CCTK_REAL IN gxz, CCTK_REAL IN gyy, \ - CCTK_REAL IN gyz, CCTK_REAL IN gzz, \ - CCTK_REAL OUT det) -USES FUNCTION SpatialDet - CCTK_INT FUNCTION Set_Rho_ADM( \ CCTK_POINTER_TO_CONST IN cctkGH, \ CCTK_INT IN size, \
File [modified]: schedule.ccl Delta lines: +0 -3 =================================================================== --- trunk/schedule.ccl 2013-07-11 13:27:33 UTC (rev 142) +++ trunk/schedule.ccl 2013-07-19 15:46:05 UTC (rev 143) @@ -30,9 +30,6 @@ SYNC: press SYNC: eps SYNC: vel - SYNC: dens - SYNC: tau - SYNC: scon SYNC: w_lorentz } "Group for the TOV initial data"
commits@lists.einsteintoolkit.org