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

hertzsprung_gap.h

00001 /*
00002  * hertzsprung_gap.h: derived class for Hydrogen 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 hertzsprung_gap
00010  *
00011  *....................................................................
00012  */
00013 
00014 #ifndef    _HERTZSPRUNG_GAP
00015 #   define _HERTZSPRUNG_GAP
00016 
00017 #include "single_star.h"
00018 #include "sub_giant.h"
00019 #include "horizontal_branch.h"
00020 #include "helium_star.h"
00021 
00022 class main_sequence;
00023 
00024 /*-----------------------------------------------------------------------------
00025  *  hertzsprung_gap  --  a derived class for element evolution.
00026  *-----------------------------------------------------------------------------
00027  */
00028 class hertzsprung_gap : public single_star 
00029     {
00030       public :
00031          hertzsprung_gap(main_sequence &);
00032          hertzsprung_gap(node* n) : single_star(n) {}
00033          ~hertzsprung_gap() {}
00034          
00035         stellar_type get_element_type() {return Hertzsprung_Gap;}
00036         bool giant_star()             {return true;}
00037         
00038         bool magnetic() {
00039           return (low_mass_star() && get_total_mass()>=
00040                   cnsts.parameters(magnetic_mass_limit))?true:false;
00041         }
00042 
00043         void instantaneous_element();
00044         void evolve_element(const real);
00045         real gyration_radius_sq();
00046 
00047 //           Mass transfer utilities.
00048         star* reduce_mass(const real);
00049         star* subtrac_mass_from_donor(const real, real&);
00050          void adjust_accretor_age(const real, const bool);
00051         void adjust_next_update_age();
00052         void update_wind_constant();
00053 
00054 //           Mass transfer Stability.
00055         real zeta_adiabatic();
00056         real zeta_thermal();
00057 
00058 //           Core mass determination
00059         real TAMS_helium_core_mass();
00060         void evolve_core_mass(const real dt);
00061 
00062 //           Spectral type feature detection.
00063         void detect_spectral_features();
00064 
00065 //              Spiral in and common envelope.
00066 
00067 //           Friend constructors.
00068          friend sub_giant::sub_giant(hertzsprung_gap &);
00069          friend horizontal_branch::horizontal_branch(hertzsprung_gap &);
00070          friend helium_star::helium_star(hertzsprung_gap &);
00071          friend white_dwarf::white_dwarf(hertzsprung_gap &);
00072     };
00073 
00074 #endif          // _HERTZSPRUNG_GAP
00075 
00076 //real stellar_radius(const real, const real);
00077 //        void adjust_initial_star();

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