00001 /* 00002 * brown_dwarf.h: derived class for evolution for non-hydrogen core 00003 * burning stars. 00004 * 00005 *..................................................................... 00006 * version 1: Jan 1994 Simon F. Portegies Zwart 00007 * version 2: 00008 *................................................................... 00009 * This file includes: 00010 * 1) definition of class brown_dwarf 00011 * 00012 *.................................................................... 00013 */ 00014 00015 #ifndef _BROWN_DWARF 00016 # define _BROWN_DWARF 00017 00018 #include "single_star.h" 00019 //#include "proto_star.h" 00020 00021 class main_sequence; 00022 class proto_star; 00023 00024 /*----------------------------------------------------------------------------- 00025 * brown_dwarf -- a derived class for element evolution. 00026 *----------------------------------------------------------------------------- 00027 */ 00028 class brown_dwarf : public single_star { 00029 private: 00030 00031 real brown_dwarf_core_mass(); 00032 00033 public : 00034 00035 brown_dwarf(node* n) : single_star(n) {} 00036 brown_dwarf(main_sequence &); 00037 brown_dwarf(proto_star &); 00038 ~brown_dwarf() {} 00039 00040 stellar_type get_element_type(); 00041 bool remnant() {return false;} 00042 00043 void instantaneous_element(); 00044 void evolve_element(const real); 00045 void update(); 00046 00047 star* reduce_mass(const real); 00048 star* subtrac_mass_from_donor(const real, real&); 00049 real accretion_limit(const real, const real); 00050 real add_mass_to_accretor(const real); 00051 real add_mass_to_accretor(real, const real); 00052 void adjust_next_update_age() {/* do nothing */} 00053 void accrete_from_envelope(const real); 00054 00055 star* merge_elements(star*); 00056 real zeta_thermal(); 00057 real gyration_radius_sq(); 00058 00059 }; 00060 #endif // _BROWN_DWARF