00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #include "hdyn.h"
00019
00020 void new_kepler(hdyn * com)
00021 {
00022 new_kepler((dyn *) com, com->get_time());
00023 }
00024
00025
00026 void hdyn_to_kepler(hdyn * com)
00027 {
00028 dyn_to_kepler(com, com->get_time());
00029 }
00030
00031
00032 void hdyn::update_kepler_from_hdyn()
00033 {
00034 set_kepler_tolerance(2);
00035
00036 if (kep == NULL) kep = new kepler;
00037 hdyn *sister = get_binary_sister();
00038
00039 kep->set_time(time);
00040 kep->set_total_mass(parent->get_mass());
00041 kep->set_rel_pos(pos - sister->pos);
00042 kep->set_rel_vel(vel - sister->vel);
00043 kep->initialize_from_pos_and_vel();
00044
00045 sister->kep = kep;
00046 sister->unperturbed_timestep = unperturbed_timestep;
00047 sister->fully_unperturbed = fully_unperturbed;
00048 }
00049
00050
00051 void hdyn::reinitialize_kepler_from_hdyn()
00052 {
00053 update_kepler_from_hdyn();
00054
00055
00056
00057
00058
00059
00060
00061
00062 #if 0
00063
00064
00065
00066
00067
00068 real usteps = get_unperturbed_steps(true);
00069
00070
00071 if (usteps > 0) {
00072 unperturbed_timestep = timestep*usteps;
00073 get_binary_sister()->unperturbed_timestep = unperturbed_timestep;
00074 }
00075
00076 #endif
00077
00078 }