29
FAC & cFAC Evgeny Stambulchik Faculty of Physics, Weizmann Institute of Science, Rehovot 7610001, Israel Joint ICTP-IAEA School on Atomic Processes in Plasmas February 27 – March 3, 2017 Trieste, Italy

FAC & cFAC - IAEA, AMD Unit Page · 2017-03-10 · FAC vs. cFAC Short history FAC is a software package for the calculation of various atomic processes, written by Ming Feng Gu at

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: FAC & cFAC - IAEA, AMD Unit Page · 2017-03-10 · FAC vs. cFAC Short history FAC is a software package for the calculation of various atomic processes, written by Ming Feng Gu at

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

Page 2: FAC & cFAC - IAEA, AMD Unit Page · 2017-03-10 · FAC vs. cFAC Short history FAC is a software package for the calculation of various atomic processes, written by Ming Feng Gu at

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).

Page 3: FAC & cFAC - IAEA, AMD Unit Page · 2017-03-10 · FAC vs. cFAC Short history FAC is a software package for the calculation of various atomic processes, written by Ming Feng Gu at

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...

Page 4: FAC & cFAC - IAEA, AMD Unit Page · 2017-03-10 · FAC vs. cFAC Short history FAC is a software package for the calculation of various atomic processes, written by Ming Feng Gu at

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

Page 5: FAC & cFAC - IAEA, AMD Unit Page · 2017-03-10 · FAC vs. cFAC Short history FAC is a software package for the calculation of various atomic processes, written by Ming Feng Gu at

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)

Page 6: FAC & cFAC - IAEA, AMD Unit Page · 2017-03-10 · FAC vs. cFAC Short history FAC is a software package for the calculation of various atomic processes, written by Ming Feng Gu at

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.

Page 7: FAC & cFAC - IAEA, AMD Unit Page · 2017-03-10 · FAC vs. cFAC Short history FAC is a software package for the calculation of various atomic processes, written by Ming Feng Gu at

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!

Page 8: FAC & cFAC - IAEA, AMD Unit Page · 2017-03-10 · FAC vs. cFAC Short history FAC is a software package for the calculation of various atomic processes, written by Ming Feng Gu at

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.

Page 9: FAC & cFAC - IAEA, AMD Unit Page · 2017-03-10 · FAC vs. cFAC Short history FAC is a software package for the calculation of various atomic processes, written by Ming Feng Gu at

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()

%

Page 10: FAC & cFAC - IAEA, AMD Unit Page · 2017-03-10 · FAC vs. cFAC Short history FAC is a software package for the calculation of various atomic processes, written by Ming Feng Gu at

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&%

Page 11: FAC & cFAC - IAEA, AMD Unit Page · 2017-03-10 · FAC vs. cFAC Short history FAC is a software package for the calculation of various atomic processes, written by Ming Feng Gu at

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 ( )

Page 12: FAC & cFAC - IAEA, AMD Unit Page · 2017-03-10 · FAC vs. cFAC Short history FAC is a software package for the calculation of various atomic processes, written by Ming Feng Gu at

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〉.

Page 13: FAC & cFAC - IAEA, AMD Unit Page · 2017-03-10 · FAC vs. cFAC Short history FAC is a software package for the calculation of various atomic processes, written by Ming Feng Gu at

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).

Page 14: FAC & cFAC - IAEA, AMD Unit Page · 2017-03-10 · FAC vs. cFAC Short history FAC is a software package for the calculation of various atomic processes, written by Ming Feng Gu at

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).

Page 15: FAC & cFAC - IAEA, AMD Unit Page · 2017-03-10 · FAC vs. cFAC Short history FAC is a software package for the calculation of various atomic processes, written by Ming Feng Gu at

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.

Page 16: FAC & cFAC - IAEA, AMD Unit Page · 2017-03-10 · FAC vs. cFAC Short history FAC is a software package for the calculation of various atomic processes, written by Ming Feng Gu at

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.

Page 17: FAC & cFAC - IAEA, AMD Unit Page · 2017-03-10 · FAC vs. cFAC Short history FAC is a software package for the calculation of various atomic processes, written by Ming Feng Gu at

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

Page 18: FAC & cFAC - IAEA, AMD Unit Page · 2017-03-10 · FAC vs. cFAC Short history FAC is a software package for the calculation of various atomic processes, written by Ming Feng Gu at

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.

Page 19: FAC & cFAC - IAEA, AMD Unit Page · 2017-03-10 · FAC vs. cFAC Short history FAC is a software package for the calculation of various atomic processes, written by Ming Feng Gu at

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.

Page 20: FAC & cFAC - IAEA, AMD Unit Page · 2017-03-10 · FAC vs. cFAC Short history FAC is a software package for the calculation of various atomic processes, written by Ming Feng Gu at

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.

Page 21: FAC & cFAC - IAEA, AMD Unit Page · 2017-03-10 · FAC vs. cFAC Short history FAC is a software package for the calculation of various atomic processes, written by Ming Feng Gu at

FAC vs. cFACOutput format options

FAC

Calculations Binary ASCII*Table() PrintTable()

cFAC

Calculations BinarySQLite

ASCII

*Table()

StoreTable()

PrintTable()

Future

Calculations SQLite ASCII??? ???

Page 22: FAC & cFAC - IAEA, AMD Unit Page · 2017-03-10 · FAC vs. cFAC Short history FAC is a software package for the calculation of various atomic processes, written by Ming Feng Gu at

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’ , ’’ )

Page 23: FAC & cFAC - IAEA, AMD Unit Page · 2017-03-10 · FAC vs. cFAC Short history FAC is a software package for the calculation of various atomic processes, written by Ming Feng Gu at

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)

Page 24: FAC & cFAC - IAEA, AMD Unit Page · 2017-03-10 · FAC vs. cFAC Short history FAC is a software package for the calculation of various atomic processes, written by Ming Feng Gu at

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)

Page 25: FAC & cFAC - IAEA, AMD Unit Page · 2017-03-10 · FAC vs. cFAC Short history FAC is a software package for the calculation of various atomic processes, written by Ming Feng Gu at

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 ( )

Page 26: FAC & cFAC - IAEA, AMD Unit Page · 2017-03-10 · FAC vs. cFAC Short history FAC is a software package for the calculation of various atomic processes, written by Ming Feng Gu at

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)

Page 27: FAC & cFAC - IAEA, AMD Unit Page · 2017-03-10 · FAC vs. cFAC Short history FAC is a software package for the calculation of various atomic processes, written by Ming Feng Gu at

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.

Page 28: FAC & cFAC - IAEA, AMD Unit Page · 2017-03-10 · FAC vs. cFAC Short history FAC is a software package for the calculation of various atomic processes, written by Ming Feng Gu at

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.

Page 29: FAC & cFAC - IAEA, AMD Unit Page · 2017-03-10 · FAC vs. cFAC Short history FAC is a software package for the calculation of various atomic processes, written by Ming Feng Gu at

CFACDB browserExample: the “mini” Fe case database