Main Page | Namespace List | Class Hierarchy | Class List | Directories | File List | Namespace Members | Class Members | File Members

super_giant.h

00001 /*
00002  * super_giant.h: derived class for evolution of double shell burning stars.
00003  *
00004  *..........................................................................
00005  *    version 1:  Jan 1994   Simon F. Portegies Zwart
00006  *    version 2:
00007  *..........................................................................
00008  *     This file includes:
00009  *  1) definition of class super_giant
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 //#include "disintegrated.h"
00022 #include "black_hole.h"
00023 
00024                 // Known class declarations.
00025 class horizontal_branch;
00026 
00027 /*-----------------------------------------------------------------------------
00028  *  super_giant  --  a derived class for element evolution.
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 //           Mass transfer stability.
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 //              Friend constructors
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 //      real stellar_radius(const real, const real);
00073 //      void adjust_initial_star();
00074 //      real helium_core_mass();
00075 //      void evolve_without_wind(const real); 
00076 //        real zeta_adiabatic();

Generated on Wed Jul 20 12:43:37 2005 for Starlab by  doxygen 1.4.3