Package: afterglowpy
Numeric GRB Afterglow modelsA Python 3 module to calculate GRB afterglow light curves and spectra. Details of the methods can be found inRyan et al 2019. Builds onvan Eerten & MacFadyen 2010andvan Eerten 2018.  This code is under active development.Documentation available athttps://afterglowpy.readthedocs.io/AttributionIf you use this code in a publication, please refer to the package by name and cite "Ryan, G., van Eerten, H., Piro, L. and Troja, E., 2019, arXiv:1910.11691"arXiv link.Featuresafterglowpycomputes synchrotron emission from the forward shock of a relativistic blast wave.  It includes:Fully trans-relativistic shock evolution through a constant density medium.On-the-fly integration over the equal-observer-time slices of the shock surface.Approximate prescription for jet spreading.Arbitrary viewing angles.Angularly structured jets, ie. E(θ)Spherical velocity-stratified outflows, ie. E(u)Counter-jet emission.It has limited support (these should be considered experimental) for:Initial energy injectionInverse comption spectraSpatially-resolved intensity mapsEarly coasting phaseIt does not include (yet):External wind medium, ie. n ∝ r-2Synchrotron self-absorbtionReverse shock emissionafterglowpyhas been calibrated to the BoxFit code (van Eerten, van der Horst, & Macfadyen 2011, available at theAfterglow Library) and produces similar light curves for top hat jets (within 50% when same parameters are used) both on- and off-axis.  Its jet models by default do not include an initial coasting phase, which may effect predictions for early observations.Installation/Buildingafterglowpyis available viapip:$pipinstallafterglowpyIf you are working on a local copy of this repo and would like to install from source, you can the run the following from the top level directory of the project.$pipinstall-e.UsingThis interface will be updated to be more sensible in the VERY near futureIn your python code, import the library withimport afterglowpy as grb.The main function of interest isgrb.fluxDensity(t, nu, jetType, specType, *pars, **kwargs).  Seetests/plotLC.pyfor a simple example.jetTypecan be -1 (top hat), 0 (Gaussian), 1 (Power Law w/ core), 2 (Gaussian w/ core), 3 (Cocoon), or 4 (Smooth Power Law).specTypecan be 0 (global cooling time, no inverse compton) or 1 (global cooling time, inverse compton).For jet-like afterglows (jetTypes-2, -1, 0, 1, 2, and 4)parshas 14 positional arguments:0 thetaVviewing angle in radians1 E0on-axis isotropic equivalent energy in erg2 thetaChalf-width of the jet core in radians (jetType specific)3 thetaW"wing" truncation angle of the jet, in radians4 bpower for power-law structure, θ-b5 L0Fiducial luminosity for energy injection, in erg/s, typically 0.6 qTemporal power-law index for energy injection, typically 0.7 tsFiducial time-scale for energy injection, in seconds, typically 0.8 n0Number density of ISM, in cm-39 pElectron distribution power-law index (p>2)10 epsilon_eThermal energy fraction in electrons11 epsilon_BThermal energy fraction in magnetic field12 xi_NFraction of electrons that get accelerated13 d_LLuminosity distance in cmFor cocoon-like afterglows (jetType3)parshas 14 positional arguments:0 umaxInitial maximum outflow 4-velocity1 uminMinium outflow 4-velocity2 EiFiducial energy in velocity distribution, E(>u) = Eiu-k.3 kPower-law index of energy velocity distribution4 MejMass of material at `umax' in solar masses5 L0Fiducial luminosity for energy injection, in erg/s, typically 0.6 qTemporal power-law index for energy injection, typically 0.7 tsFiducial time-scale for energy injection, in seconds, typically 0.8 n0Number density of ISM, in cm-39 pElectron distribution power-law index (p>2)10 epsilon_eThermal energy fraction in electrons11 epsilon_BThermal energy fraction in magnetic field12 xi_NFraction of electrons that get accelerated13 d_LLuminosity distance in cmKeyword arguments are:zredshift (defaults to 0)tRestime resolution of shock-evolution scheme, number of sample points per decade in timelatReslatitudinal resolution for structured jets, number of shells perthetaCrtoltarget relative tolerance of flux integrationspreadboolean (defaults to True), whether to allow the jet to spread.