Releases: cosimoNigro/agnpy
v0.4.0: introduced proton synchrotron
This is the first agnpy
version including hadronic radiative processes.
@IlariaViale and @dimaniad6 have implemented a ProtonSynchrotron
class.
v0.3.0: introduced proton particles distribution
v0.3.0 introduces proton particles distributions.
In the previous versions of the package, only an electron distribution was available, the latter had to be defined through a dictionary
# set the spectrum normalisation (total energy in electrons in this case)
spectrum_norm = 1e48 * u.Unit("erg")
# define the spectral function parametrisation through a dictionary
spectrum_dict = {
"type": "PowerLaw",
"parameters": {"p": 2.8, "gamma_min": 1e2, "gamma_max": 1e7},
}
# set the remaining quantities defining the blob
R_b = 1e16 * u.cm
B = 1 * u.G
z = Distance(1e27, unit=u.cm).z
delta_D = 10
Gamma = 10
blob = Blob(R_b, z, delta_D, Gamma, B, spectrum_norm, spectrum_dict)
This was not very handy: I have simplified - and broke - the previous blob API.
From version 0.3.0
this is how electron distribution are defined and passed to the blob
# electron distribution
n_e = BrokenPowerLaw(
k=1e-8 * u.Unit("cm-3"),
p1=1.9,
p2=2.6,
gamma_b=1e4,
gamma_min=10,
gamma_max=1e6,
mass=m_e,
)
# set the quantities defining the blob
R_b = 1e16 * u.cm
z = Distance(1e27, unit=u.cm).z
delta_D = 10
Gamma = 10
B = 1 * u.G
blob = Blob(R_b, z, delta_D, Gamma, B, n_e=n_e)
The new way of defining particle distributions also allows to define proton distributions
n_p = PowerLaw(k=0.1 * u.Unit("cm-3"), p=2.3, gamma_min=10, gamma_max=1e6, mass=m_p)
blob = Blob(R_b, z, delta_D, Gamma, B, n_e=n_e, n_p=n_p)
The only difference between particle distributions is the mass
argument.
This will eventually allow to describe other particle distributions.
To achieve this:
-
ElectronDistribution
has been changed toParticleDistribution
. This is the base class from which all the different distributions (PowerLaw
,BrokenPowerLaw
etc..) inherit; -
@dimaniad6 additionally implemented an
InterpolatedDistribution
to read an arbitrary input particle distribution (two arrays: one for of Lorentz factors and the other for densities); -
the
Blob
class has been improved:- the different initialisation method available under the
spectrum_norm_type
argument of theBlob
are now implemented in the baseParticleDistribution
class. I.e. one can initialisefrom_total_density
,from_total_energy_density
,from_density_at_gamma_1
,from_total_energy
; - several quantities are now provided as
properties
and are evaluated on the fly from the base parameters ($R_b$ ,$z$ ,$\delta_D$ ,$\Gamma$ ,$B$ );
- the different initialisation method available under the
-
the other classes remain largely unchanged. They have just been modified internally to deal with the new definition of particle distributions;
-
note that the prefactor of the particle distribution has been renamed from
k_e
tok
, as we are not describing exclusively electrons distributions now. This means that the corresponding parameter in the fit classes islog10_k
instead oflog10_k_e
.
v0.2.0: incorporated sherpa and Gammapy wrappers
In this release, the sherpa and Gammapy wrapper - that before were simple examples in the documentation - have been added to the source code.
A agnpy.fit
module has been introduced with two physical scenarios:
-
SycnhrotronSelfComptonModel
, representing the sum of synchrotron and synchrotron self-Compton (SSC) radiation. This scenario is commonly considered to model BL Lac sources; -
ExternalComptonModel
, representing the sum of synchrotron and synchrotron self-Compton radiation along with an external Compton (EC) component. EC scattering can be computed considering a list of target photon fields. This scenario is commonly considered to model flat spectrum radio quasars (FSRQs).
For each scenario, a sherpa
or gammapy
backend can be selected, such that the fit can be performed with both packages.
Some helper functions are added to load directly a file representing a MWL SED with a proper format into a data object of the two packages.
v0.1.8 minor fix in the usage of the default matplotlibrc
In the previous release I forgot to include the agnpy/utils/matplotlibrc
in the MANIFEST.in
.
To load it I am now using improtlib.resources
rather than the deprecated Path(__file__).parent
, see https://github.com/wimglenn/resources-example.
v0.1.7 minor fixes in the utils plot functions
This is a minor release fixing some inconsistencies in the agnpy.utils.plot
functions.
v0.1.6 modifications in .zenodo.json to make the code findable by the ESAP
Changed few keywords in the .zenodo.json to make it findable by the ESAP platform.
v0.1.4 test new .zenodo.json on zenodo
I am creating this version just to test that the new .zenodo.json, generated from the codemeta.json using the OSSR tools is correctly parsed by zenodo.
v0.1.3: updates in data and docs
With this new release:
- an update was realised in the data: the MWL SED of PKS1510-089 in 2015 was not properly converted to erg cm-2 s-1;
- a notebook was added, following the referee report, giving some caveats on suing the thermal SED agnpy computes for the DT.
Test automatic deployment on pip
This is release is made just to test the automatic upload on pip via github actions.
There are no significant differences from 0.1.1.
v0.1.1: added absorption on synch photons + check on EC on CMB
In this release:
- the absorption on synchrotron photons was added;
- a check on the EC on CMB is added with a reference SED produced by jetset;
- the MWL SED data were standardised to be readable with gammapy's
FluxPoints
.