Documentation for NLTE routines

Generated by IDLdoc

single page | use frames     summary     class     fields     routine details     file attributes

./

al_nlte.pro


This file contains a set of functions for use with NLTE grids from Nordlander, T., & Lind, K. 2017, A&A, 607, A75.

The grids and routines are available for download from here.

Execute .r al_nlte to interactively load a grid of LTE and NLTE calculations, and compile the interpolation routines. Instructions will be printed to screen, including the coverage in parameter space and the line data. Typical use cases include interpolating NLTE curves of growth using find_abund, or applying NLTE corrections to LTE abundances using interp_nlte_to_lte.

Note that equivalent widths are communicated in units of pm (=10^-9 m) throughout these routines, and stored as log(EW/pm) in the grids.

Examples

Example run for Arcturus, using NLTE_Al_mean3D_NordlanderLind2017.sav:

.compile al_nlte restore, 'NLTE_Al_mean3D_NordlanderLind2017.sav' ; load data Teff = 4247. & logg = 1.59 & FeH = -0.52 ; reference parameters from Jofre et al. 2014 line = [2,3,4,5,6,7,11,15,16,17,18,19,20,21] & n = n_elements(line) ; These <3D> LTE abundances were measured by profile fitting: LTE = [6.266,6.214,6.217,6.207,6.241,6.245,6.186,6.349,6.421,6.290,6.281,6.266,6.344,6.344] LTE = LTE - 6.43 - FeH ; translate A(Al) to [Al/Fe] ; Now compute NLTE corrections: dNLTE = interp_nlte_to_lte(line, LTE, replicate(Teff,n), replicate(logg,n), replicate(FeH,n), EW=EW, ltegrid=ltegrid, nltegrid=nltegrid, warnings=warnings) forprint,textout=2, /stdout, nltegrid.wavelength[line], LTE+dNLTE, LTE, dNLTE, EW*10, format='f10.3, 3f7.3, f10.2' ; Wavelength NLTE LTE dNLTE EW [mA] ; 6696.021 0.245 0.356 -0.111 88.08 ; 6698.671 0.232 0.304 -0.072 60.36 ; 7835.314 0.214 0.307 -0.093 65.35 ; 7836.134 0.186 0.297 -0.111 81.16 ; 8772.871 0.147 0.331 -0.184 99.09 ; 8773.900 0.117 0.335 -0.218 120.60 ; 10872.972 0.230 0.276 -0.046 29.70 ; 13123.420 0.175 0.439 -0.264 536.62 ; 13150.753 0.226 0.511 -0.285 457.62 ; 16718.952 0.175 0.380 -0.205 444.44 ; 16750.534 0.154 0.371 -0.217 556.92 ; 16763.331 0.263 0.356 -0.093 294.92 ; 21093.082 0.227 0.434 -0.207 357.34 ; 21163.762 0.179 0.434 -0.255 435.12
Example run using globular cluster data from Carretta et al. 2009, A&A, 505, 139, via Vizier - first, save the results of this query and name the output Carretta_etal_2009.fit. Symbols indicate NLTE abundances, and lines indicate the NLTE corrections:
.compile al_nlte restore, 'NLTE_Al_MARCS_NordlanderLind2017.sav' c = mrdfits('carretta_etal_2009.fit', 1) n = n_elements(c) LTE = c.__al_fe_ & FeH = c.__a_h_ ; Their analysis is based on the 6696-6698 A doublet. We assume here that ; the NLTE correction of the 6696 line is representative: dNLTE = interp_nlte_to_lte(replicate(2, n), LTE, c.teff, c.logg, FeH, EW=EW, ltegrid=ltegrid, nltegrid=nltegrid) NLTE = dNLTE + LTE plot, FeH, NLTE, psym=4, xtitle='[Fe/H]', ytitle='[Al/Fe]', title='NLTE corrected abundances' for i=0,n-1 do oplot, FeH[i]+[0,0], [LTE[i], NLTE[i]]

Author information

Author

Thomas Nordlander, RSAA/ANU - Website

History

Change history:

Written, 2017-12-20, TN Modified, 2018-01-22, TN: completely rewritten to use grids stored in structures. This improves portability and compatibility with GDL.

Other file information

Uses:

Astrolib

Routines

Routines from al_nlte.pro

result = find_abund(line, teff, logg, feh, ew, grid=grid [, warnings=float/fltarr(n)])

Interpolate the curves of growth to a given equivalent width (units of pm).

result = find_ew(line, teff, logg, feh [, xfe], grid=grid [, warnings=float/fltarr(n)])

Interpolate the curves of growth to a given abundance.

result = interp_nlte_to_lte(line, xfe, teff, logg, feh [, ew=float/fltarr(n)], ltegrid=grid, nltegrid=grid [, warnings=float/fltarr(n)])

Find the abundance correction at a given LTE abundance [X/Fe].

result = interp_lte_to_nlte(line, xfe, teff, logg, feh [, ew=float/fltarr(n)], ltegrid=grid, nltegrid=grid [, warnings=float/fltarr(n)])

Find the abundance correction at a given NLTE abundance [X/Fe].

Routine details

top source find_abund

