Source code for conversion_factors

import numpy as np

[docs]class ConversionFactors(object): def __init__(self,obj): c = obj.constants self.MCONVERT = c.UnitMass_in_g / c.Msun_in_g ## to MSUN self.LCONVERT = c.UnitLength_in_cm / c.kpc_to_cm ## to KPC self.VCONVERT = c.UnitVelocity_in_cm_per_s / c.cm_to_km ## km/s self.vfactor = np.sqrt(obj.time) self.rconvert = obj.time ##!!! SKID UNIT CONVERSIONS !!!## CM_PER_MPC = c.cm_per_mpc UnitLength_in_cm = c.UnitLength_in_cm UnitMass_in_g = c.UnitMass_in_g UnitVelocity_in_cm_per_s = c.UnitVelocity_in_cm_per_s UnitLength_in_cm /= obj.h UnitMass_in_g /= obj.h L = obj.boxsize_h * 1.0e-3 UnitTime_in_s = UnitLength_in_cm / UnitVelocity_in_cm_per_s UnitDensity_in_cgs = UnitMass_in_g / UnitLength_in_cm**3 UnitEnergy_in_cgs = UnitMass_in_g * UnitLength_in_cm**2 / UnitTime_in_s**2 unit_Time = np.sqrt(8.*np.pi/3.) * CM_PER_MPC / (100.*obj.h*UnitVelocity_in_cm_per_s) unit_Density = 1.8791e-29*obj.h**2 unit_Length = L*CM_PER_MPC unit_Mass = unit_Density * unit_Length**3 unit_Velocity = unit_Length / unit_Time #print("COSMO PARAMS: L=%g Mpc, h=%g, Omega=%g" % (L,obj.h,obj.O0)) #print("UNITS: T=%g rho=%g L=%g M=%g v=%g" % # (unit_Time,unit_Density,unit_Length,unit_Mass,unit_Velocity)) ## convert back to GADGET units, ## convert gadget_mass -> Msun, ## then divide out that damned little h self.TIPSY_M_convert = unit_Mass / UnitMass_in_g self.TIPSY_M_convert *= 1.0e10 / obj.h self.TIPSY_L_convert = unit_Length / UnitLength_in_cm self.TIPSY_L_convert /= obj.h self.TIPSY_V_convert = unit_Velocity / UnitVelocity_in_cm_per_s self.TIPSY_RHO_convert = (UnitLength_in_cm**3 * unit_Density) / UnitMass_in_g self.TIPSY_RHO_convert*= 1.0e10 * obj.h**2 ##!!!## if obj.file_type == 'TIPSY': self.MCONVERT = self.TIPSY_M_convert self.VCONVERT = self.TIPSY_V_convert self.LCONVERT = self.TIPSY_L_convert