Expand description
Inelastic electron scattering from dielectric-function models.
The simplest model is the single-pole Penn algorithm (penn): from a
user-supplied optical energy-loss function
(crate::electron::data::OpticalElf) it builds the momentum-dependent
loss function, the differential inverse inelastic mean free path (DIIMFP),
the inelastic mean free path and the stopping power, with nonrelativistic
kinematics. sum_rules checks an optical ELF against the f-sum and
perfect-screening sum rules, bethe gives the nonrelativistic Bethe
stopping the model must approach at high energy, and drude is an
analytic Drude-Lorentz ELF with closed-form sum rules, used as a synthetic
fixture by the tests, examples and benchmarks.
No optical data is committed for this module (docs/data-provenance.md):
the valence ELF comes from the caller.
inner_shell resolves the losses into a valence channel and
inner-shell ionization channels (secondary energy ω - B), each from its
own optical ELF, and the optional Born-Ochkur
ExchangeCorrection makes the primary and the struck electron
indistinguishable at low energy. shell_elf builds the inner-shell
ELFs of the K, L1, L2 and L3 subshells from the hydrogenic
photoionization formulas and a subshell binding-energy table; other
shells come from the caller.
table builds the inelastic energy-loss CrossSectionTable and a
momentum-transfer sampler from the model.
The full Penn algorithm (full_penn) expands the same optical ELF
over the Lindhard dielectric functions of free-electron gases
(lindhard_gas) and costs about a second per energy where the single
pole costs milliseconds; model selects either per material and gives
the string to record in the metadata of derived tables.
The Mermin-ELF model (mermin, mermin_fit) fits a sum of
Mermin oscillators to the optical ELF (the MELF-GOS approach: amplitudes
constrained non-negative, fit residuals and sum rules reported) and
extends it to finite momentum with the Mermin relaxation-time dielectric
function; it is the third option of model beside the single pole and
the full Penn algorithm.
Relativistic kinematics are later work.
Re-exports§
pub use drude::DrudeLorentz;pub use drude::DrudeLorentzOscillator;pub use full_penn::DiimfpEvaluation;pub use full_penn::DiimfpGrid;pub use full_penn::FullPenn;pub use full_penn::ImfpEvaluation;pub use full_penn::LossFunctionEvaluation;pub use full_penn::DEFAULT_FULL_TOLERANCE;pub use full_penn::OMEGA_P_INTERVAL_BUDGET;pub use inner_shell::Channel;pub use inner_shell::ChannelDiimfp;pub use inner_shell::ChannelInverseImfp;pub use inner_shell::InnerShell;pub use inner_shell::ShellResolvedChannels;pub use lindhard_gas::LindhardGas;pub use lindhard_gas::LindhardPlasmon;pub use mermin::MerminGas;pub use mermin::MerminPenn;pub use mermin::DEFAULT_MERMIN_TOLERANCE;pub use mermin_fit::fit_mermin_oscillators;pub use mermin_fit::FitWeighting;pub use mermin_fit::MerminFit;pub use mermin_fit::MerminFitOptions;pub use mermin_fit::MAX_OSCILLATORS;pub use model::PennAlgorithm;pub use model::PennInelastic;pub use penn::born_ochkur_factor;pub use penn::ExchangeCorrection;pub use penn::InelasticPoint;pub use penn::SinglePolePenn;pub use penn::DEFAULT_RELATIVE_TOLERANCE;pub use shell_elf::hydrogenic_2p_oscillator_strength_density_per_ev;pub use shell_elf::hydrogenic_2s_oscillator_strength_density_per_ev;pub use shell_elf::hydrogenic_k_oscillator_strength_density_per_ev;pub use shell_elf::hydrogenic_shell_elf;pub use shell_elf::hydrogenic_shell_elfs;pub use shell_elf::ShellElfGrid;pub use sum_rules::SumRuleReport;
Modules§
- bethe
- Nonrelativistic Bethe stopping, the high-energy reference for the dielectric models.
- drude
- An analytic Drude-Lorentz energy-loss function with closed-form sum rules.
- full_
penn - The full Penn algorithm (FPA): the optical energy-loss function expanded over the Lindhard loss functions of free-electron gases, and the DIIMFP, inelastic mean free path and stopping power built from it.
- inner_
shell - Inner-shell ionization channels from shell-resolved loss functions.
- lindhard_
gas - The Lindhard dielectric function of a free-electron gas at zero
temperature (random-phase approximation), in Hartree atomic units
(
m_e = e = ħ = 1), and the loss-function integrals built from it. - mermin
- The Mermin dielectric function of a free-electron gas, and the Mermin-ELF inelastic model built from a fit of oscillators to an optical ELF.
- mermin_
fit - Fitting Mermin oscillators to an optical energy-loss function (the MELF-GOS fit).
- model
- Choosing the ELF-extension model per material.
- penn
- The single-pole Penn algorithm: the momentum-dependent energy-loss function, the differential inverse inelastic mean free path (DIIMFP), the inelastic mean free path (IMFP) and the stopping power, built from an optical ELF.
- shell_
elf - Inner-shell optical ELFs built from the hydrogenic K-shell (1s) and
L-subshell (2s, 2p) photoionization formulas, for
ShellResolvedChannels. - sum_
rules - Sum rules of an optical energy-loss function.
- table
- Inelastic sampling tables from the single-pole Penn DIIMFP (issue #94):
an
electron::data::CrossSectionTablewithSamplingAxis::InelasticEnergyLoss(the inverse mean free path and the inverse CDF of the energy lossWat every energy of a caller-chosen grid), and a sampler of the momentum transferqgiven(E, W), from which the deflection angle follows.