result = find_abund(line, teff, logg, feh, ew, grid=grid [, warnings=float/fltarr(n)])

Interpolate the curves of growth to a given equivalent width (units of pm).

Note that the input parameters may be vectors if equivalent widths are given, in which case the output will also be vectors. All parameters must have the same length. A special case is allowed, where all parameters except EW are scalar.

Return value

The abundance (float/lonarr(n)) is returned.

Parameters

line in required type=long/lonarr(n)

Line indices

teff in required type=float/fltarr(n)
logg in required type=float/fltarr(n)
feh in required type=float/fltarr(n)
ew in required type=float/fltarr(n)

Equivalent width in units of pm.

Keywords

grid in required type=grid

A structure containing an LTE or NLTE grid

warnings out optional type=float/fltarr(n)

Warnings and errors. These use a floating scale 0-1 to indicate the fraction of nodes used for interpolation that may be unreliable due to extrapolation.

top source find_ew

result = find_ew(line, teff, logg, feh [, xfe], grid=grid [, warnings=float/fltarr(n)])

Interpolate the curves of growth to a given abundance.

If no abundance is provided, then grid.abund will be used and an array of equivalent widths (the curve of growth) is returned.

Note that the input parameters may be vectors, in which case the output will also be vectors. All parameters must have the same length. A special case is allowed, where all parameters except XFE are scalar.

Return value

The equivalent width (float/lonarr(n)) is returned in units of pm.

Parameters

line in required type=long/lonarr(n)

Line indices

teff in required type=float/fltarr(n)
logg in required type=float/fltarr(n)
feh in required type=float/fltarr(n)
xfe in optional type=float/fltarr(n)

Abundances [X/Fe] to find. If unspecified or not finite, grid.abund will be used instead.

Keywords

grid in required type=grid

A structure containing an LTE or NLTE grid

warnings out optional type=float/fltarr(n)

Warnings and errors. These use a floating scale 0-1 to indicate the fraction of nodes used for interpolation that may be unreliable due to extrapolation.

top source interp_nlte_to_lte

result = interp_nlte_to_lte(line, xfe, teff, logg, feh [, ew=float/fltarr(n)], ltegrid=grid, nltegrid=grid [, warnings=float/fltarr(n)])

Find the abundance correction at a given LTE abundance [X/Fe]. A sequence of values can be provided, but note that all parameters must have the same number of elements. The difference DeltaNLTE = A(NLTE)-A(LTE) is returned.

Note that the equivalent widths returned are slightly (0.01 dex) inconsistent with the interpolated NLTE corrections. Rather than interpolate and match COGs, the NLTE corrections themselves are interpolated. This typically results in smoother variations with abundance and avoids numerical noise.

Return value

A scalar (float) or n-element array (fltarr(n)) with the NLTE correction at the requested LTE abundance. The NLTE correction is defined as the abundance difference deltaNLTE = A(NLTE) - A(LTE).

Parameters

line in required type=long/lonarr(n)

Line indices

xfe in required type=float/fltarr(n)

LTE abundance [X/Fe]

teff in required type=float/fltarr(n)
logg in required type=float/fltarr(n)
feh in required type=float/fltarr(n)

Keywords

ew out optional type=float/fltarr(n)

Equivalent width, in units of pm.

ltegrid in required type=grid

A structure containing an LTE grid

nltegrid in required type=grid

A structure containing an NLTE grid

warnings out optional type=float/fltarr(n)

Warnings and errors. These use a floating scale 0-1 to indicate the fraction of nodes used for interpolation that may be unreliable due to extrapolation.

top source interp_lte_to_nlte

result = interp_lte_to_nlte(line, xfe, teff, logg, feh [, ew=float/fltarr(n)], ltegrid=grid, nltegrid=grid [, warnings=float/fltarr(n)])

Find the abundance correction at a given NLTE abundance [X/Fe]. A sequence of values can be provided, but note that all parameters must have the same number of elements. The difference DeltaNLTE = A(NLTE)-A(LTE) is returned.

Note that the equivalent widths returned are slightly (0.01 dex) inconsistent with the interpolated NLTE corrections. Rather than interpolate and match COGs, the NLTE corrections themselves are interpolated. This typically results in smoother variations with abundance and avoids numerical noise.

Return value

A scalar (float) or n-element array (fltarr(n)) with the NLTE correction at the requested LTE abundance. The NLTE correction is defined as the abundance difference deltaNLTE = A(NLTE) - A(LTE).

Parameters

line in required type=long/lonarr(n)

Line indices

xfe in required type=float/fltarr(n)

NLTE abundance [X/Fe]

teff in required type=float/fltarr(n)
logg in required type=float/fltarr(n)
feh in required type=float/fltarr(n)

Keywords

ew out optional type=float/fltarr(n)

Equivalent width, in units of pm.

ltegrid in required type=grid

A structure containing an LTE grid

nltegrid in required type=grid

A structure containing an NLTE grid

warnings out optional type=float/fltarr(n)

Warnings and errors. These use a floating scale 0-1 to indicate the fraction of nodes used for interpolation that may be unreliable due to extrapolation.

File attributes

Modification date: Mon Jan 22 15:38:42 2018
Lines: 221
Docformat: rst rst