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

hyper_giant.h

00001 /*
00002  * hyper_giant.h: derived class for evolution of Hyper_giants.
00003  *                was wolf_rayet.h
00004  *
00005  *.....................................................................
00006  *    version 1:  Jan 1994   Simon F. Portegies Zwart
00007  *    version 2:
00008  *...................................................................
00009  *     This file includes:
00010  *  1) definition of class hyper_giant
00011  *
00012  *....................................................................
00013  */
00014 
00015 #ifndef   _HYPER_GIANT
00016 #   define _HYPER_GIANT
00017 
00018 #include "single_star.h"
00019 #include "helium_star.h"
00020 #include "neutron_star.h"
00021 #include "black_hole.h"
00022 
00023 class main_sequence;
00024 
00025 /*-----------------------------------------------------------------------------
00026  *  hyper_giant  --  a derived class for element evolution.
00027  *-----------------------------------------------------------------------------
00028  */
00029 class hyper_giant : public single_star {
00030       private:
00031 
00032           real hyper_giant_core_mass();
00033 
00034       public :
00035 
00036          hyper_giant(main_sequence &);
00037          hyper_giant(node* n) : single_star(n) {}
00038          ~hyper_giant() {}
00039 
00040          
00041          stellar_type get_element_type() {return Hyper_Giant;}
00042          bool giant_star()             {return true;}
00043          bool hydrogen_envelope_star() {return false;}
00044 
00045          void instantaneous_element();
00046          void evolve_element(const real);
00047          void create_remnant();
00048          
00049 //            Mass transfer utilities.
00050          star* subtrac_mass_from_donor(const real, real&);
00051          real accretion_limit(const real, const real);
00052 
00053          void adjust_accretor_age(const real, const bool);
00054          void adjust_next_update_age();
00055          star* reduce_mass(const real);
00056 
00057 //              Stability rourines.
00058          real zeta_thermal();
00059          real zeta_adiabatic();
00060          real gyration_radius_sq();
00061 
00062          friend helium_star::helium_star(hyper_giant &);
00063          friend neutron_star::neutron_star(hyper_giant &);
00064          friend black_hole::black_hole(hyper_giant &);
00065     };
00066 #endif          // _HYPER_GIANT
00067 
00068 
00069 //         real zeta_adiabatic();
00070 //         void adjust_initial_star();
00071 //         real stellar_radius(const real m, const real t) 
00072 //              {return 5;}

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