About relxill

general information about the model

relxill is a new reflection model, which can be readily used in common X-ray data analysis tools such as isis, xspec, or sherpa. It combines the xillver reflection code (Garcia et al., 2010, 2011, 2013) and the relline ray tracing code (Dauser et al., 2010, 2013). The striking feature is that for each point on the disk the proper xillver-reflection spectrum is chosen for each relativistically calculated emission angle. The implications of this improvement and more details regarding the model are provided in Garcia & Dauser et al. (2014, ApJ, 782, 76) and Dauser & Garcia et al. (2014, MNRAS, 444, L100). More recently returning radiation has also been added (Dauser et al, 2022, MNRAS , 514, 3965).

relxill on GitHub: you can also follow the development of the model on GitHub and download the model from there (https://github.com/thdauser/relxill/)

What's new in version 2.0?

  • returning radiation included (Dauser et al, 2022, MNRAS , 514, 3965, link )
  • new switch allows fitting the boost parameter instead of the reflection fraction
  • relxilllpCp model with ionization and density gradient (up to 1020cm-3) and a velocity of the lamp post source
  • new document describing the relxill model, including a detailed explanation of all features (relxill_docu_v1.0.pdf)
basic features of the relxill model package
  • simple line models and convolution models
  • the xillver reflection model
  • cutoff power law and nthcomp as primary continuum
  • irradiation of the disk by broken power law or lamp post geometry
  • self-consistent normalization of primary and reflected spectrum
  • multi-zone disk for the primary spectrum in the lamp post geometry
The Ionization Gradient in the relxill model

As of version 1.3.0, the relxill also includes a variant which allows for an ionization gradient. Currently this is implemented for the relxilllpCp model flavor. Either the shape of the gradient can be fitted as a power law, or the gradient is predicted from the alpha disk density profile.

The figure on the left shows the spectra for three different levels of ionization (left panel) with the associated ionization gradient (right panel). The dashed line shows the radius of maximal ionization.

Download and Installation

First download all necessary files given in the download section. It is not necessary to download all reflection tables. If those are required, a warning is issued when executing the model.

To compile the model, put all the downloaded files into a directory, and unpack them:

tar xfz relxill_tables.tgz
tar xfz relxill_model_v2.3.tgz

In order to compile the model, it is recommended that you call the provided compile-script by executing:

  chmod u+x ./compile_relxill.sh

In this way the path to the tables will be correctly set in the model code, allowing you to properly load the model from any location. If you have a Mac OSX and setting the table paths fails, you might need to edit the file and un-comment the line marked for "Mac OSX".

ALTERNATIVE: If you don't want to use this compile script, you can also set the path to the tables by setting the environment variable "RELXILL_TABLE_PATH" to the directory which contains the tables.

For Mac Users (taken from the Xspec webpage for Xspec 12.13.1) [if you attempt] to build the relxill local model package with the clang++ compiler, you will first need to download and run this shell script from your heasoft-[ver]/Xspec/src directory. Note that this is the same directory from which you would normally install Xspec patch files.

Change Log

  • [2.3]: Fixes (some) installation problems for the Mac OS with the M1 chip and when heasoft was compiled with clang. - 2023-02-15
  • [2.2]: For relxilllpCp with beta>0, fixed a bug which resulted for some cases (very low height and large beta) in an over-estimated value of the fitted reflection fraction. Any fits done with switch_reflfrac_boost=1 are not affected, and also not the spectral shape, but only the value of the refl_frac parameter. Additionally, minor memory leak fixed if the ENV variable RELXILL_WRITE_FILES=1 was set. - 2022-08-29
  • [2.1]: bug fixes and improvements:
    (1) fixes a bug for relxilllpCp model for beta>0: the primary spectrum was not shifted correctly in energy and also the normalization was not calculated correctly
    (2) for the Lamp Post models, improved how the normalization of the reflection emitted from each zone on the accretion disk is calculated. Previously, to calculate the normalization of the xillver reflection spectrum, the primary spectrum was taken with the cutoff energy (or kTe for nthcomp) as emitted from the primary source. Now, the normalization is calculated for each radial zone on the disk separately, taking into account the energy shift of the cutoff from the source to each zone on the disk when calculating the normalization. Note that this change only applies to the normalization; the energy shift of the cutoff energy for the spectrum itself has already been implemented since version 1.0.
    (3) slightly increase the speed of the relxilllpCp model when including returning radiation - 2022-07-01
  • [2.0]: major update: includes returning radiation (Dauser et al., 2022) and adds a switch to allow a boost parameter instead of reflection fraction. Additionally, the neutron star reflection model relxillNS is included, which models the relativistic reflection produced a black body incident spectrum (Garcia et al., 2022). Some parameter names were slightly changed to make the naming more consistent. - 2022-06-16
  • [1.4.3]: fixes small memory leak for the Cp-models using the standard tables - 2021-01-22
  • [1.4.2]: fixes memory problems if a 6-dim table was used - 2021-01-21
  • [1.4.1]: corrects the (loose) definition of the reflection fraction in the relxill (non-LP) type models, which now directly follows the xillver/pexrav definition of the flux. This implies that the normalization (i.e., the flux) now depends on the inclination as F=1/2*cos(incl). - 2021-01-06
  • [v1.4.0] improves the interpolation of the xillver reflection spectra. This mainly affects the logN parameter and the relative normalization of xillverD and relxillD type models. - 2020-10-07
  • [v1.3.10] Cp-type models can again be loaded using the standard xillver reflection table (xillver-comp.fits) - 2020-08-03
  • [v1.3.9] fixes model sometimes crashing for a few, specific values of spin - 2020-07-10
  • [v1.3.7] restricts Incl < 87 degrees in the lmodel.dat to be consistent with the provided tables - 2020-04-15
  • [v1.3.5] works with new heasoft and stricter compiler options - 2019-10-17
  • [v1.3.3] new model relxilllpionCp added, which provides the ionization gradient and a moving primary source, but now also for the nthcomp primary continuum. - 2019-08-09
  • [v1.3.2] add "beta" parmeter (velocity of the primary source) to the relxilllpion model - 2019-08-02
  • [v1.3.0] ionization gradient and high density models
    - Included model relxilllpion predicting an ionization gradient (more information is given in the model section)
    - Update of the high-density models (xillverD, relxillD) to include a larger range in Gamma up to 3.6 (table is now xillverD-5.fits) - 2019-07-12
  • [v1.2.0] reverting the wrong change for the emissivity profile introduced by 1.1.0, change (1). Information on the update from 1.0.x to 1.2.0 can be found in this pdf. Besides this change, the environment variable RELLINE_PHYSICAL_NORM has been added. If set to 1, it will return the acutal normalization of the relline and relconv type models (not recommended for fitting). - 2018-08-07
  • [v1.1.0] Major update and bug fix, mainly for the lamp post version. The spectral shape of the standard relxill remains unchanged. (1) The emissivity profile in the lamp post geometry has been corrected, leading to a steeper radial dependency. This change was incorrected and has been reverted in v1.2.0. (2) fixing a wrong normalization of the reflected spectrum, mainly affecting models with a large inclination angle (3) removing the re-normalization with RENORM_RELXILL_MODEL (4) updating the relativistic table, to achieve a more precise calculation of relativstic blurring for very low inclinations. - 2018-07-27
  • [v1.0.4] only applies to the LP model flavors
    fixed inconsistencies and problems with the normalization of the reflection component of relxilllp and relxilllpCp, affecting only LP sources at large height (>20Rg) and Rout<1000 Rg, or with Rin>R_ISCO. The spectral shape and therefore eventually fitting parameters were only affected if fixReflFrac=1,2 was set. Additionally, problems with caching which sometimes occured when changing the inclination by a large were also fixed. - 2018-03-07
  • [v1.0.3] fixed relconv normalization (same now as for the previous relxill version) and in relxilllpCp temperature is now correctly given in the rest frame of the primary source - 2017-12-06
  • [v1.0.2] solved segmentation fault if model was executed in folder without write permission - 2017-08-03
  • [v1.0.1] added possiblity to change the re-normalization behaviour of the models with the environment variable RENORM_RELXILL_MODEL - 2017-06-23
  • [v1.0.0] first version of the new relxill model, including now multiple zones for the LP-relxill model flavours. All other models produce the same results, but all models are evaluated significantly faster - 2017-06-08

relxill model flavors

The detailed documentation can be found in the Download Section. In the following only a brief overview of the models is given.

relxill, relxillCp

Standard relativistic reflection model, modeling the irradiation of the accretion by a broken power law emissivity. Different flavors are for an incident spectrum by either the standard high-energy cutoff powerlaw or an nthcomp Comptonization continuum (Cp).

relativistic reflection in coronal geometry

relxilllp, relxilllpCp

The relativistic reflection model for the lamp post geometry, again for an incident cutoff powerlaw or nthcomp spectrum (Cp). The disk is split in multiple zones, which see a different incident spectrum due to relativistic energy shifts of the primary spectrum.

lamp post geometry

xillver, xillverCp

normal reflection models, given for different incident spectra; powerlaw with high-energy cutoff (xillver) or with a nthcomp Comptonization (xillverCp).

non-relativistic reflection model

relline, relline_lp

simple line model, available in the coronal and lamp post (lp) geometry

line model, corona, lamp post

relconv, relconv_lp

similar to the line models, but now as a convolution model being able to convolve any reflection

flexible convolution model


Model including an ionization gradient. Depending on the setting of the parameter iongrad_type, the gradient can be either modeled empirically as power law, or is predicted assuming a simple alpha disk (Shakura & Sunyaev, 1973). Detailed information is given in the parameters section. Also includes a velocity of the primary source.

ionization gradient, lamp post

xillverNS, relxillNS

Same as the standard reflection models (xillver, relxill) but with a black body of temperature kTbb as incident spectrum.

neutron star models

relxill model parameters

In the following, a list of all model parameters ia given. Some parameters have a special meaning if their value is negative, as also indicated in the list below. A detailed explanation of the parameters can be found in the PDF documentation.


spin of the black hole in dimensionless units, negative values mean the accretion disk is counter-rotating with respect to the black hole

Rin, Rout

inner and outer radius of the accretion disk in gravitational radii. Can also be given in units of the ISCO, when it is set to negative values.


inclination towards the system with respect to the normal to the accretion disk

Index1, Index2, Rbr

the emissivity for the coronal flavor models is given as r-Index1 between Rin and Rbr and r-Index2 between Rbr and Rout. Rbr is measured in gravitational radii, but can also be given in units of the ISCO if given in negative values.


Height of the primary source above the black hole in gravitational radii. Can be given in units of the event horizon if set to negative values.


Velocity of the primary source, in units v/c. Allowed values range form 0 to 0.99.

refl_frac, switch_reflfrac_boost

reflection fraction, defined in the frame of the primary source as ratio of intensity emitted towards the disk compared to escaping to infinity (see Dauser+2016 for more details). If set to a negative value, only the reflected component is returned. If setting switch_reflfrac_boost=1, it is interpreted as the boost parameter, which divides the reflection fraction by the predicted value of the given lamp post geometry.


if set to 1, returning radiation is included in the model (see Dauser+22)


Ionization of the accretion disk, ranging from 0 (neutral) to 4.7 (heavily ionized). In case of an ionization gradient, it specifies either the ionization at the inner edge (power law type) or the maximal ionization at (11/9)²Rin (alpha type).


The iron abundance of the material in the accretion disk (in units of solar abundance).


Power law index of the incident spectrum.


Temperature of the black body of the incident spectrum in case of the relxillNS model.

Ecut, kTe

Parameter describing the observed high energy cutoff Ecut of the primary spectrum. In case of the nthcomp input spectrum it is given as electron temperature in the corona (kTe). Important: This means that for all LP-type models, Ecut is given in the frame of the observer and therefore the value at the primary source has to be calculated by multiplying with the redshift factor (see fixReflFrac=2). kTe is given at the primary source, as temperature of the plasma. In case of the standard coronal model, no energy shift is applied.


The density of the accretion disk (in cm-3) given in logarithmic units. Models not containing this parameter are calculated for a fixed density of 1015 cm-3.


redshift to the source

iongrad_type, iongrad_index

Specifies the ionization gradient. If set to 1, it will be modeled as power law where the iongrad_index is defined as xi = r-iongrad_index. Setting it to 2 means it a density gradient for of an alpha disk is used, and the ionization gradient is self-consistently calculated from the irradiation of the primary source. In this case the ionization parameter is given at the maximal value (at (11/9)²Rin, see logxi above). For convenience, setting it to 0 means constant ionization.

Additional Information

  • NORMALIZATION of XILLVER/RELXILL The definition of the normalization is given in Dauser+2016 (Eq. A.1).
  • IONIZATION GRADIENT for the ALPHA DISK To calculate the gradient, we use a density profile of r3/2[1−(Rin/r)1/2 ]−2, which assumes a constant alpha parameter. As xillver is only calculated for a 45° incident angle, we correct the gradient for the incident angle according to xieff = xi * cos(45°) / cos(delinc) (see Dauser et al., 2013). More details can be found in the documentation.
  • NTHCOMP: The nthcomp model is the standard xspec local model. Hidden parameters for the calculation of the continum for every Cp-type model are that kT_bb=0.01 and inp_type=1.
  • RELXILL_PRINT_DETAILS: If set to 1, additional output is printed on the screen, such as the reflection fraction, reflection strength and redshift to the primary source for the current configuration.
  • RELLINE_PHYSICAL_NORM: Since [v1.2.0] the environment variable RELLINE_PHYSICAL_NORM can be set to 1, which will return the physical normalization of relline and relconv type models.