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

constants.h

00001 
00002        //=======================================================//    _\|/_
00003       //  __  _____           ___                    ___       //      /|\ ~
00004      //  /      |      ^     |   \  |         ^     |   \     //          _\|/_
00005     //   \__    |     / \    |___/  |        / \    |___/    //            /|\ ~
00006    //       \   |    /___\   |  \   |       /___\   |   \   // _\|/_
00007   //     ___/   |   /     \  |   \  |____  /     \  |___/  //   /|\ ~
00008  //                                                       //            _\|/_
00009 //=======================================================//              /|\ ~
00010 
00011 /*
00012  *  constants.h: header file for constants.
00013  *           
00014  *.............................................................................
00015  *    version 1:  May 1993   Simon F. Portegies Zwart
00016  *    version 2:
00017  *.............................................................................
00018  *     This file includes:
00019  *  1) definition of physical constants, assumed numbers and pre set
00020  *     numbers.
00021  *
00022  *.............................................................................
00023  */
00024 #ifndef     _CONSTANTS
00025 #   define  _CONSTANTS
00026 
00027 #include "stdinc.h"       
00028 
00029 #define static_cast(type, expr)         (type)(expr)
00030 #define const_cast(type, expr)          (type)(expr)
00031 #define reintepret_cast(type, expr)     (type)(expr)
00032 #define dynamic_cast(type, expr)        (type)(expr)
00033 
00034 #define SEBA_VERSION 2.0
00035 
00036 #define TRUE 1
00037 #define FALSE 0
00038 
00039 // Stellar remnant constants.
00040 // Remnant lifetimes.
00041 //#define  SPI_TIME     0.0005               // Spiral in duration time.
00042 #define  POST_AGB_TIME  0.005                // time to lose giant envelope.
00043 
00044 //Assymetric supernovae kicks
00045 #define MEAN_KICK 450.0                 // km/s
00046 #define VAR_KICK  90.0                  // km/s
00047 
00048 //#define BINARY_UPDATE_TIMESTEP 0.9      // Timestep increase for binary   
00049 #define BINARY_UPDATE_TIMESTEP 0.1      // Timestep increase for binary   
00050 #define TEN_PERCENT 0.1
00051 //#define STABLE_ZETA 15
00052 //#define J_SPI_FR 0.5                  //Pols 93 advises 1/3
00053 
00054 // Model choices.
00055 //#define exp_HE_lifetime FALSE         // exponential he star lifetime fits.
00056 
00057 enum binary_history  {ms_ms = 0, bs_ms, bs_bs, he_ms, heN_ms, 
00058                       wr_ms, he_he, rscvn, 
00059                       wuma, wdxb, 
00060                       lmxb, mmxb, hmxb, spi, spi_2, 
00061                       wd_ms, wd_he, wd_wd, wd_ns, wdXns, 
00062                       pr_ms, pr_he, pr_st, prXst, pr_pr, prXpr,
00063                       ns_ms, ns_he, ns_st, nsXst, ns_ns, nsXns, st_st, 
00064                       no_of_type};
00065 
00066 enum Be_binaries    {be_ms=0, be_he, be_wd, be_ns, no_of_be_binary};
00067 
00068 enum mathematical_constant {one_third,
00069                             two_third,
00070                             pi,
00071                             two_pi
00072                         };
00073 enum physics_constants{G, gravitational_constant,
00074                        C, speed_of_light,
00075                        Myear, million_years,
00076                        days, seconds_per_day,
00077                        km_per_s, kilometer_per_second,
00078                        kilometer, kilometer_in_centimeters,
00079                        nucleair_efficiency
00080                    };
00081 
00082 enum astronomical_scale_parameter {PC, parsec,
00083                                    AU, astronomical_unit
00084                                 };
00085 
00086 enum solar_parameter {Msun, solar_mass,
00087                       Rsun, solar_radius,
00088                       Lsun, solar_luminosity,
00089                       Tsun, solar_temperature,
00090                       energy_to_mass_in_internal_units
00091 };
00092 
00093 enum pulsar_initial_conditions {pulsar_magnetic_field,
00094                                 pulsar_pulse_period,
00095                                 kanonical_neutron_star_radius,
00096                                 kanonical_neutron_star_mass,
00097                                 maximum_neutron_star_mass,
00098                                 minimum_neutron_star_mass
00099                             };
00100     
00101 enum stellar_mass_limits {low_mass_star_mass_limit,
00102                           medium_mass_star_mass_limit,
00103                           massive_star_mass_limit,
00104                           upper_ZAMS_mass_for_degenerate_core,
00105                           minimum_main_sequence,
00106                           maximum_planet_mass,
00107                           helium_dwarf_mass_limit,
00108                           carbon_dwarf_mass_limit,
00109                           Chandrasekar_mass,
00110 //                        neutron_star,
00111 //                        minimum_neutron_star,
00112 //                        maximum_neutron_star,
00113                           helium2neutron_star,
00114                           COcore2black_hole,
00115                           core2blackhole_mass_fraction,
00116                           super_giant2neutron_star,
00117                           super_giant2black_hole,
00118                           maximum_main_sequence,
00119                           minimum_helium_star,
00120                           helium_star_lifetime_fraction,
00121                           helium_star_final_core_fraction
00122                       };
00123 
00124 enum boolean_parameter {hyper_critical,
00125                         super_giant_disintegration,
00126                         proto_star_to_binary,
00127                         impulse_kick_for_black_holes,
00128                         use_angular_momentum_gamma
00129                      };
00130 
00131 enum super_nova_kick_distribution {internally_decided_velocity_kick,
00132                                    no_velocity_kick,
00133                                    Maxwellian_velocity_kick,
00134                                    Paczynski_velocity_kick,
00135                                    delta_function_velocity_kick
00136                                   };
00137 
00138 enum accretion_parameter {black_hole_accretion_limit,
00139                           neutron_star_accretion_limit,
00140                           white_dwarf_accretion_limit,
00141                           thermo_nuclear_flash
00142                       };
00143 
00144 enum model_parameter {star_formation_efficiency,
00145                       star_formation_timescale,
00146                       magnetic_mass_limit,
00147                       magnetic_braking_exponent,
00148                       corotation_eccentricity,
00149                       tidal_circularization_radius,
00150                       core_overshoot,
00151                       hydrogen_fraction,
00152                       common_envelope_efficiency,
00153                       envelope_binding_energy,
00154                       specific_angular_momentum_loss,
00155                       dynamic_mass_transfer_gamma,
00156                       non_massive_star_envelope_fraction_lost,
00157                       massive_star_envelope_fraction_lost,
00158                       relaxation_driven_mass_loss_constant,
00159                       time_independent_mass_loss_law,
00160                       massive_star_mass_loss_law,
00161                       Darwin_Riemann_instability_factor,
00162                       homogeneous_sphere_gyration_radius_sq,
00163                       radiative_star_gyration_radius_sq,
00164                       convective_star_gyration_radius_sq,
00165                       rejuvenation_exponent,
00166                       spiral_in_time,
00167                       scale_kick_to_escape_velocity
00168 };
00169 
00170 enum observational_parameter {B_emission_star_mass_limit,
00171                               Barium_star_mass_limit,
00172                               Blue_straggler_mass_limit
00173                      };
00174 
00175 
00176 enum safety_parameter {timestep_factor,
00177                        maximum_binary_update_time_fraction,
00178                        minimum_timestep,
00179                        minimum_mass_step,
00180                        maximum_timestep,
00181                        maximum_recursive_calls
00182                       };
00183 
00184 enum dynamics_update_parameter {stellar_mass_update_limit,
00185                                 semi_major_axis_update_limit,
00186                                 binary_update_time_fraction
00187                                 };
00188 
00189 static
00190 class stellar_evolution_constants {  // Easy to have a name for compiling.
00191   public:
00192 
00193   real mathematics(mathematical_constant);
00194   real physics(physics_constants);
00195 
00196   real super_nova_kick(super_nova_kick_distribution pk =
00197                        internally_decided_velocity_kick,
00198                        const real v_disp = 600);
00199   
00200   real parameters(solar_parameter);
00201   real parameters(astronomical_scale_parameter);
00202   real parameters(pulsar_initial_conditions);
00203   real parameters(stellar_mass_limits);
00204   
00205   bool parameters(boolean_parameter);
00206   real parameters(accretion_parameter);
00207   real parameters(model_parameter);
00208 
00209   real parameters(observational_parameter);
00210 
00211   real safety(safety_parameter);
00212 
00213   real star_to_dyn(dynamics_update_parameter);
00214 
00215 } cnsts;
00216 
00217 #endif          // _CONSTANTS
00218 
00219 
00220 
00221 

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