⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ismeuv.pro

📁 basic median filter simulation
💻 PRO
字号:
function ismeuv,wave,Hcol,HeIcol,HeIIcol,Fano=fano;+; NAME:;       ISMEUV; PURPOSE:;       Compute the continuum interstellar EUV optical depth ;; EXPLANATION:;       The EUV optical depth is computed from the photoionization of;       hydrogen and helium.;; CALLING SEQUENCE:;       tau = ISMEUV( wave, Hcol, [ HeIcol, HeIIcol, /Fano ];; INPUTS:;       wave - Vector of wavelength values (in Angstroms).   Useful range is;               40 - 912 A; at shorter wavelengths metal opacity should be;               considered, at longer wavelengths there is no photoionization.;       Hcol - Scalar specifying interstellar hydrogen column density in cm-2.;                 Typical values are 1E17 to 1E20.;; OUTPUT:;       tau - Vector giving resulting optical depth, same number of elements ;               as wave, non-negative values.   To obtain the attenuation of ;               an input spectrum, multiply by exp(-tau).;; OPTIONAL INPUTS:;       HeIcol - Scalar specifying neutral helium column density in cm-2.    ;               Default is 0.1*Hcol (10% of hydrogen column);       HeIIcol - Scalar specifying ionized helium column density in cm-2;               Default is 0 (no HeII);; OPTIONAL INPUT KEYWORDS:;       /FANO - If this keyword is set and non-zero, then the 4 strongest ;               auto-ionizing resonances of He I are included.   The shape ;               of these resonances is given by a Fano profile - see Rumph, ;               Bowyer, & Vennes 1994, AJ, 107, 2108.  If these resonances are;               included then the input wavelength vector should have;               a fine (>~0.01 A) grid between 190 A and 210 A, since the;               resonances are very narrow.; EXAMPLE:;       (1) One has a model EUV spectrum with wavelength, w (in Angstroms) and ;       flux,f .  Plot the model flux after attenuation by 1e18 cm-2 of HI, ;       with N(HeI)/N(HI) = N(HeII)/N(HI) = 0.05;;       IDL> Hcol = 1e18;       IDL> plot, w, f*exp(-ismeuv(w, Hcol, .05*Hcol, .05*Hcol));;       (2)  Plot the cross-section of HeI from 180 A to 220 A for 1e18 cm-2;               of HeI, showing the auto-ionizing resonances.   This is ;               Figure 1 in Rumph et al. (1994);;       IDL> w = 180 + findgen(40000)*0.001        ;Need a fine wavelength grid;       IDL> plot, w, ismeuv(w, 0, 1e18, /Fano)          ;; NOTES:;       (1) The more complete program  ismtau.pro at ;           http://hea-www.harvard.edu/PINTofALE/pro/ extends this work;           to shorter wavelengths and includes metal and molecular hydrogen;           opacities;       (2) This program only compute continuum opacities, and for example,;           the He ionization edges at 504 A  and 228 A are blurred by;           converging line absorptions (Dupuis et al. 1995. ApJ, 455, 574);           ; HISTORY:;       Written,    W. Landsman                  October, 1994;       Adapted from ism.c at anonymous ftp site cea-ftp.cea.berkeley.edu;       by Pat Jelinsky, Todd Rumph & others.;       Converted to IDL V5.0   W. Landsman   September 1997;       Avoid underflow messages, support double prec.  W. Landsman October 2003;- On_error,2 if N_params() LT 2 then begin        print,'Syntax - tau = ISMEUV( wave, Hcol, [ HeIcol, HeIIcol, /FANO] )'        return,-1 endif if N_elements( HeIcol) EQ 0 then HeIcol = 0.1*Hcol if N_elements( HeIIcol) EQ 0 then HeIIcol = 0.0*Hcol; Compute attenuation due to photoionization of hydrogen.   See Spitzer; (Physical processes in the interstellar medium), page 105 if (size(wave,/TNAME) EQ 'DOUBLE') then begin           pi = !dpi           double  = 1b  endif else  begin           pi = !pi          double = 0b endelse ratio = wave/911.75 tauh = wave*0. good = where(ratio LT 1, Ngood) minexp = alog((machar(double=double)).xmin) ;Min exponent to avoid underflow if Ngood GT 0 then begin        r = ratio[good]        z = sqrt( r/(1.0-r) )        denom = replicate(1.0, Ngood)        y = -2.*pi*z        good1 = where(y GT minexp, Ngood1)             if Ngood1 GT 0 then denom[good1] = (1.0 - exp(y[good1]))                tauh[good] = Hcol * 3.44e-16 * (r^4)*exp(-4.0*z*atan(1/z)) /  denom  endif; Now compute photoionization cross-section of He II; just like hydrogen but ; with a nuclear charge Z = 2 tauheII = wave*0. ratio = 4. * wave/911.75 good = where(ratio LT 1, Ngood) if Ngood GT 0 then begin        r = ratio[good]        z = sqrt( r/(1.0-r) )        denom = replicate(1.0, Ngood)        y = -2*PI*z        good1 = where(y GT minexp, Ngood1)           if Ngood1 GT 0 then denom[good1] = 1.0 - exp(y[good1])*4.        tauheII[good] = heiicol * 3.44e-16 * (r^4)*exp(-4.0*z*atan(1/z)) / denom             endif; Polynomial coefficients for He I cross-section taken from experimental; data by Marr & West (1976); c1 for wavelengths greater than 46 A c1 = [-2.953607d+01, 7.083061d+00, 8.678646d-01,-1.221932d+00,  $       4.052997d-02, 1.317109d-01, -3.265795d-02, 2.500933d-03 ]; c2 for wavelengths less than 46 A. c2 = [ -2.465188d+01, 4.354679d+00, -3.553024d+00, 5.573040d+00, $       -5.872938d+00, 3.720797d+00, -1.226919d+00, 1.576657d-01 ]; parameters of autoionization resonances for 4 strongest He I resonances; Numbers are from Oza (1986), Phys Rev. A, 33, 824 -- nu and gamma; and Fernley et al., J. Phys. B., 20, 6457, 1987 -- q        q  = [2.81d, 2.51d, 2.45d, 2.44d ]        nu = [1.610d, 2.795d, 3.817d, 4.824d ]        fano_gamma = [2.64061d-03, 6.20116d-04, 2.56061d-04, 1.320159d-04 ]        esubi = 3.0d - 1.0d/nu^2 + 1.807317d tauHeI = wave*0. good = where( wave LT 503.97, Ngood ) if Ngood GT 0 then begin        x = alog10(wave[good])        y = x*0.        good1 = where(wave LT 46.0, Ngood1 )        if Ngood1 GT 0 then y[good1] = poly( x[good1], c2)              good2 = where(wave GE 46.0, Ngood2 )        if Ngood2 GT 0 then begin                 y[good2] = poly( x[good2], c1)        if keyword_set(fano) then begin                epsilon = 911.2671/wave                for i=0,3 do begin       ;Loop over first four HeI resonances                        x = 2.0 * ((epsilon-esubi[i] )/ fano_gamma[i] )                         y = y + alog10( (x - q[i])^2/ (1 + x*x ) )                endfor        endif        endif  tauHeI[good] = HeIcol * 10^y endif; Total optical depth from HI, HeII and HeI return, tauH + tauHeII + tauHeI end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -