.. _powerlaw-sources: Power-Law Sources ----------------- :class:`~pyxsim.source_models.PowerLawSourceModel` assumes that the emission can be described by a pure power law: .. math:: \varepsilon(E) = K\left(\frac{E}{E_0}\right)^{-\alpha}, E_{\rm min} \leq E \leq E_{\rm max} between the energies ``emin`` and ``emax``, with a power-law spectral index ``alpha``. The power law normalization :math:`K` is represented by an ``emission_field`` specified by the user, which must have units of counts/s/keV in the source rest frame. ``alpha`` may be a single floating-point number (implying the spectral index is the same everywhere), or a field specification corresponding to a spatially varying spectral index. A reference energy ``e0`` (see above equation) must also be specified. Examples ++++++++ An example where the spectral index is the same everywhere: .. code-block:: python e0 = (1.0, "keV") # Reference energy emin = (0.01, "keV") # Minimum energy emax = (11.0, "keV") # Maximum energy emission_field = "hard_emission" # The name of the field to use (normalization) alpha = 1.0 # The spectral index plaw_model = pyxsim.PowerLawSourceModel(e0, emin, emax, emission_field, alpha) Another example where you have a spatially varying spectral index: .. code-block:: python e0 = YTQuantity(2.0, "keV") # Reference energy emin = YTQuantity(0.2, "keV") # Minimum energy emax = YTQuantity(30.0, "keV") # Maximum energy emission_field = "inverse_compton_emission" # The name of the field to use (normalization) alpha = ("gas", "spectral_index") # The spectral index field plaw_model = pyxsim.PowerLawSourceModel(e0, emin, emax, emission_field, alpha)