In [ ]:
import numpy as np
import matplotlib.pyplot as plt

%matplotlib inline

In [ ]:
from newdust import *
from newdust import graindist

In [ ]:
EVALS = np.logspace(-1,1,30) # keV
LAMVALS = np.linspace(1000.,8000., 100) # angs

How to construct a SingleGrainPop object


In [ ]:
sgpop = SingleGrainPop('Powerlaw', 'Silicate', 'Mie')
sgpop.calculate_ext(LAMVALS, unit='angs')

In [ ]:
ax = plt.subplot(111)
sgpop.plot_ext(ax, 'all', loc='upper right', frameon=False)
plt.semilogy()

In [ ]:
ax = plt.subplot(111)
sgpop.plot_ext(ax, 'ext', color='g', lw=3)
sgpop.plot_ext(ax, 'sca', color='b', lw=2)
sgpop.plot_ext(ax, 'abs', color='r', lw=1)
plt.semilogy()

SingleGrainPop objects can be combined into a larger GrainPop


In [ ]:
silpop = SingleGrainPop('Powerlaw', 'Silicate', 'Mie')
grapop = SingleGrainPop('Powerlaw', 'Graphite', 'Mie')

myPop  = GrainPop([silpop, grapop], keys=['sil','gra'])

In [ ]:
myPop.calculate_ext(LAMVALS, unit='angs')

In [ ]:
ax = plt.subplot(111)
myPop['sil'].plot_ext(ax, 'ext', color='g', label='Silicate Extinction')
myPop['gra'].plot_ext(ax, 'ext', color='b', label='Graphite Extinction')
myPop.plot_ext(ax, 'ext', color='k', lw=2, label='Total')
ax.legend(loc='upper right', frameon=False)
plt.semilogy()

In [ ]:
myPop.info()

Shortcut (helper) functions


In [ ]:
NH = 1.e22 # cm^-2
MD = NH * 0.009 * constants.m_p

make_MRN


In [ ]:
mrn = make_MRN(md=MD)
mrn.calculate_ext(LAMVALS, unit='angs')

In [ ]:
ax = plt.subplot(111)
mrn.plot_ext(ax, 'all', frameon=False)

In [ ]:
ax = plt.subplot(111)
mrn.plot_ext(ax, 'ext', color='k', lw=2, label='total')
for k in mrn.keys:
    mrn[k].plot_ext(ax, 'ext', ls='--', label=k)
ax.legend(loc='upper right', frameon=False)

In [ ]:
mrn.info()

make_MRN_drude


In [ ]:
mrn_rgd = make_MRN_drude(md=MD)
mrn_rgd.calculate_ext(EVALS, unit='kev')

In [ ]:
ax = plt.subplot(111)
mrn_rgd.plot_ext(ax, 'all')
plt.loglog()

In [ ]:
mrn_rgd.info()

In [ ]: