Advertisement
bolverk

accretion_disk_spectrum

May 17th, 2015
525
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.97 KB | None | 0 0
  1. def main():
  2.  
  3.     import sympy
  4.     import numpy
  5.     import pylab
  6.     import math
  7.  
  8.     f = sympy.Symbol('f')
  9.     c1 = 1.
  10.     c2 = 1e3
  11.     f_range = numpy.logspace(-6,2,100)
  12.     xi = sympy.Symbol('xi')
  13.     beta = 3./4.
  14.     integrand = lambda x: 0 if x>50 else (2./beta)*x**(2./beta-1)/(math.exp(x)-1)
  15.     F_list = [f**(3.-2./beta)*sympy.mpmath.quad(integrand,[f*c1,f*c2]) for f in f_range]
  16.     F_list = numpy.array([float(x) for x in F_list])
  17.     f_mid = 0.5*(f_range[1:]+f_range[:-1])
  18.     dlnFdlnf_list = numpy.diff(numpy.log(F_list))/numpy.diff(numpy.log(f_range))
  19.     pylab.subplot(211)
  20.     pylab.loglog(f_range, F_list)
  21.     pylab.ylim((0.5*F_list[0],2*numpy.max(F_list)))
  22.     pylab.title('Spectrum of an accretion disk')
  23.     pylab.ylabel(r'$F_f$')
  24.     pylab.subplot(212)
  25.     pylab.semilogx(f_mid, dlnFdlnf_list)
  26.     pylab.xlabel('f')
  27.     pylab.ylabel(r'$d \ln F_f / d \ln f$')
  28.     pylab.ylim((0,2.1))
  29.     pylab.show()
  30.  
  31. if __name__ == '__main__':
  32.  
  33.     main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement