Upload
others
View
1
Download
0
Embed Size (px)
Citation preview
FAC & cFAC
Evgeny Stambulchik
Faculty of Physics, Weizmann Institute of Science, Rehovot 7610001, Israel
Joint ICTP-IAEA School on Atomic Processes in PlasmasFebruary 27 – March 3, 2017
Trieste, Italy
Main features
Calculates atomic structure, radiative transition rates, electronimpact excitation and ionization, photo ionization and radiativerecombination, autoionization and dielectronic capture.The atomic structure calculations are based on the relativisticconfiguration interaction (CI) with independent particle basiswavefunctions.The basis wavefunctions are derived from a local centralpotential, which is self-consistently determined to representelectronic screening of the nuclear potential.Relativistic effects are fully taken into account using the DiracCoulomb Hamiltonian.Higher order QED effects are included: Breit interaction andself-energy and vacuum polarization effects.Continuum processes are treated in the distorted-wave (DW)approximation.Fast and reasonably accurate (∼ 10−4 in level energies).
FAC vs. cFACShort history
FACis a software package for the calculation of various atomicprocesses, written by Ming Feng Gu at the Space ScienceLaboratory of Berkeley.
Latest release: v1.1.4 (9 Nov 2016).
cFACwas started around 2010 (based on FAC-1.1.1a, released in 2006),initially focusing on providing large volumes of data as required,e.g., for C-R plasma modeling, and eliminating reliance uponthird-party Fortran numerical libraries with their C equivalents(hence the change in the package name).
Latest release: v1.6.1 (30 Nov 2016).
aNot uniquely defined...
cFAC source lines of code (SLoC)
One of my most productive days was throwing away 1,000 lines of code.
Ken Thompson
Jun-2010Dec-2010
Jun-2011Dec-2011
Jun-2012Dec-2012
Jun-2013Dec-2013
Jun-2014Dec-2014
Jun-2015Dec-2015
0
10000
20000
30000
40000
50000
60000
70000
CF77
cFAC source lines of code
cFAC SLoC
Jun-2010Dec-2010
Jun-2011Dec-2011
Jun-2012Dec-2012
Jun-2013Dec-2013
Jun-2014Dec-2014
Jun-2015Dec-2015
0
20
40
60
80
100
%
CF77
cFAC source lines of code (relative)
FAC vs. cFACAvailability
Home page for both FAC and cFAC
https://www-amdis.iaea.org/FAC/
Github repository for FAC
https://github.com/fnevgeny/facMaintainers: M. F. Gu and E. Stambulchik
Github repository for cFAC
https://github.com/fnevgeny/cfacMaintainer: E. Stambulchik
https://github.com/fnevgeny/cfac/issuesto submit feature requests or report bugs.
FAC vs. cFACLicensing
FACRecently (summer 2015), Ming Feng Gu kindly agreed to releasethe FAC sources under the GPL (version 3 or higher) license:http://www.gnu.org/licenses/gpl-3.0.en.html.However, the GPL’ed sources (authored by MFG) are only part ofthe whole FAC package. Use at your own discretion!
cFACSome bits of the FAC sources, which are still used in cFAC, werepublished in Computer Physics Communications, and as such, arelicensed for non-profit or academic use only, seehttp://cpc.cs.qub.ac.uk/licence/licence.html.
To compile in these optional CPC-licensed modules, pass the--with-cpc-module configure flag and explicitly agree to theCPC licensing terms. As a result, the “sfac” executable will not beredistributable!
FAC vs. cFACCompatibility
FAC components
SFAC and PFAC—a thin Python wrapper around SFAC + CRM andPOL modules.
cFAC components
SFAC, PFAC, CFACDB library, CFACDBU utility, CFACDBbrowser/explorer.
SFAC compatibility
In general, SFAC scripts that work with FAC should workunchanged with cFAC. However, MBPT and R-matrix moduleswere removed.
SFAC interface
SFAC can be used both in interactive and batch mode. Wheninvoked without arguments, it runs in the interactive mode:
% sfac
>>> Info()==========================================cFAC-1.6.1 http://github.com/fnevgeny/cfac
Based on the Flexible Atomic Code (FAC)by Ming Feng Gu
Maintained by Evgeny Stambulchik==========================================>>> Print(’Hello!’)Hello!>>> Exit()
%
Examples and manual
Let’s copy a few demos to your home directory:
% cp -a /home/nfs3/smr3105/estambul/cfac-demo ˜/% cd ˜/cfac-demo%
It is a good opportunity to load the official documentation:
%acroread /home/nfs3/smr3105/share/doc/cfac/manual.pdf&%
Electronic configurations
% gedit Fe_XVII.sf &
# Def ine the speciesSetAtom (’Fe’ )# ( as you see , l i n e s beginning wi th # are comments )
# Ne− l i k e ion :# Ground s ta teConfig (’n2’ , ’1s2 2*8’ )# . . . and a group of s ing l y −exc i ted to n=3 s ta tesConfig (’n3’ , ’1s2 2*7 3*1’ )
# I t i s a good idea to check the c o n f i g u r a t i o n s e x p l i c i t l y :ListConfig ( )
Electronic configurations (cont.)
Let’s run sfac:
% sfac Fe_XVII.sf
n2 0 1s+2 2s+2 2p-2 2p+4n3 1 1s+2 2s+2 2p-2 2p+3 3d+1n3 2 1s+2 2s+2 2p-1 2p+4 3d+1n3 3 1s+2 2s+1 2p-2 2p+4 3d+1n3 4 1s+2 2s+2 2p-2 2p+3 3d-1......n3 15 1s+2 2s+1 2p-2 2p+4 3s+1
%
“n`±” means one-electron |n`j = ` ± 1/2〉.
Structure I
H =N∑
i=1
HD(i) +N∑i<j
1rij,
HD(i) is the single-electron Dirac Hamiltonian.By diagonalizing the total Hamiltonian, one obtains
ψ =∑ν
bνΦν,
with the configuration state functions (CSF’s) Φν being the Slaterconstructs of N one-electron Dirac spinors ϕnκm
ϕnκm =1r
(Pnκ(r)χκm(θ, φ, σ)
iQnκ(r)χ−κm(θ, φ, σ)
)κ is the relativistic angular quantum number:
κ = (l − j)(2j + 1).
Structure II
In the Dirac-Fock-Slater method, Pnκ and Qnκ satisfy
(ddr
+κ
r
)Pnκ = α
(εnκ − V +
2α2
)Qnκ(
ddr−κ
r
)Qnκ = α (−εnκ + V) Pnκ,
for an effective central field V(r) = VN(r) + Vee(r).
Radiative transitions
For a given multipole operator OLM :
Sfi =∣∣∣< ψf ||OL
M ||ψi >∣∣∣2 ≡ |Mfi |
2
gffi = (2L + 1)−1ω(αω)2L−2|Mfi |2
gAfi = 2α3ω2gffi
Note: Mfi differ from reduced matrix elements as defined, e.g., inthe Cowan’s book, by a factor of
√2.
Electron impact excitation (EIE) I
Different treatments of the continuum wavefunctions:
The plane-wave (PW) Born approximation uses anunperturbed plane wave for free orbitals.
The Coulomb-wave (CW) Born approximation takes intoaccount the distortion of the continuum due to a pureCoulomb potential.
The most accurate of this class is the distorted-wave (DW)approximation, in which the free orbitals are calculated in amore realistic potential taking into account the electronicstructure of the target ion.
By default, FAC uses DW for calculating EIE cross sections.
Note: DW is not accurate for neutral atoms; Z & 4 should be fine.
Electron impact excitation (EIE) II
The EIE cross subsection σ01 from the initial state ψ0 to the finalstate ψ1 is
σ01 =π
k 20 g0
Ω01,
g0 is the statistical weight of the initial state, and k0 is the kineticmomentum of the incident electron,
k 20 = 2ε0
(1 +
α2
2ε0
),
and the collision strength is
Ω01 = 2∑κ0κ1
∑JT
(2JT + 1)| < ψ0κ0, JT MT |∑i<j
1rij|ψ1κ1, JT MT > |2
Electron impact ionization (EII) I
σ(ε0, ε) =1
k 20 g0
Ω01
(note a different from EIE numerical factor - π is missing).
DW calculations of EII processes are rather slow; by default,Binary-Encounter-Dipole (BED) approach is used.
Photoionization and Radiative Recombination
σPI = 2παdfdE
σRR =α2
2gi
gf
ω2
ε(1 + 0.5α2ε)σPI,
The differential oscillator strength:
dfdE
=ω
gi(2L + 1)−1(αω)2L−2S,
where L is the rank of the multipole operator inducing thetransition, and the generalized line strength is
S =∑κJT
∣∣∣< ψf , κ; JT ||OL ||ψi >∣∣∣2 ,
and OL is the multipole operator inducing the transition.
Autoionization and Dielectronic Recombination
In the first order perturbation theory, the AI rate is
Aa = 2∑κ
∣∣∣∣∣∣∣∣< ψf , κ; JT MT |∑i<j
1rij|ψi >
∣∣∣∣∣∣∣∣2
,
The inverse process is the dielectronic capture (DC). The DCstrength is
SDC =gi
2gf
π2
EifAa ,
Eif is the resonance energy.An AI state formed by DC may either autoionize, or radiativelydecay. In the later case, one talks about dielectronic recombination(DR).Note: FAC does not calculate the DR rate coefficients; one needsto loop over all the possible channels.
FAC vs. cFACOutput format options
FAC
Calculations Binary ASCII*Table() PrintTable()
cFAC
Calculations BinarySQLite
ASCII
*Table()
StoreTable()
PrintTable()
Future
Calculations SQLite ASCII??? ???
cFACAn example of SFAC config file
# An u l t r a −simple demoSetAtom (’Fe’ )
# He− l i k eConfig (’2.gc’ , ’1s2’ )Config (’2.ex’ , ’1s1 2*’ )Config (’2.ai’ , ’2*2’ )
# H− l i k eConfig (’1.gc’ , ’1s’ )Config (’1.ex’ , ’2*1’ )
# Bare nucleusConfig (’0.gc’ , ’’ )
cFACAn example of SFAC config file (cont.)
# S t a r t from the lowest charge s ta te o f i n t e r e s t and go up
# Keep user updatedPr int (’nele = 2 (He)’ )
ConfigEnergy ( 0 )OptimizeRadial ( [ ’2.gc’ ] )ConfigEnergy ( 1 )
# Inc lude c o n f i g u r a t i o n i n t e r a c t i o n s between a l l# 2−e lec t r on s ta tesStructure (’le.bin’ , 2)
# A l l r a d i a t i v e t r a n s i t i o n s o f t h i s (2− e lec t r on ) charge s ta te# Ca lcu la te E1 , M1, and E2TRTable (’tr.bin’ , 2 , −1)TRTable (’tr.bin’ , 2 , +1)TRTable (’tr.bin’ , 2 , −2)
cFACAn example of SFAC config file (cont.)
# Again , a l l c o l l i s i o n a l t r a n s i t i o n s o f He− l i k eCETable (’ce.bin’ , 2)
# Same f o r HPr int (’nele = 1 (H)’ )
ConfigEnergy ( 0 )OptimizeRadial ( [ ’1.gc’ ] )ConfigEnergy ( 1 )
Structure (’le.bin’ , 1)TRTable (’tr.bin’ , 1 , −1)CETable (’ce.bin’ , 1)# Now we have also i o n i z a t i o n processes ; He− l i k e wavefunct ions# are a l ready ca l cu la ted wi th the opt imized ( f o r He ! ) p o t e n t i a lAITable (’ai.bin’ , 2)CITable (’ci.bin’ , 2)RRTable (’rr.bin’ , 2)
cFACAn example of SFAC config file (cont.)
Pr int (’nele = 0’ )Structure (’le.bin’ , 0)# For the bare nucleus , on ly CI and RR ( from H) e x i s tCITable (’ci.bin’ , 1)RRTable (’rr.bin’ , 1)
# I n i t i a l i z e the SQLite database store , eras ing i f e x i s t sStore In i t (’Fe.db’ , 1)
# Store the b inary data i n t o the DBStoreTable (’le.bin’ )StoreTable (’tr.bin’ )StoreTable (’ai.bin’ )StoreTable (’ci.bin’ )StoreTable (’rr.bin’ )StoreTable (’ce.bin’ )
# Close the DBStoreClose ( )
cFACAn example of SFAC config file (cont.)
# A l t e r n a t i v e l y ( or i n a d d i t i o n ) , you may want to use# the o ld FAC ASCII output format :
MemENTable (’le.bin’ )
PrintTable (’le.bin’ , ’le.asc’ , 1)PrintTable (’tr.bin’ , ’tr.asc’ , 1)PrintTable (’ai.bin’ , ’ai.asc’ , 1)PrintTable (’rr.bin’ , ’rr.asc’ , 1)PrintTable (’ci.bin’ , ’ci.asc’ , 1)PrintTable (’ce.bin’ , ’ce.asc’ , 1)
CFACDB libraryPurpose
CFACDB is a set of application programming interface (API)calls for accessing cFAC-generated databases in the SQLiteformat from C or Fortran codes.
In addition, collisional rates in a Maxwellian plasma can beobtained on-the-fly, using inter- and extrapolationbetween/beyond calculated data points.
The data are returned via user-provided “sink” callbackroutines, with negligible CPU and memory overheads.
CFACDB browserFor manual inspection of up to moderate-size databases
A Graphical User Interface (GUI) tool. It is built as a Firefoxextension, making it usable in any modern computer environment.
CFACDB browserExample: the “mini” Fe case database