示例#1
0
	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)
示例#2
0
	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
示例#3
0
	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