void reb_integrator_hermes_reset(struct reb_simulation* r){ //r->ri_hermes.timestep_too_large_warning = 0.; //Don't think we want to reset the warning. r->ri_hermes.steps = 0; r->ri_hermes.steps_miniactive = 0; r->ri_hermes.steps_miniN = 0; reb_integrator_whfast_reset(r); if (r->ri_hermes.mini){ reb_free_simulation(r->ri_hermes.mini); r->ri_hermes.mini = NULL; } if(r->ri_hermes.global_index_from_mini_index){ free(r->ri_hermes.global_index_from_mini_index); r->ri_hermes.global_index_from_mini_index = NULL; r->ri_hermes.global_index_from_mini_index_Nmax = 0; } if(r->ri_hermes.is_in_mini){ free(r->ri_hermes.is_in_mini); r->ri_hermes.is_in_mini = NULL; r->ri_hermes.is_in_mini_Nmax = 0; } if(r->ri_hermes.a_i){ free(r->ri_hermes.a_i); } if(r->ri_hermes.a_f){ free(r->ri_hermes.a_f); } r->ri_hermes.a_Nmax = 0; }
void reb_integrator_hybrid_reset(struct reb_simulation* r){ r->ri_hybrid.mode = SYMPLECTIC; reb_integrator_hybrid_switch_warning = 0; reb_integrator_whfast_reset(r); reb_integrator_ias15_reset(r); r->ri_hybrid.switch_ratio = 400.; initial_dt = 0.; }