diff options
author | rhaas <rhaas@1bdb13ef-5d69-4035-bb54-08abeb3aa7f1> | 2013-07-19 15:46:05 +0000 |
---|---|---|
committer | rhaas <rhaas@1bdb13ef-5d69-4035-bb54-08abeb3aa7f1> | 2013-07-19 15:46:05 +0000 |
commit | 3013fe7053f5b54c178f695a2a7b0ccd34c96dee (patch) | |
tree | 9b609bb3aa44bc16dc07783537cd5c780335f0b1 /src/tov.c | |
parent | 3c38653246e3e96bed85921e998cc50ef6056b14 (diff) |
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.
git-svn-id: http://svn.einsteintoolkit.org/cactus/EinsteinInitialData/TOVSolver/trunk@143 1bdb13ef-5d69-4035-bb54-08abeb3aa7f1
Diffstat (limited to 'src/tov.c')
-rw-r--r-- | src/tov.c | 93 |
1 files changed, 3 insertions, 90 deletions
@@ -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 @@ void TOV_C_Integrate_RHS(CCTK_ARGUMENTS) 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 @@ void TOV_C_Integrate_RHS(CCTK_ARGUMENTS) 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 @@ void TOV_C_Exact(CCTK_ARGUMENTS) 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 @@ void TOV_C_Exact(CCTK_ARGUMENTS) 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 @@ void TOV_C_Exact(CCTK_ARGUMENTS) { 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 @@ void TOV_C_Exact(CCTK_ARGUMENTS) 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 @@ void TOV_C_Exact(CCTK_ARGUMENTS) 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 @@ void TOV_C_Exact(CCTK_ARGUMENTS) 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 @@ void TOV_C_Exact(CCTK_ARGUMENTS) 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 @@ void TOV_C_Exact(CCTK_ARGUMENTS) 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."); |