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

neutron_star.h

00001 /*
00002  * neutron_star.h: derived class for neutron stars.
00003  *
00004  *.....................................................................
00005  *    version 1:  Jan 1994   Simon F. Portegies Zwart
00006  *    version 2:
00007  *...................................................................
00008  *     This file includes:
00009  *  1) definition of class neutron_star
00010  *
00011  *....................................................................
00012  */
00013 
00014 #ifndef    _NEUTRON_STAR 
00015 #   define _NEUTRON_STAR
00016 
00017 #include "single_star.h"
00018 #include "black_hole.h"
00019 
00020 class hyper_giant;
00021 class super_giant;
00022 class thorne_zytkow;
00023 class helium_giant;
00024 class white_dwarf;
00025 
00026 /*-----------------------------------------------------------------------------
00027  *  neutron_star  --  a derived class for element evolution.
00028  *-----------------------------------------------------------------------------
00029  */
00030 class neutron_star : public single_star {
00031       private:
00032 
00033          real suddenly_lost_mass;
00034 
00035       public :
00036 
00037          neutron_star(hyper_giant &);
00038          neutron_star(super_giant &);
00039          neutron_star(thorne_zytkow &);
00040          neutron_star(helium_giant &);
00041          neutron_star(white_dwarf &);
00042          neutron_star(node* n) : single_star(n) {suddenly_lost_mass=0;}
00043 
00044          ~neutron_star() {}
00045          
00046         stellar_type get_element_type();
00047         bool remnant() {return true;}
00048         bool hydrogen_envelope_star() {return false;}
00049 
00050         void instantaneous_element();
00051         void evolve_element(const real);
00052 
00053         void update();
00054         bool super_nova();
00055         void direct_hit();
00056         real aic_binding_energy();
00057 
00058         star* reduce_mass(const real);
00059         real accretion_limit(const real, const real);
00060         star* subtrac_mass_from_donor(const real, real&);
00061         real add_mass_to_accretor(const real);
00062         real add_mass_to_accretor(real, const real);
00063         void accrete_from_envelope(const real);
00064 
00065         star* merge_elements(star*);
00066 
00067         real neutron_star_mass(stellar_type);
00068         real neutron_star_radius();
00069         real accretion_luminosity(const real, const real);
00070         real magnetic_moment();
00071         real magnetic_field_decay(const real, const real);
00072       real magnetic_field_decay(const real, const real, const real);
00073       real magnetic_field_strength(const real, const real);
00074       real pulsar_spin_up(const real, const real);
00075       real pulsar_spin_down(const real);
00076       bool propeller(const real, const real);
00077       bool dead_pulsar();
00078       
00079       real fastness_parameter(const real);
00080       real dimension_less_accretion_torque(const real);
00081       real pulsar_propeller_torque(const real, const real);
00082       
00083       real moment_of_inertia();
00084       real period_derivative();
00085       real spindown_luminosity();
00086       real gyration_radius_sq();
00087       
00088       real sudden_mass_loss();
00089       
00090       friend black_hole::black_hole(neutron_star &);
00091 
00092    };
00093 #endif          // _NEUTRON_STAR

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