00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014 #ifndef _SUPER_GIANT
00015 # define _SUPER_GIANT
00016
00017 #include "single_star.h"
00018 #include "helium_star.h"
00019 #include "white_dwarf.h"
00020 #include "neutron_star.h"
00021
00022 #include "black_hole.h"
00023
00024
00025 class horizontal_branch;
00026
00027
00028
00029
00030
00031 class super_giant : public single_star {
00032 protected:
00033 real second_dredge_up_time;
00034 real initial_CO_core_mass(const real initial_mass);
00035
00036 public :
00037
00038 super_giant(horizontal_branch & h);
00039 super_giant(node* n) : single_star(n) {
00040 second_dredge_up_time = -1;}
00041 ~super_giant() {}
00042
00043 stellar_type get_element_type() {return Super_Giant;}
00044 bool giant_star() {return true;}
00045 bool star_with_COcore() {return true;}
00046
00047 void instantaneous_element();
00048 void evolve_element(const real);
00049 void create_remnant();
00050
00051
00052 real zeta_thermal();
00053 real gyration_radius_sq();
00054
00055 star* reduce_mass(const real);
00056 star* subtrac_mass_from_donor(const real, real&);
00057 void adjust_accretor_age(const real, const bool);
00058 void adjust_next_update_age();
00059 void update_wind_constant();
00060
00061
00062 friend helium_giant::helium_giant(super_giant &);
00063 friend white_dwarf::white_dwarf(super_giant &);
00064 friend neutron_star::neutron_star(super_giant &);
00065 friend black_hole::black_hole(super_giant &);
00066 friend disintegrated::disintegrated(super_giant &);
00067
00068 };
00069 #endif // _SUPER_GIANT
00070
00071
00072
00073
00074
00075
00076