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

helium_giant.h

00001 /*
00002  * helium_giant.h: derived class for evolution of helium giants
00003  *
00004  *.....................................................................
00005  *    version 1:  Jan 1994   Simon F. Portegies Zwart
00006  *    version 2:
00007  *...................................................................
00008  *     This file includes:
00009  *  1) definition of class helium_giant
00010  *
00011  *....................................................................
00012  */
00013 
00014 #ifndef    _HELIUM_GIANT
00015 #   define _HELIUM_GIANT
00016 
00017 #include "single_star.h"
00018 #include "disintegrated.h"
00019 #include "white_dwarf.h"
00020 #include "neutron_star.h"
00021 #include "black_hole.h"
00022 
00023 
00024 class         helium_star;
00025 class         super_giant;
00026 
00027 /*-----------------------------------------------------------------------------
00028  *  helium_giant  --  a derived class for element evolution.
00029  *-----------------------------------------------------------------------------
00030  */
00031 class helium_giant : public single_star {
00032      private:
00033   
00034          real CO_core_mass();
00035 
00036       public :
00037 
00038          helium_giant(super_giant &);
00039          helium_giant(helium_star &);
00040          ~helium_giant() {}
00041 
00042         stellar_type get_element_type();
00043         bool giant_star();
00044         bool remnant();
00045         bool hydrogen_envelope_star() {return false;}
00046         bool star_with_COcore() {return true;}   
00047 
00048         void evolve_element(const real);
00049         void instantaneous_element();
00050         void stellar_wind(const real);
00051         void update();
00052         void update_wind_constant();
00053         real temperature();
00054 
00055         void create_remnant();
00056         star* reduce_mass(const real);
00057         star* subtrac_mass_from_donor(const real, real&);
00058         real accretion_limit(const real, const real);
00059         real add_mass_to_accretor(const real);
00060         real add_mass_to_accretor(real, const real);
00061 
00062          void adjust_accretor_age(const real, const bool=true);
00063         void adjust_next_update_age();
00064 
00065         real zeta_adiabatic();
00066         real zeta_thermal();
00067         real gyration_radius_sq();
00068 
00069         friend disintegrated::disintegrated(helium_giant &);
00070         friend white_dwarf::white_dwarf(helium_giant &);
00071         friend neutron_star::neutron_star(helium_giant &);
00072         friend black_hole::black_hole(helium_giant &);
00073    };
00074 #endif          // _HELIUM_GIANT

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