Skip to main content

Module inelastic

Module inelastic 

Source
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::CrossSectionTable with SamplingAxis::InelasticEnergyLoss (the inverse mean free path and the inverse CDF of the energy loss W at every energy of a caller-chosen grid), and a sampler of the momentum transfer q given (E, W), from which the deflection angle follows.