00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014 #ifndef _THORNE_ZYTKOW
00015 # define _THORNE_ZYTKOW
00016
00017 #include "single_star.h"
00018 #include "neutron_star.h"
00019 #include "black_hole.h"
00020
00021 class main_sequence;
00022
00023
00024
00025
00026
00027 class thorne_zytkow : public single_star {
00028 public :
00029
00030 thorne_zytkow(main_sequence &);
00031 thorne_zytkow(node* n) : single_star(n) {}
00032 ~thorne_zytkow() {}
00033
00034 stellar_type get_element_type() {return Thorn_Zytkow;}
00035 bool giant_star() {return true;}
00036
00037 void instantaneous_element();
00038 void evolve_element(const real);
00039 void accrete_from_envelope(const real);
00040 void update();
00041
00042
00043 real add_mass_to_accretor(const real);
00044 real add_mass_to_accretor(real , const real);
00045 star* reduce_mass(const real);
00046 star* subtrac_mass_from_donor(const real, real&);
00047 void adjust_accretor_age(const real, const bool=true);
00048 void adjust_next_update_age();
00049
00050 real gyration_radius_sq();
00051
00052 friend neutron_star::neutron_star(thorne_zytkow &);
00053 friend black_hole::black_hole(thorne_zytkow &);
00054 };
00055 #endif // _THORNE_ZYTKOW
00056
00057
00058