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:
-
ElectronDistributionhas been changed toParticleDistribution. This is the base class from which all the different distributions (PowerLaw,BrokenPowerLawetc..) inherit; -
@dimaniad6 additionally implemented an
InterpolatedDistributionto read an arbitrary input particle distribution (two arrays: one for of Lorentz factors and the other for densities); -
the
Blobclass has been improved:- the different initialisation method available under the
spectrum_norm_typeargument of theBlobare now implemented in the baseParticleDistributionclass. 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
propertiesand 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_etok, as we are not describing exclusively electrons distributions now. This means that the corresponding parameter in the fit classes islog10_kinstead 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.