Atomic Physics/FLYonPIC

Module author: Brian Marre

Introduction

FLYonPIC is an advanced atomic physics model integrated with the PIConGPU PIC-simulation.

In contrast to the standard ionization models, FLYonPIC tracks excited states explicitly, allowing for a more detailed modelling of atomic physics process.

FLYonPIC is based on averaged states and models the evolution of the atomic state distribution time and space resolved,

  • depending on the local plasma conditions

  • without assuming a temperature or equilibrium

  • self consistent with the PIC simulation.

This allows a more accurate prediction of ionization dynamics and the prediction of the atomic state distributions in non-thermal, transient plasmas, for example high-intensity short-pulse laser plasma interactions.

FLYonPIC is based on the [FlyCHK] atomic model and currently implements the following processes:

  • electronic collisional de-/excitation

  • spontaneous deexcitation

  • electronic ionization (with ionization potential depression)

  • autonomous ionization

  • pressure ionization

FLYonPIC is energy and charge conserving and in the thermal average momentum conserving and solves the atomic rate equation time dependent and explicit with adaptive sub-stepping of the PIC-cycle.

In addition FLYonPIC will be extended in the near future to include:

  • energy field ionization

  • three body electronic recombination

Momentum conservation and photonic processes are also planned in the future.

Model Overview

FLYonPIC is based on tracking the atomic state of ions as a particle attribute of ion macro particles, with each “macro-ion” representing a phase space sample of exactly one atomic state.

Note

FLYonPIC tracks only FlyCHK super configurations, i.e., FLYonPIC distinguishes only between states differing in the number of electron contained in atomic shells.

Example: (1s^2)(2s^1 2p^2) and (1s^2)(2p^3) would be considered the same state (2,3,0, …) by FLYonPIC.

The atomic state dynamics are modelled as some average rate of change to another atomic state, dependent current state, transition and local plasma conditions.

Over the set of all transitions, atomic state dynamics may be represented as a matrix of rates describing the change of the entire atomic state population with time.

This rate equation is solved in FLYonPIC by a Monte Carlo solver for every macro-ion individually and time dependent.

For this FLYonPIC,

  • bins all macro-electrons in a super cell by energy

  • calculates the energy dependent cross-section using approximation formulas for each transition

  • calculates an energy dependent electron collision frequency depending on the local electron histogram.

Note

A super cell is a patch of cells, usually 8x8x4, with the size being user configurable

The resulting energy dependent rates are then used by a monte-carlo solver to update the atomic states of all macro-ions independently in this super cell according to the rate equation.

This time dependent and explicit update is done at least once ever PIC-time step with adaptive sub stepping to assure numerical stability despite large changes in local rates.

Changes of the PIC-simulation state by the atomic physics/FLYonPIC step are propagated back to the PIC-simulation through ionization of macro-ions and macro-electron energy change.

Which transitions and states are included in this update is user configurable, with the user providing all transition coefficients and state energies via an input file.

Getting Started With FLYonPIC

To use FLYonPIC in a simulation setup, you need to provide a set of atomic input data files, see Input Data For FLYonPIC, and mark at least one species as an atomic physics ion species and one species as an atomic physics electron species.

See the compile time test of atomic physics for examples using atomic physics.

Warning

These setups are tests of FLYonPIC components and therefore activate a lot of debug options negatively impacting runtime.

Do not base production simulations directly on them!

To disable all atomic physics debug options simple remove the atomicPhysics_Debug.param from the setup.

Input Data for FLYonPIC

FLYonPIC requires user provided input data describing the properties of charge- and atomic-states as well the cross section coefficients of all transitions to be modelled for all atomic Physics ions species.

These data files may be generated from existing ScFLY input files using flylite, simply

  • add the ScFLY input file to the data folder as described in the flylite install description.

  • set the Z of the wanted element in ExtractionAtomicData.py

  • execute the python script ExtractionAtomicData.py

python ExtractionAtomicData.py

Alternatively users may create their own atomic data input files following the input file description below.

Note

Atomic states must be specified by configNumber in all input files, see AtomicConfigNumberConversion for a conversion between occupation number level vector and atomic config number.

Charge State Input Data:

one line for every charge stat, format of a line:

(charge state : uint) <space> (ionization Energy[eV] : float) <space> (Z_effective : uint)\n

