;+ ; NAME: ; ThomsonElectron ; PURPOSE: ; Determines the Thomson scattering intensity from single coronal electron. ; If /S10 is set then return brightness of one electron per square degree ; of sky in S10 units ; CALLING SEQUENCE: FUNCTION ThomsonElectron, SinChi, P, rsun=RSun, au=au, udark=udark, apm=APM, s10=S10, tangonly=tangonly, tangmrad=tangmrad ; INPUTS: ; SinChi array; type: float ; sine of angle Sun-Electron-Observer ; OPTIONAL INPUT PARAMETERS: ; rsun=RSun array; type: float; default: 1 AU ; distance Sun-Electron ; udark=idark array; type: float; default: 0 ; limb darkening coefficient ; /au if set all distances are in AU (default: solar radii) ; /s10 if set then return brightness is in S10 ; ; apm=APM apparent magnitude of Sun (only needed if /S10 is set) ; ; /tangonly return tangential intensity, It ; /tangmrad return tangential - radial intensity, Itr ; OUTPUTS: ; Result array; type: float ; scattered intensity; units depend on setting of /S10 ; /S10 NOT set: 10^-26 times the flux from the solar disk incident ; on the electron (effectively the units are 10^-26 cm^2/sterad) ; /S10 set; 10^-26 S10 units ; P array: type: float ; polarization (-1<=P<=1) ; INCLUDE: @compile_opt.pro ; On error, return to caller ; CALLS: ; InitVar, IsType, ThomsonBase, ThomsonSolarFlux, ThomsonS10 ; PROCEDURE: ; Based on Chapter 6, Section B of Billings' "A guide to the solar corona" (p. 150) ; ; Sigma = Thomson cross section=7.96x10^-26 cm^2/sterad ; Omega = angular size of Sun from electron ; Chi = angle Sun-Electron-Observer ; I0 = intensity at disk center ; Rs = solar radius = 7x10^10 cm ; ; Billings specifies the scattered intensity in the form ; ; I=0.5*Pi*Sigma*I0*Func(Omega,Chi) (erg/s/sterad) ; ; The average intensity coming from the solar disk is ; ; i=(Pi*Rs^2)*I0*(1-U/3) (erg/s/sterad) ; ; The flux incident on the electron at distance Rsun is ; ; F=i/RSun^2=Pi*I0*(1-U/3)*(Rs/RSun)^2 (erg/s/cm^2) ; ; If /S10 NOT set then the ratio ; ; I/F = 0.5*Sigma*Func(Omega,Chi)/( (Rs/RSun)^2*(1-U/3) ) ; ; is returned here, except for a factor 10^-26 (from Sigma). ; > The flux received from the solar disk by an observer at distance RObs ; (rather than the electron) is i/RObs^2 = F*(RSun/RObs)^2 (erg/s/cm^2). ; The scattered flux from the electron incident on the observer is ; I/S^2 (erg/s/cm^2). The ratio (I/F)*(RObs/(RSun*S))^2 gives ; the flux received from the electron in units of the flux received by ; the observer from the solar disk. ; ; > The conversion to S10 is done by multiplying with the conversion ; factor returned by href=ThomsonS10= ; MODIFICATION HISTORY: ; JUL-1996, Paul Hick (UCSD) ;- InitVar, tangonly, /key InitVar, tangmrad, /key InitVar, S10, /key CASE IsType(RSun, /defined) OF 0: RSun_ = 1/!sun.RAu 1: RSun_ = RSun*ToSolarRadii(au=au) ENDCASE InitVar, udark, 0.0 I = ThomsonBase(RSun_, SinChi, udark, P, It, Itr) IF tangonly THEN I = It IF tangmrad THEN I = Itr cv = 0.5*!physics.thomsoncrosssection ; If S10=1 RSun_ is replaced by r0. This doesn't change the result, but ; is faster when RSun_ is an array. r0 = 1/!sun.RAu ; 1 AU in solar radii CASE S10 OF 0: cv = cv /ThomsonSolarFlux(RSun_,udark) 1: cv = cv*ThomsonS10(r0,APM)/ThomsonSolarFlux(r0 ,udark) ENDCASE RETURN, cv*I & END