Source code for clustertools.util.constants

"""A list of commonly used constants
"""

try:
    import amuse.units.units as u
except:
    pass

solar_motion=[-11.1,12.24,7.25] #Schönrich, R., Binney, J., Dehnen, W., 2010, MNRAS, 403, 1829
solar_ro=8.275 #Gravity Collaboration, Abuter, R., Amorim, A., et al. 2020 ,A&A, 647, A59
solar_vo=solar_ro*30.39-solar_motion[1]
# Note vo is set so solar_vo+solar_motion[1] = solar_ro*30.39, where 30.39 is the proper motoin of Sag A* (Reid, M.J. & Brunthaler, A., ApJ, 892, 1)
solar_zo=0.0208 #Bennett, M. & Bovy, J. 2019, MNRAS, 483, 1417

kmperpc = 3.086e13
kmperkpc = 3.086e16
spermyr = 3600.0 * 24.0 * 365.0 * 1000000.0

[docs]def kwtypes(): """ Legend for converting kwtype (from NBODY6) to stellar evolution type Parameters ---------- None Returns ------- None History ------- 2019 - Written - Webb (UofT) """ print( """\ * Stellar evolution types * *********************** * * --------------------------------------------------------------------- * 0 Low main sequence (M < 0.7). * 1 Main sequence. * 2 Hertzsprung gap (HG). * 3 Red giant. * 4 Core Helium burning. * 5 First AGB. * 6 Second AGB. * 7 Helium main sequence. * 8 Helium HG. * 9 Helium GB. * 10 Helium white dwarf. * 11 Carbon-Oxygen white dwarf. * 12 Oxygen-Neon white dwarf. * 13 Neutron star. * 14 Black hole. * 15 Massless supernova remnant. * --------------------------------------------------------------------- * * Binary types * ************ * * --------------------------------------------------------------------- * 0 Standard case. * -1 Chaotic (option 27 = 2). * -2 Continuous circularizing (option 27 = 2). * 9 Sequential circularization (option 27 = 1). * 10 Circularized. * 11 First Roche stage (option 34 = 1/2). * 12 End of first Roche stage. * 13 Start of second Roche stage. * xx Further Roche stages. * --------------------------------------------------------------------- * """ )
def _get_grav(cluster): if cluster.units == "nbody": grav = 1.0 elif cluster.units == "pckms": # G has units of pc (km/s)^2 / Msun grav = 4.302e-3 elif cluster.units == "amuse": # G has units of pc (km/s)^2 / Msun grav = 4.302e-3 | u.pc * u.kms * u.kms / u.MSun elif cluster.units == "pcmyr": # G has units of pc (pc/myr)^2 / Msun grav = (4.302e-3)*(1.022712165045695**2.0) elif cluster.units == "kpckms": # G has units of kpc (km/s)^2 / Msun grav = 4.302e-6 elif cluster.units == "kpcgyr": # G has units of pc (pc/myr)^2 / Msun grav = (4.302e-6)*(1.022712165045695**2.0) else: grav = 1.0 return grav