Plasma emission, multi-temperature with gaussian distribution of emission measure. XSPEC model.
A variant of the xsgadem model (see 'ahelp xsgadem' and model description below) which allows the user to define the abundances used in plasma-code models (for the xsgadem version, the abundance ratios are set by the set_xsabund command).
xsgadem/xsvgdem is a multi-temperature plasma emission model built on top of the apec or mekal codes (Sherpa 'xsapec' and 'xsmekal' models). The emission measure distribution is a gaussian with mean and sigma given by the 'Tmean' and 'Tsigma' model parameters. The 'switch' parameter determines whether the apec or mekal codes will be used. For the mekal code there are also the options to run the code for each temperature or interpolate from a pre-calculated table; the former is slower but more accurate. See the documentation on the apec model ('ahelp xsapec') for additional information on using different AtomDB versions or applying thermal or velocity broadening.
This is an additive model component.
|1||Tmean||mean temperature for gaussian emission measure distribution|
|2||Tsigma||sigma temperature for gaussian emission measure distribution|
|4-17||He, C, N, O, Ne, Na, Mg, Al, Si, S, Ar, Ca, Fe, Ni||abundances relative to solar abundances (defined by the set_xsabund command)|
|19||switch||0: calculate using MEKAL model | 1: interpolate using MEKAL model | 2: interpolate using APEC model|
This information is taken from the XSPEC User's Guide. Version 12.9.1n of the XSPEC models is supplied with CIAO 4.10.
Changing the AtomDB version
By default this model reads atomic physics continuum and line data from the files apec_v[version]_coco.fits and apec_v[version]_line.fits in the $ASCDS_INSTALL/ots/spectral/modelData directory. Different files can be specified by using the set_xsxset command to change the "APECROOT" value. There are three options.
- APECROOT can be set to a version number (eg 1.10, 1.2.0, 1.3.1, 2.0.1). In this case the value of APECROOT will be used to replace 3.0.7 in the name of the standard files and the resulting files will be assumed to be in the modelData directory.
- Alternatively, a filename root (eg apec_v1.2.0) can be given. This root will be used as a prefix for the _coco.fits and _line.fits files.
- Finally, if neither of these work then the model will assume that the APECROOT value gives the complete directory path
sherpa> set_xsxset('APECROOT', '/data/xspec/apec_v1.2.0')
will use the input files /data/xspec/apec_v1.2.0_coco.fits and /data/xspec/apec_v1.2.0_line.fits.
Thermal broadening of lines can be included by using
sherpa> set_xsxset('APECTHERMAL', 'yes')
This runs significantly slower than the option without thermal broadening so you should only use this when necessary. Velocity broadening of lines can be included by using
sherpa> set_xsxset('APECVELOCITY', '230')
where the velocity value (here set to 230) is sigma in km/s (and is given as a string). This is added in Gaussian quadrature with any thermal broadening in use.
Changing the abundances
The xsapec and xsbapec models use abundances set by the set_xsabund() command. The xsvapec, xsbvapec, xsvvapec, and xsbvvapec variants allow the user to set the abundance using additional parameters. For xsapec, xsbapec, xsvapec, and xsbvapec the abundances of the trace elements (ie Li, Be, B, F, Na, P, Cl, K, Sc, Ti, V, Cr, Mn, Co, Cu, Zn) can be set using the APEC_TRACE_ABUND setting. These trace element abundances can be set either to the abundance of one of the main elements or to a numerical value (relative to Solar). For instance,
sherpa> set_xsxset('APEC_TRACE_ABUND', 'Fe')
sets trace element abundances to that of iron while
sherpa> set_xsxset('APEC_TRACE_ABUND', '1.0')
sets them to Solar. The default value for APEC_TRACE_ABUND is 1.0. Note that this means that the xsapec, xsbapec, xsvapec and xsbvapec models will show emission lines even if the abundance parameters are set to zero.
Line emission for APEC-related models can be controlled with the APECNOLINES xset setting. The default is to include lines, but using a setting of 'on' will avoid calculating lines. That is
sherpa> set_xsxset('APECNOLINES', 'on')
will exclude lines from any APEC model. To get the lines back, use
sherpa> set_xsxset('APECNOLINES', 'off')
An example of changing this setting is shown below:
sherpa> egrid = np.arange(0.1, 10, 0.01) sherpa> create_model_component('xsapec', 'mdl') sherpa> set_xsxset('APECNOLINES', 'on') sherpa> ynolines = mdl(egrid) sherpa> set_xsxset('APECNOLINES', 'off') sherpa> ylines = mdl(egrid) sherpa> clear() sherpa> add_histogram(egrid, ynolines) sherpa> add_histogram(egrid, ylines, ['*.color', 'red']) sherpa> log_scale()
For a list of known bugs and issues with the XSPEC models, please visit the XSPEC bugs page.
To check the X-Spec version used by Sherpa, use the get_xsversion routine from the xspec module:
sherpa> from sherpa.astro.xspec import get_xsversion sherpa> get_xsversion() '12.9.1n'
- absorptionedge, absorptiongaussian, absorptionlorentz, absorptionvoigt, accretiondisk, atten, bbody, bbodyfreq, beta1d, beta2d, blackbody, box1d, box2d, bpl1d, bremsstrahlung, brokenpowerlaw, ccm, const1d, const2d, cos, delta1d, delta2d, dered, devaucouleurs2d, disk2d, edge, emissiongaussian, emissionlorentz, emissionvoigt, erf, erfc, exp, exp10, fm, gauss1d, gauss2d, hubblereynolds, jdpileup, linebroad, list_model_components, list_models, lmc, load_xscflux, load_xsgsmooth, load_xsireflect, load_xskdblur, load_xskdblur2, load_xskerrconv, load_xslsmooth, load_xspartcov, load_xsrdblur, load_xsreflect, load_xssimpl, load_xszashift, load_xszmshift, log, log10, logabsorption, logemission, logparabola, lorentz1d, lorentz2d, models, normbeta1d, normgauss1d, normgauss2d, opticalgaussian, poisson, polynom1d, polynom2d, polynomial, powerlaw, powlaw1d, recombination, scale1d, scale2d, schechter, seaton, sersic2d, shell2d, sigmagauss2d, sin, sm, smc, sqrt, stephi1d, steplo1d, tablemodel, tan, xgal, xs, xsabsori, xsacisabs, xsagauss, xsapec, xsbapec, xsbbody, xsbbodyrad, xsbexrav, xsbexriv, xsbkn2pow, xsbknpower, xsbmc, xsbremss, xsbvapec, xsbvvapec, xsc6mekl, xsc6pmekl, xsc6pvmkl, xsc6vmekl, xscabs, xscemekl, xscevmkl, xscflow, xscompbb, xscompls, xscompmag, xscompps, xscompst, xscomptb, xscompth, xscomptt, xsconstant, xsconvolve, xscplinear, xscutoffpl, xscyclabs, xsdisk, xsdiskbb, xsdiskir, xsdiskline, xsdiskm, xsdisko, xsdiskpbb, xsdiskpn, xsdust, xsedge, xseplogpar, xseqpair, xseqtherm, xsequil, xsexpabs, xsexpdec, xsexpfac, xsezdiskbb, xsgabs, xsgadem, xsgaussian, xsgnei, xsgrad, xsgrbm, xsheilin, xshighecut, xshrefl, xskerrbb, xskerrd, xskerrdisk, xslaor, xslaor2, xslogpar, xslorentz, xslyman, xsmeka, xsmekal, xsmkcflow, xsnei, xsnotch, xsnpshock, xsnsa, xsnsagrav, xsnsatmos, xsnsmax, xsnsmaxg, xsnsx, xsnteea, xsnthcomp, xsoptxagn, xsoptxagnf, xspcfabs, xspegpwrlw, xspexmon, xspexrav, xspexriv, xsphabs, xsplabs, xsplcabs, xsposm, xspowerlaw, xspshock, xspwab, xsraymond, xsredden, xsredge, xsrefsch, xsrnei, xssedov, xssirf, xssmedge, xsspexpcut, xsspline, xssrcut, xssresc, xssss_ice, xsstep, xsswind1, xstbabs, xstbgrain, xstbvarabs, xsuvred, xsvapec, xsvarabs, xsvbremss, xsvequil, xsvgnei, xsvmcflow, xsvmeka, xsvmekal, xsvnei, xsvnpshock, xsvphabs, xsvpshock, xsvraymond, xsvrnei, xsvsedov, xsvvapec, xsvvgnei, xsvvnei, xsvvnpshock, xsvvpshock, xsvvrnei, xsvvsedov, xswabs, xswndabs, xsxion, xszagauss, xszbabs, xszbbody, xszbremss, xszdust, xszedge, xszgauss, xszhighect, xszigm, xszpcfabs, xszphabs, xszpowerlw, xszredden, xszsmdust, xsztbabs, xszvarabs, xszvfeabs, xszvphabs, xszwabs, xszwndabs, xszxipcf