From 22f983cf17964338f132659d3fbf6591dffad8fa Mon Sep 17 00:00:00 2001 From: Yohai Meiron Date: Wed, 18 Mar 2020 11:55:24 -0400 Subject: [PATCH] Moved some variables from global to main and removed some unused variables --- .gitignore | 2 + phigrape.cpp | 265 ++++++++++++++++++++++++--------------------------- pn_bh_spin.c | 15 +-- 3 files changed, 130 insertions(+), 152 deletions(-) diff --git a/.gitignore b/.gitignore index 9f184f3..773bfd7 100644 --- a/.gitignore +++ b/.gitignore @@ -6,3 +6,5 @@ *.cfg *.inp *.mask +grapite-dev-exec-threshold +phigrape diff --git a/phigrape.cpp b/phigrape.cpp index b194e0b..b545836 100644 --- a/phigrape.cpp +++ b/phigrape.cpp @@ -306,39 +306,12 @@ double3 operator-(const double3& a, const double3& b) } -int name_proc, n_proc=1, myRank=0, rootRank=0, cur_rank, - i, j, k, ni, nj, diskstep=0, power, jjj, iii, - skip_con=0, tmp_i; - -double dt_disk, dt_contr, t_disk=0.0, t_contr=0.0, - dt_bh, t_bh=0.0, dt_bh_tmp, - t_end, time_cur, dt_min, dt_max, min_t, min_t_loc, dt_new, min_dt, - eta_s, eta, eta_bh, - E_pot, E_pot_ext, E_kin, E_tot, E_tot_0, DE_tot, - E_tot_corr, E_tot_corr_0, DE_tot_corr, - E_tot_corr_sd, E_tot_corr_sd_0, DE_tot_corr_sd, - E_corr = 0.0, E_sd = 0.0, t_diss_on = 0.125, - mcm, rcm_mod, vcm_mod, - rcm_sum=0.0, vcm_sum=0.0, - eps=0.0, eps2, - a2_mod, adot2_mod, - dt_tmp, dt2half, dt3over6, dt4over24, dt5over120, - dtinv, dt2inv, dt3inv, - a0mia1, ad04plad12, ad0plad1, - a1abs, adot1abs, a2dot1abs, a3dot1abs, - timesteps=0.0, n_act_sum=0.0, n_act_distr[N_MAX], g6_calls=0.0, g6_calls_sum=0.0, - tmp, tmp_r, tmp_v, tmp_rv, tmp_cpu, - tmp_pot, tmp_a, tmp_adot, - tmp_a_bh, tmp_adot_bh, - tmp_a_bh_pn0, tmp_a_bh_pn1, tmp_a_bh_pn2, tmp_a_bh_pn2_5, tmp_a_bh_pn3, tmp_a_bh_pn3_5, tmp_a_bh_spin, - tmp_adot_bh_pn0, tmp_adot_bh_pn1, tmp_adot_bh_pn2, tmp_adot_bh_pn2_5, tmp_adot_bh_pn3, tmp_adot_bh_pn3_5, tmp_adot_bh_spin; - double L[3]; // needed in pn_bh_spin.c // Needed for things related to BHs #include "debug.h" -int ind_sort[N_MAX]; -double var_sort[N_MAX]; +// int ind_sort[N_MAX]; +// double var_sort[N_MAX]; double3 xcm, vcm, mom, @@ -611,28 +584,24 @@ gettimeofday(&tv, NULL); } -void read_data() +void read_data(int *diskstep, int *N, double *time_cur, int ind[], double m[], double3 x[], double3 v[]) { -inp = fopen(inp_fname,"r"); -fscanf(inp,"%d \n", &diskstep); - -fscanf(inp,"%d \n", &N); - -fscanf(inp,"%lE \n", &time_cur); - -for (i=0; ilive_smbh_count == 2) { - out = fopen("bh.dat", "a"); + auto out = fopen("bh.dat", "a"); for (int i=0; i < 2; i++) { -// double (*a_pn)[3], (*adot_pn)[3], pot_bh, *a_bh, *adot_bh; double3 *a_pn, *adot_pn, a_bh, adot_bh; double pot_bh; if (i==0) { @@ -687,33 +655,33 @@ void write_bh_data() adot_bh = adot_bh2; } - tmp_r = sqrt( SQR(x[i][0]) + SQR(x[i][1]) + SQR(x[i][2]) ); - tmp_v = sqrt( SQR(v[i][0]) + SQR(v[i][1]) + SQR(v[i][2]) ); + double tmp_r = sqrt( SQR(x[i][0]) + SQR(x[i][1]) + SQR(x[i][2]) ); + double tmp_v = sqrt( SQR(v[i][0]) + SQR(v[i][1]) + SQR(v[i][2]) ); - tmp_a = sqrt( SQR(a[i][0]) + SQR(a[i][1]) + SQR(a[i][2]) ); - tmp_adot = sqrt( SQR(adot[i][0]) + SQR(adot[i][1]) + SQR(adot[i][2]) ); + double tmp_a = sqrt( SQR(a[i][0]) + SQR(a[i][1]) + SQR(a[i][2]) ); + double tmp_adot = sqrt( SQR(adot[i][0]) + SQR(adot[i][1]) + SQR(adot[i][2]) ); if (config->live_smbh_custom_eps >= 0) { - tmp_a_bh = sqrt( SQR(a_bh[0]) + SQR(a_bh[1]) + SQR(a_bh[2]) ); - tmp_adot_bh = sqrt( SQR(adot_bh[0]) + SQR(adot_bh[1]) + SQR(adot_bh[2]) ); + double tmp_a_bh = sqrt( SQR(a_bh[0]) + SQR(a_bh[1]) + SQR(a_bh[2]) ); + double tmp_adot_bh = sqrt( SQR(adot_bh[0]) + SQR(adot_bh[1]) + SQR(adot_bh[2]) ); if (config->binary_smbh_pn) { - tmp_a_bh_pn0 = sqrt( SQR(a_pn[0][0]) + SQR(a_pn[0][1]) + SQR(a_pn[0][2]) ); - tmp_a_bh_pn1 = sqrt( SQR(a_pn[1][0]) + SQR(a_pn[1][1]) + SQR(a_pn[1][2]) ); - tmp_a_bh_pn2 = sqrt( SQR(a_pn[2][0]) + SQR(a_pn[2][1]) + SQR(a_pn[2][2]) ); - tmp_a_bh_pn2_5 = sqrt( SQR(a_pn[3][0]) + SQR(a_pn[3][1]) + SQR(a_pn[3][2]) ); - tmp_a_bh_pn3 = sqrt( SQR(a_pn[4][0]) + SQR(a_pn[4][1]) + SQR(a_pn[4][2]) ); - tmp_a_bh_pn3_5 = sqrt( SQR(a_pn[5][0]) + SQR(a_pn[5][1]) + SQR(a_pn[5][2]) ); - tmp_a_bh_spin = sqrt( SQR(a_pn[6][0]) + SQR(a_pn[6][1]) + SQR(a_pn[6][2]) ); + double tmp_a_bh_pn0 = sqrt( SQR(a_pn[0][0]) + SQR(a_pn[0][1]) + SQR(a_pn[0][2]) ); + double tmp_a_bh_pn1 = sqrt( SQR(a_pn[1][0]) + SQR(a_pn[1][1]) + SQR(a_pn[1][2]) ); + double tmp_a_bh_pn2 = sqrt( SQR(a_pn[2][0]) + SQR(a_pn[2][1]) + SQR(a_pn[2][2]) ); + double tmp_a_bh_pn2_5 = sqrt( SQR(a_pn[3][0]) + SQR(a_pn[3][1]) + SQR(a_pn[3][2]) ); + double tmp_a_bh_pn3 = sqrt( SQR(a_pn[4][0]) + SQR(a_pn[4][1]) + SQR(a_pn[4][2]) ); + double tmp_a_bh_pn3_5 = sqrt( SQR(a_pn[5][0]) + SQR(a_pn[5][1]) + SQR(a_pn[5][2]) ); + double tmp_a_bh_spin = sqrt( SQR(a_pn[6][0]) + SQR(a_pn[6][1]) + SQR(a_pn[6][2]) ); - tmp_adot_bh_pn0 = sqrt( SQR(adot_pn[0][0]) + SQR(adot_pn[0][1]) + SQR(adot_pn[0][2]) ); - tmp_adot_bh_pn1 = sqrt( SQR(adot_pn[1][0]) + SQR(adot_pn[1][1]) + SQR(adot_pn[1][2]) ); - tmp_adot_bh_pn2 = sqrt( SQR(adot_pn[2][0]) + SQR(adot_pn[2][1]) + SQR(adot_pn[2][2]) ); - tmp_adot_bh_pn2_5 = sqrt( SQR(adot_pn[3][0]) + SQR(adot_pn[3][1]) + SQR(adot_pn[3][2]) ); - tmp_adot_bh_pn3 = sqrt( SQR(adot_pn[4][0]) + SQR(adot_pn[4][1]) + SQR(adot_pn[4][2]) ); - tmp_adot_bh_pn3_5 = sqrt( SQR(adot_pn[5][0]) + SQR(adot_pn[5][1]) + SQR(adot_pn[5][2]) ); - tmp_adot_bh_spin = sqrt( SQR(adot_pn[6][0]) + SQR(adot_pn[6][1]) + SQR(adot_pn[6][2]) ); + double tmp_adot_bh_pn0 = sqrt( SQR(adot_pn[0][0]) + SQR(adot_pn[0][1]) + SQR(adot_pn[0][2]) ); + double tmp_adot_bh_pn1 = sqrt( SQR(adot_pn[1][0]) + SQR(adot_pn[1][1]) + SQR(adot_pn[1][2]) ); + double tmp_adot_bh_pn2 = sqrt( SQR(adot_pn[2][0]) + SQR(adot_pn[2][1]) + SQR(adot_pn[2][2]) ); + double tmp_adot_bh_pn2_5 = sqrt( SQR(adot_pn[3][0]) + SQR(adot_pn[3][1]) + SQR(adot_pn[3][2]) ); + double tmp_adot_bh_pn3 = sqrt( SQR(adot_pn[4][0]) + SQR(adot_pn[4][1]) + SQR(adot_pn[4][2]) ); + double tmp_adot_bh_pn3_5 = sqrt( SQR(adot_pn[5][0]) + SQR(adot_pn[5][1]) + SQR(adot_pn[5][2]) ); + double tmp_adot_bh_spin = sqrt( SQR(adot_pn[6][0]) + SQR(adot_pn[6][1]) + SQR(adot_pn[6][2]) ); fprintf(out,"%.16E \t %.8E \t % .16E % .16E % .16E \t %.16E \t % .16E % .16E % .16E \t %.16E \t % .8E \t % .8E % .8E % .8E \t %.8E \t % .8E % .8E % .8E \t %.8E \t %.8E \t\t % .8E \t % .8E % .8E % .8E \t %.8E \t % .8E % .8E % .8E \t %.8E \t\t % .8E % .8E % .8E \t %.8E \t % .8E % .8E % .8E \t %.8E \t % .8E % .8E % .8E \t %.8E \t % .8E % .8E % .8E \t %.8E \t % .8E % .8E % .8E \t %.8E \t % .8E % .8E % .8E \t %.8E \t % .8E % .8E % .8E \t %.8E \t % .8E % .8E % .8E \t %.8E \t % .8E % .8E % .8E \t %.8E \t % .8E % .8E % .8E \t %.8E \t % .8E % .8E % .8E \t %.8E \t % .8E % .8E % .8E \t %.8E \t % .8E % .8E % .8E \t %.8E \t % .8E % .8E % .8E \t %.8E \n", time_cur, m[i], @@ -768,10 +736,10 @@ void write_bh_data() fclose(out); } else if (config->live_smbh_count == 1) { out = fopen("bh.dat", "a"); - tmp_r = sqrt( SQR(x[0][0]) + SQR(x[0][1]) + SQR(x[0][2]) ); - tmp_v = sqrt( SQR(v[0][0]) + SQR(v[0][1]) + SQR(v[0][2]) ); - tmp_a = sqrt( SQR(a[0][0]) + SQR(a[0][1]) + SQR(a[0][2]) ); - tmp_adot = sqrt( SQR(adot[0][0]) + SQR(adot[0][1]) + SQR(adot[0][2]) ); + double tmp_r = sqrt( SQR(x[0][0]) + SQR(x[0][1]) + SQR(x[0][2]) ); + double tmp_v = sqrt( SQR(v[0][0]) + SQR(v[0][1]) + SQR(v[0][2]) ); + double tmp_a = sqrt( SQR(a[0][0]) + SQR(a[0][1]) + SQR(a[0][2]) ); + double tmp_adot = sqrt( SQR(adot[0][0]) + SQR(adot[0][1]) + SQR(adot[0][2]) ); fprintf(out,"%.16E \t %.8E \t % .16E % .16E % .16E \t %.16E \t % .16E % .16E % .16E \t %.16E \t % .8E \t % .8E % .8E % .8E \t %.8E \t % .8E % .8E % .8E \t %.8E \t %.8E \n", time_cur, m[0], x[0][0], x[0][1], x[0][2], tmp_r, @@ -785,19 +753,18 @@ void write_bh_data() } } -void write_bh_nb_data() +void write_bh_nb_data(double time_cur, double m[], double3 x[], double3 v[]) { - int i_bh, nb = config->live_smbh_neighbor_number; - double tmp, tmp_r, tmp_v; + int nb = config->live_smbh_neighbor_number; + int ind_sort[N_MAX]; + double var_sort[N_MAX]; out = fopen("bh_neighbors.dat", "a"); /* 1st BH */ - i_bh = 0; - for (int i_bh=0; i_bh < config->live_smbh_count; i_bh++) { - for (i=0; ilive_smbh_output) write_bh_data(); + if (config->live_smbh_output) write_bh_data(time_cur, m, x, v); /* Write BH NB data... */ - if (config->live_smbh_neighbor_output) write_bh_nb_data(); + if (config->live_smbh_neighbor_output) write_bh_nb_data(time_cur, m, x, v); } /* if (myRank == rootRank) */ @@ -2087,7 +2073,6 @@ int main(int argc, char *argv[]) if (myRank == rootRank) { get_CPU_time(&CPU_time_real0, &CPU_time_user0, &CPU_time_syst0); get_CPU_time(&CPU_time_real, &CPU_time_user, &CPU_time_syst); - tmp_cpu = CPU_time_real-CPU_time_real0; } /* if (myRank == rootRank) */ timesteps = 0.0; @@ -2275,7 +2260,7 @@ int main(int argc, char *argv[]) DT_ACT_PRED += (CPU_tmp_user - CPU_tmp_user0); #endif - calc_self_grav(min_t); + calc_self_grav(min_t, eps2, g6_calls); /* Reduce the "global" vectors from "local" on all the nodes */ @@ -2351,7 +2336,7 @@ int main(int argc, char *argv[]) m_bh2, x_bh2, v_bh2, s_bh2, C_NB, dt_bh_tmp, usedOrNot, (double(*)[3])a_pn1, (double(*)[3])adot_pn1, - (double(*)[3])a_pn2, (double(*)[3])adot_pn2); + (double(*)[3])a_pn2, (double(*)[3])adot_pn2, myRank, rootRank); a_act_new[i_bh1] += a_pn1[1] + a_pn1[2] + a_pn1[3] + a_pn1[4] + a_pn1[5] + a_pn1[6]; a_act_new[i_bh2] += a_pn2[1] + a_pn2[2] + a_pn2[3] + a_pn2[4] + a_pn2[5] + a_pn2[6]; @@ -2594,10 +2579,10 @@ int main(int argc, char *argv[]) if (time_cur >= t_bh) { if (myRank == rootRank) { /* Write BH data... */ - if (config->live_smbh_output) write_bh_data(); + if (config->live_smbh_output) write_bh_data(time_cur, m, x, v); /* Write BH NB data... */ - if (config->live_smbh_neighbor_output) write_bh_nb_data(); + if (config->live_smbh_neighbor_output) write_bh_nb_data(time_cur, m, x, v); } /* if (myRank == rootRank) */ @@ -2607,11 +2592,11 @@ int main(int argc, char *argv[]) if (time_cur >= t_contr) { if (myRank == rootRank) { - energy_contr(); + energy_contr(time_cur, timesteps, n_act_sum, g6_calls, rcm_sum, vcm_sum, E_tot_0, E_tot_corr_0, E_tot_corr_sd_0, skip_con); /* write cont data */ - write_cont_data(); + write_snap_data((char*)"data.con", diskstep, N, time_cur, ind, m, x, v); /* possible OUT for timing !!! */ @@ -2665,7 +2650,9 @@ int main(int argc, char *argv[]) if (time_cur >= t_disk) { if (myRank == rootRank) { diskstep++; - write_snap_data(); + char out_fname[256]; + sprintf(out_fname, "%06d.dat", diskstep); + write_snap_data(out_fname, diskstep, N, time_cur, ind, m, x, v); } /* if (myRank == rootRank) */ #ifdef ETICS_DUMP diff --git a/pn_bh_spin.c b/pn_bh_spin.c index 54822f3..c0e54da 100644 --- a/pn_bh_spin.c +++ b/pn_bh_spin.c @@ -10,7 +10,7 @@ int calc_force_pn_BH(double m1, double xx1[], double vv1[], double spin1[], double CCC_NB, double dt_bh, int usedOrNot[], double a_pn1[][3], double adot_pn1[][3], - double a_pn2[][3], double adot_pn2[][3]) + double a_pn2[][3], double adot_pn2[][3], int myRank, int rootRank) { /* @@ -52,7 +52,7 @@ double PI2 = 9.86960440108935; double c_1, c_2, c_4, c_5, c_6, c_7, RS_DIST; double M, eta, r, r2, r3, MOR; -double V1_V22,VWHOLE, RP, RPP, VA; +double V1_V22, RP, RPP, VA; double N[3], x[3], v[3], A[3]; double A1, B1, A2, B2, A2_5, B2_5, AK2, BK2, AK4, BK4, AK5, BK5; double A1D, A2D, A2_5D, B1D, B2D, B2_5D, ADK2, BDK2, ADK4, BDK4, ADK5, BDK5; @@ -72,7 +72,6 @@ double SS1aux[3],SS2aux[3],SU[3],SV[3],XAD[3],XSD[3]; double NDOTCS[3], NCSU[3], NDOTCSIG[3], NCSV[3], ACS[3], VCSU[3], ACSIG[3], VCSV[3], SNVDOT, SIGNVDOT, NSDOT, NSIGDOT, VSDOT, VSIGDOT, NXSDOT, NXADOT; double C1_5D[3],C2D[3], C2_5D[3]; -double ADK, BDK, AD[3], KSAK, KSBK; double nu, Spin1Abs2, Spin2Abs2, rS1, rS2, S1Dir[3], S2Dir[3], QM[3]; double Spin1Abs, Spin2Abs, QMAux2_1[3], QMAux2_2[3], QMAux1[3] , QMD[3], SPINPrev[3][2], SpinPrev2_1, SpinPrev2_2, SPSPP1, SPSPP2, Spin1AbsNew2, Spin2AbsNew2, Spin1AbsNew, Spin2AbsNew, S1DirNew[3], @@ -129,7 +128,6 @@ r3 = r2*r; MOR = M/r; V1_V22 = v[0]*v[0]+v[1]*v[1]+v[2]*v[2]; -VWHOLE = sqrt(V1_V22); RP = (x[0]*v[0]+x[1]*v[1]+x[2]*v[2])/r; @@ -667,15 +665,6 @@ if(usedOrNot[5] == 1) // PN3.5 ~1/c^7 } /* if(Van_Spin==1) */ - ADK = ADK2+ADK4+ADK5+ADK6+ADK7; - BDK = BDK2+BDK4+BDK5+BDK6+BDK7; - - KSAK = AK2+AK4+AK5+AK6+AK7; - KSBK = BK2+BK4+BK5+BK6+BK7; - - for(k=0;k<3;k++) AD[k] = -2.0*MOR*RP*(KSAK*N[k]+KSBK*v[k])/r2 + MOR*(ADK*N[k]+BDK*v[k])/r + MOR*(KSAK*(v[k]-N[k]*RP)/r+KSBK*AT[k])/r + C1_5D[k]/c_2 + C2D[k]/c_4 +C2_5D[k]/c_4 + QMD[k]/c_4; - - for(k=0;k<3;k++) // new values of the BH's spins, returned back to the main program... { spin1[k] = SPIN[k][0];