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

sub_giant.h

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

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