PIC Extensions¶
fieldBackground.param¶
Load external background fields.
-
namespace
picongpu
-
class picongpu
FieldBackgroundB
Public Functions
-
picongpu::FieldBackgroundB
PMACC_ALIGN
(m_unitField, const float3_64)
-
HDINLINE picongpu::FieldBackgroundB
FieldBackgroundB
(const float3_64 unitField)
-
HDINLINE float3_X picongpu::FieldBackgroundB::operator()(const DataSpace < simDim > & cellIdx, const uint32_t currentStep) const
Specify your background field B(r,t) here.
- Parameters
cellIdx
: The total cell id counted from the start at t=0currentStep
: The current time step
Public Static Attributes
-
constexpr bool picongpu::FieldBackgroundB
InfluenceParticlePusher
= false
-
picongpu::FieldBackgroundB
-
class picongpu
FieldBackgroundE
Public Functions
-
picongpu::FieldBackgroundE
PMACC_ALIGN
(m_unitField, const float3_64)
-
HDINLINE picongpu::FieldBackgroundE
FieldBackgroundE
(const float3_64 unitField)
-
HDINLINE float3_X picongpu::FieldBackgroundE::operator()(const DataSpace < simDim > & cellIdx, const uint32_t currentStep) const
Specify your background field E(r,t) here.
- Parameters
cellIdx
: The total cell id counted from the start at t = 0currentStep
: The current time step
Public Static Attributes
-
constexpr bool picongpu::FieldBackgroundE
InfluenceParticlePusher
= false
-
picongpu::FieldBackgroundE
-
class picongpu
FieldBackgroundJ
Public Functions
-
picongpu::FieldBackgroundJ
PMACC_ALIGN
(m_unitField, const float3_64)
-
HDINLINE picongpu::FieldBackgroundJ
FieldBackgroundJ
(const float3_64 unitField)
-
HDINLINE float3_X picongpu::FieldBackgroundJ::operator()(const DataSpace < simDim > & cellIdx, const uint32_t currentStep) const
Specify your background field J(r,t) here.
- Parameters
cellIdx
: The total cell id counted from the start at t=0currentStep
: The current time step
Public Static Attributes
-
constexpr bool picongpu::FieldBackgroundJ
activated
= false
-
picongpu::FieldBackgroundJ
-
class picongpu
bremsstrahlung.param¶
-
namespace
picongpu
-
namespace picongpu
particles
-
namespace picongpu::particles
bremsstrahlung
-
namespace picongpu::particles::bremsstrahlung
electron
params related to the energy loss and deflection of the incident electron
Variables
-
constexpr float_64 picongpu::particles::bremsstrahlung::electron
MIN_ENERGY_MeV
= 0.5 Minimal kinetic electron energy in MeV for the lookup table.
For electrons below this value Bremsstrahlung is not taken into account.
-
constexpr float_64 picongpu::particles::bremsstrahlung::electron
MAX_ENERGY_MeV
= 200.0 Maximal kinetic electron energy in MeV for the lookup table.
Electrons above this value cause a out-of-bounds access at the lookup table. Bounds checking is enabled for “CRITICAL” log level.
-
constexpr float_64 picongpu::particles::bremsstrahlung::electron
MIN_THETA
= 0.01 Minimal polar deflection angle due to screening.
See Jackson 13.5 for a rule of thumb to this value.
-
constexpr uint32_t picongpu::particles::bremsstrahlung::electron
NUM_SAMPLES_KAPPA
= 32 number of lookup table divisions for the kappa axis.
Kappa is the energy loss normalized to the initial kinetic energy. The axis is scaled linearly.
-
constexpr uint32_t picongpu::particles::bremsstrahlung::electron
NUM_SAMPLES_EKIN
= 32 number of lookup table divisions for the initial kinetic energy axis.
The axis is scaled logarithmically.
-
constexpr float_64 picongpu::particles::bremsstrahlung::electron
MIN_KAPPA
= 1.0e-10 Kappa is the energy loss normalized to the initial kinetic energy.
This minimal value is needed by the numerics to avoid a division by zero.
-
constexpr float_64 picongpu::particles::bremsstrahlung::electron
-
namespace picongpu::particles::bremsstrahlung
photon
params related to the creation and the emission angle of the photon
Variables
-
constexpr float_64 picongpu::particles::bremsstrahlung::photon
SOFT_PHOTONS_CUTOFF_keV
= 5000.0 Low-energy threshold in keV of the incident electron for the creation of photons.
Below this value photon emission is neglected.
-
constexpr uint32_t picongpu::particles::bremsstrahlung::photon
NUM_SAMPLES_DELTA
= 256 number of lookup table divisions for the delta axis.
Delta is the angular emission probability (normalized to one) integrated from zero to theta, where theta is the angle between the photon momentum and the final electron momentum.
The axis is scaled linearly.
-
constexpr uint32_t picongpu::particles::bremsstrahlung::photon
NUM_SAMPLES_GAMMA
= 64 number of lookup table divisions for the gamma axis.
Gamma is the relativistic factor of the incident electron.
The axis is scaled logarithmically.
-
constexpr float_64 picongpu::particles::bremsstrahlung::photon
MAX_DELTA
= 0.95 Maximal value of delta for the lookup table.
Delta is the angular emission probability (normalized to one) integrated from zero to theta, where theta is the angle between the photon momentum and the final electron momentum.
A value close to one is reasonable. Though exactly one was actually correct, because it would map to theta = pi (maximum polar angle), the sampling then would be bad in the ultrarelativistic case. In this regime the emission primarily takes place at small thetas. So a maximum delta close to one maps to a reasonable maximum theta.
-
constexpr float_64 picongpu::particles::bremsstrahlung::photon
MIN_GAMMA
= 1.0 minimal gamma for the lookup table.
-
constexpr float_64 picongpu::particles::bremsstrahlung::photon
MAX_GAMMA
= 250 maximal gamma for the lookup table.
Bounds checking is enabled for “CRITICAL” log level.
-
constexpr float_64 picongpu::particles::bremsstrahlung::photon
SINGLE_EMISSION_PROB_LIMIT
= 0.4 if the emission probability per timestep is higher than this value and the log level is set to “CRITICAL” a warning will be raised.
-
constexpr float_64 picongpu::particles::bremsstrahlung::photon
WEIGHTING_RATIO
= 10
-
constexpr float_64 picongpu::particles::bremsstrahlung::photon
-
namespace picongpu::particles::bremsstrahlung
-
namespace picongpu::particles
-
namespace picongpu
synchrotronPhotons.param¶
Defines
-
ENABLE_SYNCHROTRON_PHOTONS
enable synchrotron photon emission
-
namespace
picongpu
-
namespace picongpu
particles
-
namespace picongpu::particles
synchrotronPhotons
Variables
-
constexpr bool picongpu::particles::synchrotronPhotons
enableQEDTerm
= false enable (disable) QED (classical) photon emission spectrum
-
constexpr float_64 picongpu::particles::synchrotronPhotons
SYNC_FUNCS_CUTOFF
= 5.0 Above this value (to the power of three, see comments on mapping) the synchrotron functions are nearly zero.
-
constexpr float_64 picongpu::particles::synchrotronPhotons
SYNC_FUNCS_BESSEL_INTEGRAL_STEPWIDTH
= 1.0e-3 stepwidth for the numerical integration of the bessel function for the first synchrotron function
-
constexpr uint32_t picongpu::particles::synchrotronPhotons
SYNC_FUNCS_NUM_SAMPLES
= 8192 Number of sampling points of the lookup table.
-
constexpr float_64 picongpu::particles::synchrotronPhotons
SOFT_PHOTONS_CUTOFF_RATIO
= 1.0 Photons of oscillation periods greater than a timestep are not created since the grid already accounts for them.
This cutoff ratio is defined as: photon-oscillation-period / timestep
-
constexpr float_64 picongpu::particles::synchrotronPhotons
SINGLE_EMISSION_PROB_LIMIT
= 0.4 if the emission probability per timestep is higher than this value and the log level is set to “CRITICAL” a warning will be raised.
-
constexpr bool picongpu::particles::synchrotronPhotons
-
namespace picongpu::particles
-
namespace picongpu
ionizer.param¶
This file contains the proton and neutron numbers of commonly used elements of the periodic table.
The elements here should have a matching list of ionization energies in
Furthermore there are parameters for specific ionization models to be found here. That includes lists of screened nuclear charges as seen by bound electrons for the aforementioned elements as well as fitting parameters of the Thomas-Fermi ionization model.
- See
- ionizationEnergies.param. Moreover this file contains a description of how to configure an ionization model for a species. Currently each species can only be assigned exactly one ionization model.
-
namespace
picongpu
-
namespace picongpu
ionization
Ionization Model Configuration.
- None : no particle is ionized
- BSI : simple barrier suppression ionization
- BSIEffectiveZ : BSI taking electron shielding into account via an effective atomic number Z_eff
- ADKLinPol : Ammosov-Delone-Krainov tunneling ionization (H-like) -> linearly polarized lasers
- ADKCircPol : Ammosov-Delone-Krainov tunneling ionization (H-like) -> circularly polarized lasers
- Keldysh : Keldysh ionization model
- ThomasFermi : statistical impact ionization based on Thomas-Fermi atomic model Attention: requires 2 FieldTmp slots
Research and development:
- See
- memory.param
- BSIStarkShifted : BSI for hydrogen-like atoms and ions considering the Stark upshift of ionization potentials
Usage: Add flags to the list of particle flags that has the following structure
ionizers< MakeSeq_t< particles::ionization::IonizationModel< Species2BCreated > > >, atomicNumbers< ionization::atomicNumbers::Element_t >, effectiveNuclearCharge< ionization::effectiveNuclearCharge::Element_t >, ionizationEnergies< ionization::energies::AU::Element_t >
-
namespace picongpu::ionization
atomicNumbers
Specify (chemical) element
Proton and neutron numbers define the chemical element that the ion species is based on. This value can be non-integer for physical models taking charge shielding effects into account.
It is wrapped into a struct because of C++ restricting floats from being template arguments.
Do not forget to set the correct mass and charge via
massRatio<>
andchargeRatio<>
!-
struct picongpu::ionization::atomicNumbers
Aluminium_t
Al-27 ~100% NA.
Public Static Attributes
-
constexpr float_X picongpu::ionization::atomicNumbers::Aluminium_t
numberOfProtons
= 13.0
-
constexpr float_X picongpu::ionization::atomicNumbers::Aluminium_t
numberOfNeutrons
= 14.0
-
constexpr float_X picongpu::ionization::atomicNumbers::Aluminium_t
-
struct picongpu::ionization::atomicNumbers
Carbon_t
C-12 98.9% NA.
Public Static Attributes
-
constexpr float_X picongpu::ionization::atomicNumbers::Carbon_t
numberOfProtons
= 6.0
-
constexpr float_X picongpu::ionization::atomicNumbers::Carbon_t
numberOfNeutrons
= 6.0
-
constexpr float_X picongpu::ionization::atomicNumbers::Carbon_t
-
struct picongpu::ionization::atomicNumbers
Copper_t
Cu-63 69.15% NA.
Public Static Attributes
-
constexpr float_X picongpu::ionization::atomicNumbers::Copper_t
numberOfProtons
= 29.0
-
constexpr float_X picongpu::ionization::atomicNumbers::Copper_t
numberOfNeutrons
= 34.0
-
constexpr float_X picongpu::ionization::atomicNumbers::Copper_t
-
struct picongpu::ionization::atomicNumbers
Deuterium_t
H-2 0.02% NA.
Public Static Attributes
-
constexpr float_X picongpu::ionization::atomicNumbers::Deuterium_t
numberOfProtons
= 1.0
-
constexpr float_X picongpu::ionization::atomicNumbers::Deuterium_t
numberOfNeutrons
= 1.0
-
constexpr float_X picongpu::ionization::atomicNumbers::Deuterium_t
-
struct picongpu::ionization::atomicNumbers
Gold_t
Au-197 ~100% NA.
Public Static Attributes
-
constexpr float_X picongpu::ionization::atomicNumbers::Gold_t
numberOfProtons
= 79.0
-
constexpr float_X picongpu::ionization::atomicNumbers::Gold_t
numberOfNeutrons
= 118.0
-
constexpr float_X picongpu::ionization::atomicNumbers::Gold_t
-
struct picongpu::ionization::atomicNumbers
Helium_t
He-4 ~100% NA.
Public Static Attributes
-
constexpr float_X picongpu::ionization::atomicNumbers::Helium_t
numberOfProtons
= 2.0
-
constexpr float_X picongpu::ionization::atomicNumbers::Helium_t
numberOfNeutrons
= 2.0
-
constexpr float_X picongpu::ionization::atomicNumbers::Helium_t
-
struct picongpu::ionization::atomicNumbers
Hydrogen_t
H-1 99.98% NA.
Public Static Attributes
-
constexpr float_X picongpu::ionization::atomicNumbers::Hydrogen_t
numberOfProtons
= 1.0
-
constexpr float_X picongpu::ionization::atomicNumbers::Hydrogen_t
numberOfNeutrons
= 0.0
-
constexpr float_X picongpu::ionization::atomicNumbers::Hydrogen_t
-
struct picongpu::ionization::atomicNumbers
Nitrogen_t
N-14 99.6% NA.
Public Static Attributes
-
constexpr float_X picongpu::ionization::atomicNumbers::Nitrogen_t
numberOfProtons
= 7.0
-
constexpr float_X picongpu::ionization::atomicNumbers::Nitrogen_t
numberOfNeutrons
= 7.0
-
constexpr float_X picongpu::ionization::atomicNumbers::Nitrogen_t
-
struct picongpu::ionization::atomicNumbers
Oxygen_t
O-16 99.76% NA.
Public Static Attributes
-
constexpr float_X picongpu::ionization::atomicNumbers::Oxygen_t
numberOfProtons
= 8.0
-
constexpr float_X picongpu::ionization::atomicNumbers::Oxygen_t
numberOfNeutrons
= 8.0
-
constexpr float_X picongpu::ionization::atomicNumbers::Oxygen_t
-
struct picongpu::ionization::atomicNumbers
-
namespace picongpu::ionization
effectiveNuclearCharge
Effective Nuclear Charge.
Due to the shielding effect of inner electron shells in an atom / ion which makes the core charge seem smaller to valence electrons new, effective, atomic core charge numbers can be defined to make the crude barrier suppression ionization (BSI) model less inaccurate.
References: Clementi, E.; Raimondi, D. L. (1963) “Atomic Screening Constants from SCF Functions” J. Chem. Phys. 38 (11): 2686–2689. doi:10.1063/1.1733573 Clementi, E.; Raimondi, D. L.; Reinhardt, W. P. (1967) “Atomic Screening Constants from SCF Functions. II. Atoms with 37 to 86 Electrons” Journal of Chemical Physics. 47: 1300–1307. doi:10.1063/1.1712084
- See
- https://en.wikipedia.org/wiki/Effective_nuclear_charge or refer directly to the calculations by Slater or Clementi and Raimondi
IMPORTANT NOTE: You have to insert the values in REVERSE order since the lowest shell corresponds to the last ionization process!
Functions
-
picongpu::ionization::effectiveNuclearCharge::PMACC_CONST_VECTOR(float_X, 1, Hydrogen, 1.)
-
picongpu::ionization::effectiveNuclearCharge::PMACC_CONST_VECTOR(float_X, 1, Deuterium, 1.)
-
picongpu::ionization::effectiveNuclearCharge::PMACC_CONST_VECTOR(float_X, 2, Helium, 1. 688, 1. 688)
-
picongpu::ionization::effectiveNuclearCharge::PMACC_CONST_VECTOR(float_X, 6, Carbon, 3. 136, 3. 136, 3. 217, 3. 217, 5. 673, 5. 673)
-
picongpu::ionization::effectiveNuclearCharge::PMACC_CONST_VECTOR(float_X, 7, Nitrogen, 3. 834, 3. 834, 3. 834, 3. 874, 3. 874, 6. 665, 6. 665)
-
picongpu::ionization::effectiveNuclearCharge::PMACC_CONST_VECTOR(float_X, 8, Oxygen, 4. 453, 4. 453, 4. 453, 4. 453, 4. 492, 4. 492, 7. 658, 7. 658)
-
picongpu::ionization::effectiveNuclearCharge::PMACC_CONST_VECTOR(float_X, 13, Aluminium, 4. 066, 4. 117, 4. 117, 8. 963, 8. 963, 8. 963, 8. 963, 8. 963, 8. 963, 8. 214, 8. 214, 12. 591, 12. 591)
-
picongpu::ionization::effectiveNuclearCharge::PMACC_CONST_VECTOR(float_X, 29, Copper, 13. 201, 13. 201, 13. 201, 13. 201, 13. 201, 13. 201, 13. 201, 13. 201, 13. 201, 13. 201, 5. 842, 14. 731, 14. 731, 14. 731, 14. 731, 14. 731, 14. 731, 15. 594, 15. 594, 25. 097, 25. 097, 25. 097, 25. 097, 25. 097, 25. 097, 21. 020, 21. 020, 28. 339, 28. 339)
-
picongpu::ionization::effectiveNuclearCharge::PMACC_CONST_VECTOR(float_X, 79, Gold, 20. 126, 20. 126, 20. 126, 20. 126, 20. 126, 20. 126, 20. 126, 20. 126, 20. 126, 20. 126, 40. 650, 40. 650, 40. 650, 40. 650, 40. 650, 40. 650, 40. 650, 40. 650, 40. 650, 40. 650, 40. 650, 40. 650, 40. 650, 40. 650, 10. 938, 25. 170, 25. 170, 25. 170, 25. 170, 25. 170, 25. 170, 41. 528, 41. 528, 41. 528, 41. 528, 41. 528, 41. 528, 41. 528, 41. 528, 41. 528, 41. 528, 27. 327, 27. 327, 43. 547, 43. 547, 43. 547, 43. 547, 43. 547, 43. 547, 65. 508, 65. 508, 65. 508, 65. 508, 65. 508, 65. 508, 65. 508, 65. 508, 65. 508, 65. 508, 44. 413, 44. 413, 56. 703, 56. 703, 56. 703, 56. 703, 56. 703, 56. 703, 55. 763, 55. 763, 74. 513, 74. 513, 74. 513, 74. 513, 74. 513, 74. 513, 58. 370, 58. 370, 77. 476, 77. 476)
-
namespace picongpu
particles
-
namespace picongpu::particles
ionization
-
namespace picongpu::particles::ionization
thomasFermi
Variables
-
constexpr float_X picongpu::particles::ionization::thomasFermi
TFAlpha
= 14.3139 Fitting parameters to average ionization degree Z* = 4/3*pi*R_0^3 * n(R_0) as an extension towards arbitrary atoms and temperatures.
See table IV of http://www.sciencedirect.com/science/article/pii/S0065219908601451 doi:10.1016/S0065-2199(08)60145-1
-
constexpr float_X picongpu::particles::ionization::thomasFermi
TFBeta
= 0.6624
-
constexpr float_X picongpu::particles::ionization::thomasFermi
TFA1
= 3.323e-3
-
constexpr float_X picongpu::particles::ionization::thomasFermi
TFA2
= 9.718e-1
-
constexpr float_X picongpu::particles::ionization::thomasFermi
TFA3
= 9.26148e-5
-
constexpr float_X picongpu::particles::ionization::thomasFermi
TFA4
= 3.10165
-
constexpr float_X picongpu::particles::ionization::thomasFermi
TFB0
= -1.7630
-
constexpr float_X picongpu::particles::ionization::thomasFermi
TFB1
= 1.43175
-
constexpr float_X picongpu::particles::ionization::thomasFermi
TFB2
= 0.31546
-
constexpr float_X picongpu::particles::ionization::thomasFermi
TFC1
= -0.366667
-
constexpr float_X picongpu::particles::ionization::thomasFermi
TFC2
= 0.983333
-
constexpr float_X picongpu::particles::ionization::thomasFermi
CUTOFF_MAX_ENERGY_KEV
= 50.0 cutoff energy for electron “temperature” calculation
In laser produced plasmas we can have different, well-separable groups of electrons. For the Thomas-Fermi ionization model we only want the thermalized “bulk” electrons. Including the high-energy “prompt” electrons is physically questionable since they do not have a large cross section for collisional ionization.
unit: keV
-
constexpr float_X picongpu::particles::ionization::thomasFermi
CUTOFF_MAX_ENERGY
= CUTOFF_MAX_ENERGY_KEV * UNITCONV_keV_to_Joule cutoff energy for electron “temperature” calculation in SI units
-
constexpr float_X picongpu::particles::ionization::thomasFermi
CUTOFF_LOW_DENSITY
= 1.7422e27 lower ion density cutoff
The Thomas-Fermi model yields unphysical artifacts for low ion densities. Low ion densities imply lower collision frequency and thus less collisional ionization. The Thomas-Fermi model yields an increasing charge state for decreasing densities and electron temperatures of 10eV and above. This cutoff will be used to set the lower application threshold for charge state calculation.
unit: 1 / m^3
- Note
- This cutoff value should be set in accordance to FLYCHK calculations, for instance! It is not a universal value and requires some preliminary approximations!
example: 1.7422e27 as a hydrogen ion number density equal to the corresponding critical electron number density for an 800nm laser
The choice of the default is motivated by by the following: In laser-driven plasmas all dynamics in density regions below the critical electron density will be laser-dominated. Once ions of that density are ionized once the laser will not penetrate fully anymore and the as electrons are heated the dynamics will be collision-dominated.
-
constexpr float_X picongpu::particles::ionization::thomasFermi
CUTOFF_LOW_TEMPERATURE_EV
= 1.0 lower electron temperature cutoff
The Thomas-Fermi model predicts initial ionization for many materials of solid density even when the electron temperature is 0.
-
constexpr float_X picongpu::particles::ionization::thomasFermi
-
namespace picongpu::particles::ionization
-
namespace picongpu::particles
-
namespace picongpu
ionizationEnergies.param¶
This file contains the ionization energies of commonly used elements of the periodic table.
Each atomic species in PIConGPU can represent exactly one element. The ionization energies of that element are stored in a vector which contains the name and proton number as well as a list of energy values. The number of ionization levels must be equal to the proton number of the element.
-
namespace
picongpu
-
namespace picongpu
ionization
Ionization Model Configuration.
- None : no particle is ionized
- BSI : simple barrier suppression ionization
- BSIEffectiveZ : BSI taking electron shielding into account via an effective atomic number Z_eff
- ADKLinPol : Ammosov-Delone-Krainov tunneling ionization (H-like) -> linearly polarized lasers
- ADKCircPol : Ammosov-Delone-Krainov tunneling ionization (H-like) -> circularly polarized lasers
- Keldysh : Keldysh ionization model
- ThomasFermi : statistical impact ionization based on Thomas-Fermi atomic model Attention: requires 2 FieldTmp slots
Research and development:
- See
- memory.param
- BSIStarkShifted : BSI for hydrogen-like atoms and ions considering the Stark upshift of ionization potentials
Usage: Add flags to the list of particle flags that has the following structure
ionizers< MakeSeq_t< particles::ionization::IonizationModel< Species2BCreated > > >, atomicNumbers< ionization::atomicNumbers::Element_t >, effectiveNuclearCharge< ionization::effectiveNuclearCharge::Element_t >, ionizationEnergies< ionization::energies::AU::Element_t >
-
namespace picongpu::ionization
energies
Ionization potentials.
Please follow these rules for defining ionization energies of atomic species, unless your chosen ionization model requires a different unit system than
AU::
- input of values in either atomic units or converting eV or Joule to them -> use either UNITCONV_eV_to_AU or SI::ATOMIC_UNIT_ENERGY for that purpose
- use
float_X
as the preferred data type
example: ionization energy for ground state hydrogen: 13.6 eV 1 Joule = 1 kg * m^2 / s^2 1 eV = 1.602e-19 J
1 AU (energy) = 27.2 eV = 1 Hartree = 4.36e-18 J = 2 Rydberg = 2 x Hydrogen ground state binding energy
Atomic units are useful for ionization models because they simplify the formulae greatly and provide intuitively understandable relations to a well-known system, i.e. the Hydrogen atom.
for PMACC_CONST_VECTOR usage,
Reference: Kramida, A., Ralchenko, Yu., Reader, J., and NIST ASD Team (2014) NIST Atomic Spectra Database (ver. 5.2), [Online] Available:
http://physics.nist.gov/asd [2017, February 8] National Institute of Standards and Technology, Gaithersburg, MD- See
- include/pmacc/math/ConstVector.hpp for finding ionization energies, http://physics.nist.gov/PhysRefData/ASD/ionEnergy.html
-
namespace picongpu::ionization::energies
AU
Functions
-
picongpu::ionization::energies::AU::PMACC_CONST_VECTOR(float_X, 1, Hydrogen, 13.59843 * UNITCONV_eV_to_AU)
-
picongpu::ionization::energies::AU::PMACC_CONST_VECTOR(float_X, 1, Deuterium, 13.60213 * UNITCONV_eV_to_AU)
-
picongpu::ionization::energies::AU::PMACC_CONST_VECTOR(float_X, 2, Helium, 24.58739 * UNITCONV_eV_to_AU, 54.41776 * UNITCONV_eV_to_AU)
-
picongpu::ionization::energies::AU::PMACC_CONST_VECTOR(float_X, 6, Carbon, 11.2603 * UNITCONV_eV_to_AU, 24.3845 * UNITCONV_eV_to_AU, 47.88778 * UNITCONV_eV_to_AU, 64.49351 * UNITCONV_eV_to_AU, 392.0905 * UNITCONV_eV_to_AU, 489.993177 * UNITCONV_eV_to_AU)
-
picongpu::ionization::energies::AU::PMACC_CONST_VECTOR(float_X, 7, Nitrogen, 14.53413 * UNITCONV_eV_to_AU, 29.60125 * UNITCONV_eV_to_AU, 47.4453 * UNITCONV_eV_to_AU, 77.4735 * UNITCONV_eV_to_AU, 97.89013 * UNITCONV_eV_to_AU, 552.06731 * UNITCONV_eV_to_AU, 667.04609 * UNITCONV_eV_to_AU)
-
picongpu::ionization::energies::AU::PMACC_CONST_VECTOR(float_X, 8, Oxygen, 13.61805 * UNITCONV_eV_to_AU, 35.12112 * UNITCONV_eV_to_AU, 54.93554 * UNITCONV_eV_to_AU, 77.41350 * UNITCONV_eV_to_AU, 113.8989 * UNITCONV_eV_to_AU, 138.1189 * UNITCONV_eV_to_AU, 739.3268 * UNITCONV_eV_to_AU, 871.4098 * UNITCONV_eV_to_AU)
-
picongpu::ionization::energies::AU::PMACC_CONST_VECTOR(float_X, 13, Aluminium, 5.98577 * UNITCONV_eV_to_AU, 18.8285 * UNITCONV_eV_to_AU, 28.4476 * UNITCONV_eV_to_AU, 119.992 * UNITCONV_eV_to_AU, 153.825 * UNITCONV_eV_to_AU, 190.495 * UNITCONV_eV_to_AU, 241.769 * UNITCONV_eV_to_AU, 284.647 * UNITCONV_eV_to_AU, 330.214 * UNITCONV_eV_to_AU, 398.656 * UNITCONV_eV_to_AU, 442.006 * UNITCONV_eV_to_AU, 2085.97 * UNITCONV_eV_to_AU, 2304.14 * UNITCONV_eV_to_AU)
-
picongpu::ionization::energies::AU::PMACC_CONST_VECTOR(float_X, 29, Copper, 7.72638 * UNITCONV_eV_to_AU, 20.2924 * UNITCONV_eV_to_AU, 36.8411 * UNITCONV_eV_to_AU, 57.385 * UNITCONV_eV_to_AU, 79.87 * UNITCONV_eV_to_AU, 103.010 * UNITCONV_eV_to_AU, 139.012 * UNITCONV_eV_to_AU, 166.021 * UNITCONV_eV_to_AU, 198.022 * UNITCONV_eV_to_AU, 232.25 * UNITCONV_eV_to_AU, 265.332 * UNITCONV_eV_to_AU, 367.09 * UNITCONV_eV_to_AU, 401.03 * UNITCONV_eV_to_AU, 436.06 * UNITCONV_eV_to_AU, 483.19 * UNITCONV_eV_to_AU, 518.712 * UNITCONV_eV_to_AU, 552.821 * UNITCONV_eV_to_AU, 632.56 * UNITCONV_eV_to_AU, 670.608 * UNITCONV_eV_to_AU, 1690.59 * UNITCONV_eV_to_AU, 1800.3 * UNITCONV_eV_to_AU, 1918.4 * UNITCONV_eV_to_AU, 2044.6 * UNITCONV_eV_to_AU, 2179.4 * UNITCONV_eV_to_AU, 2307.32 * UNITCONV_eV_to_AU, 2479.12 * UNITCONV_eV_to_AU, 2586.95 * UNITCONV_eV_to_AU, 11062.4 * UNITCONV_eV_to_AU, 11567.6 * UNITCONV_eV_to_AU)
-
picongpu::ionization::energies::AU::PMACC_CONST_VECTOR(float_X, 79, Gold, 9.2256 * UNITCONV_eV_to_AU, 20.203 * UNITCONV_eV_to_AU, 30.016 * UNITCONV_eV_to_AU, 45.017 * UNITCONV_eV_to_AU, 60.019 * UNITCONV_eV_to_AU, 74.020 * UNITCONV_eV_to_AU, 94.020 * UNITCONV_eV_to_AU, 112.02 * UNITCONV_eV_to_AU, 130.12 * UNITCONV_eV_to_AU, 149.02 * UNITCONV_eV_to_AU, 168.21 * UNITCONV_eV_to_AU, 248.01 * UNITCONV_eV_to_AU, 275.14 * UNITCONV_eV_to_AU, 299.15 * UNITCONV_eV_to_AU, 324.16 * UNITCONV_eV_to_AU, 365.19 * UNITCONV_eV_to_AU, 392.20 * UNITCONV_eV_to_AU, 433.21 * UNITCONV_eV_to_AU, 487.25 * UNITCONV_eV_to_AU, 517.30 * UNITCONV_eV_to_AU, 546.30 * UNITCONV_eV_to_AU, 600.30 * UNITCONV_eV_to_AU, 650.40 * UNITCONV_eV_to_AU, 710.40 * UNITCONV_eV_to_AU, 760.40 * UNITCONV_eV_to_AU, 820.40 * UNITCONV_eV_to_AU, 870.40 * UNITCONV_eV_to_AU, 930.50 * UNITCONV_eV_to_AU, 990.50 * UNITCONV_eV_to_AU, 1040.5 * UNITCONV_eV_to_AU, 1100.5 * UNITCONV_eV_to_AU, 1150.6 * UNITCONV_eV_to_AU, 1210.6 * UNITCONV_eV_to_AU, 1475.5 * UNITCONV_eV_to_AU, 1527.5 * UNITCONV_eV_to_AU, 1584.5 * UNITCONV_eV_to_AU, 1644.5 * UNITCONV_eV_to_AU, 1702.4 * UNITCONV_eV_to_AU, 1758.4 * UNITCONV_eV_to_AU, 1845.4 * UNITCONV_eV_to_AU, 1904.4 * UNITCONV_eV_to_AU, 1967.4 * UNITCONV_eV_to_AU, 2026.4 * UNITCONV_eV_to_AU, 2261.4 * UNITCONV_eV_to_AU, 2320.4 * UNITCONV_eV_to_AU, 2383.4 * UNITCONV_eV_to_AU, 2443.4 * UNITCONV_eV_to_AU, 2640.4 * UNITCONV_eV_to_AU, 2708.4 * UNITCONV_eV_to_AU, 2870.4 * UNITCONV_eV_to_AU, 2941.0 * UNITCONV_eV_to_AU, 4888.4 * UNITCONV_eV_to_AU, 5013.4 * UNITCONV_eV_to_AU, 5156.5 * UNITCONV_eV_to_AU, 5307.5 * UNITCONV_eV_to_AU, 5452.5 * UNITCONV_eV_to_AU, 5594.5 * UNITCONV_eV_to_AU, 5846.6 * UNITCONV_eV_to_AU, 5994.6 * UNITCONV_eV_to_AU, 6156.7 * UNITCONV_eV_to_AU, 6305.1 * UNITCONV_eV_to_AU, 6724.1 * UNITCONV_eV_to_AU, 6854.1 * UNITCONV_eV_to_AU, 6997.2 * UNITCONV_eV_to_AU, 7130.2 * UNITCONV_eV_to_AU, 7756.3 * UNITCONV_eV_to_AU, 7910.4 * UNITCONV_eV_to_AU, 8210.4 * UNITCONV_eV_to_AU, 8360.5 * UNITCONV_eV_to_AU, 18040. * UNITCONV_eV_to_AU, 18401. * UNITCONV_eV_to_AU, 18791. * UNITCONV_eV_to_AU, 19151. * UNITCONV_eV_to_AU, 21471. * UNITCONV_eV_to_AU, 21921. * UNITCONV_eV_to_AU, 22500. * UNITCONV_eV_to_AU, 22868. * UNITCONV_eV_to_AU, 91516. * UNITCONV_eV_to_AU, 93254. * UNITCONV_eV_to_AU)
-
-
namespace picongpu
flylite.param¶
This is the configuration file for the atomic particle population kinetics model FLYlite.
Its main purpose is non-LTE collisional-radiative modeling for transient plasmas at high densities and/or interaction with (X-Ray) photon fields.
In simpler words, one can also use this module to simulate collisional ionization processes without the assumption of a local thermal equilibrium (LTE), contrary to popular collisional ionization models such as the Thomas-Fermi ionization model.
This file configures the number of modeled populations for ions, spatial and spectral binning of non-LTE density and energy histograms.
-
namespace
picongpu
-
namespace picongpu
flylite
Typedefs
-
using
picongpu::flylite::Superconfig = typedef types::Superconfig< float_64, populations >
-
using
picongpu::flylite::spatialAverageBox = typedef SuperCellSize
you better not change this line, the wooooorld depends on it!
no seriously, per-supercell is the quickest way to average particle quantities such as density, energy histogram, etc. and I won’t implement another size until needed
Variables
-
constexpr uint8_t picongpu::flylite
populations
= 3u number of populations (numpop)
this number defines how many configurations make up a superconfiguration
range: [0, 255]
-
constexpr uint8_t picongpu::flylite
ionizationStates
= 29u ionization states of the atom (iz)
range: [0, 255]
-
constexpr uint16_t picongpu::flylite
energies
= 512u number of energy bins
energy steps used for local energy histograms
- Note
- : no overflow- or underflow-bins are used, particles with energies outside the range (see below) are ignored
-
using
-
namespace picongpu