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

white_dwarf.h

00001 /*
00002  * white_dwarf.h: derived class for white dwarfs
00003  *
00004  *.....................................................................
00005  *     version 1:  Jan 1994   Simon F. Portegies Zwart
00006  *     version 2:
00007  *...................................................................
00008  *     This file includes:
00009  *  1) definition of class white_dwarf
00010  *
00011  *....................................................................
00012  */
00013 
00014 #ifndef    _WHITE_DWARF
00015 #   define _WHITE_DWARF
00016 
00017 #include "single_star.h"
00018 #include "neutron_star.h"
00019 
00020 class hertzsprung_gap;
00021 class super_giant;
00022 class sub_giant;
00023 class helium_star;
00024 class helium_giant;
00025 
00026 /*-----------------------------------------------------------------------------
00027  *  white_dwarf  --  a derived class for element evolution.
00028  *-----------------------------------------------------------------------------
00029  */
00030 class white_dwarf : public single_star {
00031       public :
00032 
00033          white_dwarf(hertzsprung_gap &);
00034          white_dwarf(sub_giant &);
00035          white_dwarf(super_giant &);
00036          white_dwarf(helium_star &);
00037          white_dwarf(helium_giant &);
00038          white_dwarf(node* n) : single_star(n) {}
00039          
00040          ~white_dwarf() {}
00041 
00042          stellar_type get_element_type();
00043          bool remnant() {return true;}
00044          bool hydrogen_envelope_star() {return false;}
00045 
00046          void instantaneous_element();
00047          void evolve_element(const real);
00048 
00049          void update();
00050          void thermo_nucleair_flash(const real);
00051          void nova(const real);
00052          void common_envelope(const real);
00053 
00054 //              Mass transfer utilities.
00055         star* reduce_mass(const real);
00056         star* subtrac_mass_from_donor(const real, real&);
00057         real accretion_limit(const real, const real); 
00058         real minimum_steady_burning(const real); 
00059         real maximum_steady_burning(const real); 
00060         real add_mass_to_accretor(const real);
00061         real add_mass_to_accretor(real, const real);
00062         void adjust_accretor_age(const real, const bool=true);
00063         void adjust_next_update_age() {/* do nothing */}
00064         void accrete_from_envelope(const real);
00065 
00066         real white_dwarf_radius(real mass, real time);
00067 
00068         star* merge_elements(star*);
00069 
00070 //              Mass transfer stability
00071         real zeta_thermal();
00072         real gyration_radius_sq();
00073 
00074         friend neutron_star::neutron_star(white_dwarf&);
00075       };
00076 
00077 #endif          // _WHITE_DWARF
00078 

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