Requirements:

  • no charge state may be duplicated

  • must be ordered ascending in charge state

  • no charge state may be missing in the range 0 to Z-1

  • completely ionized state must be left out

  • no charge state larger than the atomic number of the species may be included

Atomic State Input Data:

one line per atomic state, format of a line in the input file:

(configNumber : uint) <space> (exciation energy[eV] : float)\n

Requirements:

  • no configNumber may be duplicated

  • states must be ordered primarily ascending by charge state, secondarily ascending by configNumber

  • chargeState derived from configNumber must be <= atomic Number of species

Pressure Ionization State Input Data:

One line per atomic state, format of a line in the input file:

(state configNumber : uint) <space> (pressure ioniaztion state configNumber : uint)\n

Note

To disable pressure ionization for a state set it’s pressure ionization states configNumber equal to its own configNumber

Note

The pressure ionization state input is optional, set fileName in species definition to "" to not specify it If no pressure ionization state input file is provided, FLYonPIC will try to find a good pressure ionization state for each atomic state in the atomic state input.

Requirements:

  • must be ordered primarily ascending by atomic state charge state and secondary by atomic state configNumber, same order as in the atomic state input

  • all atomic states in the input must have exactly one pressure ionization state

  • all pressure ionization states must be defined as an atomic state in the atomic state input

Bound-Bound Transition Input Data:

Each bound-bound transition is associated with a spontaneous deexcitation, electronic de- and electronic excitation.

One line per transition, format of a line in the input file:

(lower state configNumber: uint) <space> (upper state configNumber : uint) <space> (collisional oscillator strength : float) <space> (absorption oscillator strength : float) <space> (cxin1 : float) <space> (cxin2 : float) <space> (cxin3 : float) <space> (cxin4 : float) <space> (cxin5 : float)

Note

cxin* … gaunt coefficients

Note

For bound-bound transitions the atomic state with the lower excitation energy is considered the lower state of an transition.

Requirements:

  • lower- and upper state’s charge states must be >= 0 and <= Z

  • lower- and upper state’s charge state must be the same

  • transitions must be sorted primarily by lower state charge state, secondarily by lower state configNumber, tertiary by upper state charge state, quartary by upper state configNumber.

Bound-Free Transition Input Data:

Each bound-free transition is associated with a electronic ionization, and in future one field ionization and one recombination transition.

One line per transition, format of a line in the input file:

(lower state configNumber: uint) <space> (upper state configNumber : uint) <space> (collisional oscillator strength : float) <space> (absorption oscillator strength : float) <space> (cxin1 : float) <space> (cxin2 : float) <space> (cxin3 : float) <space> (cxin4 : float) <space> (cxin5 : float)  <space> (cxin6 : float) <space> (cxin7 : float) <space> (cxin8 : float)

Note

cxin* … gaunt coefficient, currently unused

Note

For bound-free transitions the atomic state with the lower charge state is considered the lower state of an transition.

Requirements:

  • lower- and upper state’s charge states must be >= 0 and <= Z

  • lower state’s charge state must be smaller than the upper state’s charge state

  • transitions must be sorted primarily by lower state charge state, secondarily by lower state configNumber, tertiary by upper state charge state, quartary by upper state configNumber.

Autonomous Transition Input Data:

Each autonomous transition is associated with an autonomous ionization.

One line per transition, format of a line in the input file:

(lower state configNumber: uint) <space> (upper state configNumber : uint) <space> (rate[1/s] : float)

Note

For autonomous transition the atomic state with the overall lower energy is considered the lower state of an transition.

Requirements:

  • lower- and upper state’s charge states must be >= 0 and <= Z

  • lower state’s charge state must be larger than the upper state’s charge state

  • transitions must be sorted primarily by lower state charge state, secondarily by lower state configNumber, tertiary by upper state charge state, quartary by upper state configNumber.

FLYonPIC step

overview of the FLYonPIC step

../_images/AtomicPhyiscsStep.svg
[FlyCHK]

H.-K.Chung, M.H. Chen, R.W. Lee “Extension of atomic configuration sets of the Non-LTE model in the application to the Ka diagnostics of hot dense matter” High Energy Density Physics 3 (2007) 57-64 https://doi.org/10.1016/j.hedp.2007.02.001