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

giant.h

00001 /*
00002  * giant.h: derived class for evolution of stars
00003  *    in the core helium burning stage.
00004  *
00005  *.....................................................................
00006  *    version 1:  Jan 1994   Simon F. Portegies Zwart
00007  *    version 2:
00008  *...................................................................
00009  *     This file includes:
00010  *  1) definition of class giant
00011  *
00012  *....................................................................
00013  */
00014 
00015 #ifndef    _GIANT 
00016 #   define _GIANT
00017 
00018 #include "single_star.h"
00019 #include "horizontal_branch.h"
00020 #include "super_giant.h"
00021 #include "helium_star.h"
00022 
00023                 // Known class declarations.
00024 class sub_giant; 
00025 
00026 /*-----------------------------------------------------------------------------
00027  *  giant  --  a derived class for element evolution.
00028  *-----------------------------------------------------------------------------
00029  */
00030 class giant : public single_star {
00031       protected :
00032 //         static ioserror error;
00033       public :
00034                 // Constructors.
00035 //         giant() : single_star() {}
00036          giant(sub_giant &);
00037          giant(node* n) : single_star(n) {}
00038                 // Destructors.
00039          ~giant() {}
00040 //              Member acces functions.
00041         stellar_type get_element_type() {return Giant;}
00042 
00043                 // Member function definition.
00044         void adjust_initial_star();
00045          void evolve_element(const real);
00046          real stellar_radius(const real, const real);
00047 //              Mass transfer utilities.
00048         star* reduce_donor_mass(const real);
00049         star* subtrac_mass_from_donor(const real, real&);
00050         void adjust_accretor_age(const real);
00051         void adjust_next_update_age();
00052 
00053 //              Spiral in and common envelope.
00054 
00055                 // Debugging utilities.
00056                 // Friend functions.
00057          friend horizontal_branch::horizontal_branch(giant &);
00058          friend super_giant::super_giant(giant &);
00059          friend helium_star::helium_star(giant &);
00060       };
00061 #endif          // _GIANT

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