def __init__(self, rho_2, r_2, alpha, G=G): self.rho_2 = rho_2 self.r_2 = r_2 self.rs = self.r_2 self.alpha = alpha self.scale = r_2 self.G = G self.fast_ = gdfast.Einasto(rho_2, r_2, alpha, self.G)
def from_r3(M3, r3, slope, alpha): d = Einasto(1., 1., alpha) def f(r_2): d.r_2 = abs(r_2) #print rs, d.logslope(r3), slope #import pdb #pdb.set_trace() return (d.logslope(r3)[0]-slope)**2 r_2 = abs(scipy.optimize.fmin(f, 1., disp=False))[0] d.scale = r_2 d.rs = r_2 d.r_2 = r_2 #d.normalize(r3, M3) Menc = d.enclosed_mass(r3) d.rho_2 *= M3/Menc d.fast_ = gdfast.Einasto(d.rho_2, d.r_2, d.alpha, d.G) #print >>sys.stderr, ">>>>>>>", r3, M3, d.rs #d.fast_ = mab.gd.gdfast.TwoSlopeDensity(d.rho0, d.alpha, d.beta, d.rs, d.gamma) #d.update() return d
def fromM1kpc(M1kpc, rs, alpha): p = Einasto(1, rs, alpha) Menc = p.enclosed_mass(1.) p.rho_2 *= M1kpc/Menc p.fast_ = gdfast.Einasto(p.rho_2, rs, p.alpha, p.G) return p