Dose in a buried oxide
Electrons at normal incidence on a stack of two metal and dielectric pairs over
a 10 nm oxide on Si, with the beam energy swept from 1 to 30 keV. The input is
examples/electron/e_dose_buried_oxide.toml:
# Dose in a thin buried oxide under alternating metal and dielectric layers
# (an electron run with the dose tallies of #547).
#
# Run: lindhard run examples/electron/e_dose_buried_oxide.toml --out out/e_dose_buried_oxide
# Check: lindhard check examples/electron/e_dose_buried_oxide.toml
#
# Schema: docs/cli.md, "Electron runs" (`[electron.tally.dose]`). Energies are
# in eV, lengths in nm.
#
# To sweep the beam energy (the 1-30 keV scan of the gallery page), change
# `electron.beam.energy_ev` and rerun; the gallery script does this
# (validation/gallery.py).
#
# SYNTHETIC DATA, as in e_10keV_si.toml and e_10keV_resist_on_si.toml. Every
# material uses the same synthetic Drude-Lorentz plasmon ELF
# (synthetic_plasmon_elf.toml) and round-number band parameters. "Metal",
# "Dielectric" and "Oxide" carry the composition and density of Al, a
# PMMA-class polymer and SiO2 only to set their masses and elastic scattering;
# their electron data are not those materials'. No optical or band data of
# real materials is committed (docs/data-provenance.md). The output shows how
# the tallies work on a stack, not what a real stack does, and it is not
# compared with any measurement.
[electron.beam]
energy_ev = 10000.0
tilt_deg = 0.0
[electron.transport]
cutoff_ev = 1.0
cutoff_reference = "vacuum-level"
secondaries = "kieft-bosch"
boundary = "step-barrier"
[electron.elastic]
model = "mott"
# The only potential that runs today is a stand-in (docs/data-provenance.md).
potential = "thomas-fermi-yukawa"
exchange = false
[electron.inelastic]
model = "penn-single-pole"
[electron.tables]
# A coarse grid keeps the example quick.
min_energy_ev = 10.0
points_per_decade = 8.0
[electron.materials.Metal]
optical_elf = "synthetic_plasmon_elf.toml"
band = { kind = "metal", fermi_ev = 5.0, work_function_ev = 4.0, provenance = "SYNTHETIC round numbers for the dose example (examples/electron/e_dose_buried_oxide.toml), not band parameters of any metal" }
[electron.materials.Dielectric]
optical_elf = "synthetic_plasmon_elf.toml"
band = { kind = "insulator", valence_band_width_ev = 10.0, band_gap_ev = 4.0, affinity_ev = 1.0, provenance = "SYNTHETIC round numbers for the dose example (examples/electron/e_dose_buried_oxide.toml), not band parameters of any dielectric" }
[electron.materials.Oxide]
optical_elf = "synthetic_plasmon_elf.toml"
band = { kind = "insulator", valence_band_width_ev = 10.0, band_gap_ev = 8.0, affinity_ev = 1.0, provenance = "SYNTHETIC round numbers for the dose example (examples/electron/e_dose_buried_oxide.toml), not band parameters of SiO2" }
[electron.materials.Si]
optical_elf = "synthetic_plasmon_elf.toml"
band = { kind = "insulator", valence_band_width_ev = 10.0, band_gap_ev = 2.0, affinity_ev = 3.0, provenance = "SYNTHETIC round numbers for the dose example (examples/electron/e_dose_buried_oxide.toml), not band parameters of Si" }
[electron.tally]
escape_energy_bins = 50
escape_polar_bins = 9
# Dose per unit incident fluence in each layer (always, with this table), a
# depth-dose profile through the stack with a refined band of 2 nm on each
# side of every interface, and the electrons crossing each interface. The
# substrate is binned to 400 nm.
[electron.tally.dose]
depth_bins_per_layer = 10
refine_width_nm = 2.0
refine_bins = 8
substrate_depth_nm = 400.0
transmission = true
[materials.Metal]
density_g_cm3 = 2.70
elements = [{ symbol = "Al", atom_fraction = 1.0 }]
[materials.Dielectric]
density_g_cm3 = 1.19
elements = [
{ symbol = "C", atom_fraction = 5.0 },
{ symbol = "H", atom_fraction = 8.0 },
{ symbol = "O", atom_fraction = 2.0 },
]
[materials.Oxide]
density_g_cm3 = 2.20
elements = [
{ symbol = "Si", atom_fraction = 1.0 },
{ symbol = "O", atom_fraction = 2.0 },
]
[target]
substrate = "Si"
# Front to back: two metal/dielectric pairs over the buried oxide.
[[target.layers]]
material = "Metal"
thickness_nm = 40.0
[[target.layers]]
material = "Dielectric"
thickness_nm = 60.0
[[target.layers]]
material = "Metal"
thickness_nm = 40.0
[[target.layers]]
material = "Dielectric"
thickness_nm = 60.0
[[target.layers]]
material = "Oxide"
thickness_nm = 10.0
[run]
histories = 1000
seed = 1
The [electron.tally.dose] table adds the dose in each layer per unit incident
fluence, a depth-dose profile with refined bins next to each interface, and the
electrons crossing each interface (see docs/cli.md, “Electron runs”). Run and
check one energy with
lindhard check examples/electron/e_dose_buried_oxide.toml
lindhard run examples/electron/e_dose_buried_oxide.toml --out out/e_dose_buried_oxide
Synthetic data: read this first
The electron data of this example are not those of any metal, dielectric,
oxide or Si. Every material uses the same synthetic Drude-Lorentz plasmon as
its optical energy-loss function
(examples/electron/synthetic_plasmon_elf.toml),
the band parameters are round numbers, and the elastic potential is the
Thomas-Fermi stand-in
(docs/data-provenance.md).
The result below shows what the dose tallies report for a stack. It is not
compared with any measurement and says nothing about a real stack.
Result
One run per beam energy, 1000 histories each, seed 1 (see
validation/gallery.py). The dose is that in the oxide layer for a fluence of
10¹² electrons/cm², with the standard error of the mean. At 1 and 2 keV no
electron reaches the oxide through the 200 nm of layers in front of it in this
model, so the tally is exactly zero.
| Beam energy (keV) | Dose in the oxide (Gy), mean ± standard error |
|---|---|
| 1 | 0 ± 0 |
| 2 | 0 ± 0 |
| 3 | 2.38e+03 ± 3.6e+02 |
| 5 | 1.53e+04 ± 8.2e+02 |
| 10 | 8.78e+03 ± 6e+02 |
| 20 | 3.28e+03 ± 2.7e+02 |
| 30 | 2.15e+03 ± 2.2e+02 |
What is validated, and what is an illustration
- Validated: the bookkeeping, in the tests (
lindhard/tests/electron_dose.rs): the per-layer energies, the depth-profile sums and the Cartesian grid agree to summation error for one seed, the dose is the layer energy over its areal mass, and the results are bit-identical across thread counts. - Illustration only: every number in the figure and table. The comparison of depth-dose curves and of the interface enhancement with published measurements needs sourced optical data and is tracked in #557.