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

horizontal_branch.h

00001 /*
00002  * horizontal_branch.h: derived class for core-helium burning stars.
00003  *
00004  *.....................................................................
00005  *    version 1:    Jan 1994   Simon F. Portegies Zwart
00006  *    version 1.1:  Jan 1998   Simon F. Portegies Zwart
00007  *...................................................................
00008  *     This file includes:
00009  *  1) definition of class horizontal_branch
00010  *
00011  *....................................................................
00012  */
00013 
00014 #ifndef    _HORIZONTAL_BRANCH 
00015 #   define _HORIZONTAL_BRANCH
00016 
00017 #include "single_star.h"
00018 #include "super_giant.h"
00019 #include "helium_star.h"
00020 
00021 class hertzsprung_gap;
00022 class sub_giant;
00023 class single_star;
00024 
00025 /*-----------------------------------------------------------------------------
00026  *  horizontal_branch  --  a derived class for element evolution.
00027  *-----------------------------------------------------------------------------
00028  */
00029 class horizontal_branch : public single_star {
00030       public :
00031 
00032          horizontal_branch(sub_giant&);
00033          horizontal_branch(hertzsprung_gap&);
00034          horizontal_branch(node* n) : single_star(n) {}
00035          ~horizontal_branch() {}
00036          
00037          stellar_type get_element_type() {return Horizontal_Branch;}
00038          bool giant_star()             {return true;}
00039          bool star_with_COcore() {return true;}   
00040 
00041          void instantaneous_element();
00042          void evolve_element(const real);
00043          void evolve_core_mass(const real dt);
00044 
00045 //            Mass transfer utilities.
00046         star* reduce_mass(const real);
00047         star* subtrac_mass_from_donor(const real, real&);
00048          void adjust_accretor_age(const real, const bool);
00049         void adjust_next_update_age();
00050         void update_wind_constant();
00051         void update();
00052 
00053 //           Mass transfer stability
00054         real zeta_adiabatic();
00055         real zeta_thermal();
00056         real gyration_radius_sq();
00057 
00058 //              Friend constructors
00059          friend super_giant::super_giant(horizontal_branch &);
00060          friend helium_star::helium_star(horizontal_branch &);
00061     };
00062 #endif          // _HORIZONTAL_BRANCH
00063 
00064 //        void adjust_initial_star();
00065 //         real stellar_radius(const real, const real);
00066 

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