Skip to content

Commit

Permalink
removed encounter_map_internal
Browse files Browse the repository at this point in the history
  • Loading branch information
hannorein committed Feb 3, 2024
1 parent e70f0a2 commit fc2535b
Show file tree
Hide file tree
Showing 4 changed files with 19 additions and 27 deletions.
1 change: 0 additions & 1 deletion rebound/integrators/trace.py
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,6 @@ def __repr__(self):
("_particles_backup_kepler", ctypes.POINTER(Particle)),
("_particles_backup_additional_forces", ctypes.POINTER(Particle)),
("_encounter_map", ctypes.POINTER(ctypes.c_int)),
("_encounter_map_internal", ctypes.POINTER(ctypes.c_int)),
("_com_pos", Vec3dBasic),
("_com_vel", Vec3dBasic),
("_current_Ks", ctypes.POINTER(ctypes.c_int)),
Expand Down
43 changes: 19 additions & 24 deletions src/integrator_trace.c
Original file line number Diff line number Diff line change
Expand Up @@ -336,7 +336,7 @@ void reb_integrator_trace_bs_step(struct reb_simulation* const r, double dt){
int i_enc = 0;
ri_trace->encounter_N_active = 0;
for (unsigned int i=0; i<r->N; i++){
if(ri_trace->encounter_map_internal[i]){
if(ri_trace->encounter_map[i]){
struct reb_particle tmp = r->particles[i]; // Copy for potential use for tponly_encounter
r->particles[i] = ri_trace->particles_backup_kepler[i]; // Coordinates before WHFast step, overwrite particles with close encounters
ri_trace->encounter_map[i_enc] = i;
Expand Down Expand Up @@ -481,9 +481,6 @@ void reb_integrator_trace_part1(struct reb_simulation* r){
ri_trace->particles_backup = realloc(ri_trace->particles_backup,sizeof(struct reb_particle)*N);
ri_trace->current_Ks = realloc(ri_trace->encounter_map,sizeof(int)*N*N);
ri_trace->encounter_map = realloc(ri_trace->encounter_map,sizeof(int)*N);
ri_trace->encounter_map_internal = realloc(ri_trace->encounter_map_internal,sizeof(int)*N); // Do we need this now?

// Only need this stuff for Listing 3
ri_trace->particles_backup_kepler = realloc(ri_trace->particles_backup_kepler,sizeof(struct reb_particle)*N);
ri_trace->N_allocated = N;
}
Expand All @@ -509,11 +506,11 @@ void reb_integrator_trace_pre_ts_check(struct reb_simulation* const r){
int (*_switch) (struct reb_simulation* const r, const unsigned int i, const unsigned int j) = ri_trace->S ? ri_trace->S : reb_integrator_trace_switch_default;
int (*_switch_peri) (struct reb_simulation* const r, const unsigned int j) = ri_trace->S_peri ? ri_trace->S_peri : reb_integrator_trace_switch_peri_default;

// Clear encounter maps
for (unsigned int i=0; i<r->N; i++){
ri_trace->encounter_map_internal[i] = 0;
// Clear encounter map
for (unsigned int i=1; i<r->N; i++){
ri_trace->encounter_map[i] = 0;
}
ri_trace->encounter_map_internal[0] = 1;
ri_trace->encounter_map[0] = 1;

// Reset encounter triggers.
ri_trace->encounter_N = 1;
Expand Down Expand Up @@ -545,8 +542,8 @@ void reb_integrator_trace_pre_ts_check(struct reb_simulation* const r){
if (ri_trace->current_C){
// Pericenter close encounter detected. We integrate the entire simulation with BS
ri_trace->encounter_N = N;
for (int i = 0; i < N; i++){
ri_trace->encounter_map_internal[i] = 1; // trigger encounter
for (int i = 1; i < N; i++){
ri_trace->encounter_map[i] = 1; // trigger encounter
}
}

Expand All @@ -556,12 +553,12 @@ void reb_integrator_trace_pre_ts_check(struct reb_simulation* const r){
for (int j = i + 1; j < N; j++){
if (_switch(r, i, j)){
ri_trace->current_Ks[i*N+j] = 1;
if (ri_trace->encounter_map_internal[i] == 0){
ri_trace->encounter_map_internal[i] = 1; // trigger encounter
if (ri_trace->encounter_map[i] == 0){
ri_trace->encounter_map[i] = 1; // trigger encounter
ri_trace->encounter_N++;
}
if (ri_trace->encounter_map_internal[j] == 0){
ri_trace->encounter_map_internal[j] = 1; // trigger encounter
if (ri_trace->encounter_map[j] == 0){
ri_trace->encounter_map[j] = 1; // trigger encounter
ri_trace->encounter_N++;
}

Expand All @@ -583,10 +580,10 @@ double reb_integrator_trace_post_ts_check(struct reb_simulation* const r){
int new_close_encounter = 0; // New CEs

// Clear encounter maps
for (unsigned int i=0; i<r->N; i++){
ri_trace->encounter_map_internal[i] = 0;
for (unsigned int i=1; i<r->N; i++){
ri_trace->encounter_map[i] = 0;
}
ri_trace->encounter_map_internal[0] = 1;
ri_trace->encounter_map[0] = 1;

// Reset encounter triggers.
ri_trace->encounter_N = 1;
Expand All @@ -608,7 +605,7 @@ double reb_integrator_trace_post_ts_check(struct reb_simulation* const r){
// Pericenter close encounter detected. We integrate the entire simulation with BS
ri_trace->encounter_N = N;
for (int i = 0; i < N; i++){
ri_trace->encounter_map_internal[i] = 1; // trigger encounter
ri_trace->encounter_map[i] = 1; // trigger encounter
}
}

Expand All @@ -622,12 +619,12 @@ double reb_integrator_trace_post_ts_check(struct reb_simulation* const r){
new_close_encounter = 1;
}
ri_trace->current_Ks[i*N+j] = 1;
if (ri_trace->encounter_map_internal[i] == 0){
ri_trace->encounter_map_internal[i] = 1; // trigger encounter
if (ri_trace->encounter_map[i] == 0){
ri_trace->encounter_map[i] = 1; // trigger encounter
ri_trace->encounter_N++;
}
if (ri_trace->encounter_map_internal[j] == 0){
ri_trace->encounter_map_internal[j] = 1; // trigger encounter
if (ri_trace->encounter_map[j] == 0){
ri_trace->encounter_map[j] = 1; // trigger encounter
ri_trace->encounter_N++;
}

Expand Down Expand Up @@ -713,8 +710,6 @@ void reb_integrator_trace_reset(struct reb_simulation* r){

free(r->ri_trace.encounter_map);
r->ri_trace.encounter_map = NULL;
free(r->ri_trace.encounter_map_internal);
r->ri_trace.encounter_map_internal = NULL;

r->ri_trace.current_C = 0;
free(r->ri_trace.current_Ks);
Expand Down
1 change: 0 additions & 1 deletion src/particle.c
Original file line number Diff line number Diff line change
Expand Up @@ -341,7 +341,6 @@ int reb_simulation_remove_particle(struct reb_simulation* const r, int index, in
for (int i=0;i<ri_trace->encounter_N;i++){
if (after_to_be_removed_particle == 1){
ri_trace->encounter_map[i-1] = ri_trace->encounter_map[i] - 1;
// ri_trace->encounter_map_internal[i-1] = ri_trace->encounter_map_internal[i] - 1; // Don't think we need this since we auto accept collisions
}
if (ri_trace->encounter_map[i]==index){
encounter_index = i;
Expand Down
1 change: 0 additions & 1 deletion src/rebound.h
Original file line number Diff line number Diff line change
Expand Up @@ -277,7 +277,6 @@ struct reb_integrator_trace {
struct reb_particle* REB_RESTRICT particles_backup_additional_forces; // For additional forces

int* encounter_map; // Map to represent which particles are integrated with BS
int* encounter_map_internal;
struct reb_vec3d com_pos; // Used to keep track of the centre of mass during the timestep
struct reb_vec3d com_vel;

Expand Down

0 comments on commit fc2535b

Please sign in to comment.