def run(): G = Constants_NFW.G t0 = Constants_NFW.t0 #Myr mg = gmc.mg rc = Constants_NFW.R_C arktan = np.arctan lahg = np.log squirt = np.sqrt pie = np.pi infall_time = [1000.*it for it in [0.891330358, 3.732341011, 3.739695459, 7.891740613, 7.990821877, 8.019273007, 8.033063371, 8.173075479, 11.06888207, 11.10294465, 11.24332792, 11.65254351]] t_s = [t0 + it for it in infall_time] for t in t_s: Mtot = nfwso.galaxy_mass(mg['1'], t) eff_rad = get_eff_rad(t) sigma = sigma_eff_rad(t) args = (eff_rad, rc, G, Mtot, sigma, arktan, lahg, squirt, pie) #Estimate rh from scipy.optimize.newton built-in method rh0 = 10000. rh = get_rh_from_python_newton(rh0, rc, eff_rad, args) print(Mtot, eff_rad, rh, se.get_sigma_far(rh, eff_rad, rc, G, Mtot, init_guess=0., arktan=arktan, lahg=lahg, squirt=squirt, pie=pie), sigma) #Estimate rh from my own newton method, and count how many iterations it takes to converge rh0 = 10000. rh, i = get_rh_from_my_own_newton(rh0, *args) print(Mtot, eff_rad, rh, i, se.get_sigma_far(rh, eff_rad, rc, G, Mtot, init_guess=0., arktan=arktan, lahg=lahg, squirt=squirt, pie=pie), sigma, '\n')
def sigma_eff_rad(t): z = nfwso.get_z(t) sm = stellar_mass(t) return 190.*(sm/1.e11)**0.2*(1.+z)**0.47
def get_eff_rad(t): z = nfwso.get_z(t) sm = stellar_mass(t) return 2500*(sm/1.e11)**0.73*(1.+z)**-0.98