Katz-Optimized Dose Ionization Analysis Kit
A desktop tool for computing the radial charge-density distribution and collected charge from a single heavy-ion or proton track in silicon — built for single-event-effects (SEE) work on microelectronics.
Pick an ion from the periodic table, set energy/track length/core radius/delta-ray cutoff, and KODIAK plots cumulative charge, differential shell charge, and local charge density as a function of radius, alongside summary numbers (LET, β, R_max, restricted radius, total/restricted collected charge).
- Radial dose distribution: Waligórski-Hamm-Katz (1986) modified Katz
form,
D(r) ∝ (1/r²)·(1 − r/R_max)^(1/α)withα = 1.667, integrated from a core radius out toR_max(the true maximum δ-ray range) and normalized so the integral reproduces the ion's full stopping power. "Restricted charge" is reported separately as the sub-integral out to a δ-ray-energy-cutoff radius. - LET / stopping power: two selectable modes —
- Bethe-Bloch: full PDG mean-stopping-power formula for a silicon
target (Barkas effective charge,
(Z/A)_Si, log/T_maxbracket,I_Si = 173 eV). Validated to within ~1-2% of SRIM across the ions below. - SRIM: tabulated stopping power (from
srim_let.csv, built from raw SRIM output viaSRIM_Files/build_srim_db.py), interpolated in energy. Currently covers H, He, C, O, Si, Fe, Xe, Au, Bi, U.
- Bethe-Bloch: full PDG mean-stopping-power formula for a silicon
target (Barkas effective charge,
- Charge conversion:
ρ(r) = D(r) / W,W = 3.6 eV/pair(silicon),Q = N·e.
See KatzTrack_MASTER.md for the full derivation,
constants, and a running change log — every equation/parameter change is
recorded there.
Requires Python 3 with:
numpy
matplotlib
pillow
(tkinter ships with most Python installs; on Debian/Ubuntu it's the
python3-tk package if missing.)
pip install numpy matplotlib pillow
python3 KODIAK.py- Click an ion in the periodic table (buttons are color-coded by natural abundance).
- Choose the LET model (Bethe-Bloch or SRIM) and set Energy, Track Length, Core Radius, and Delta Cutoff.
- Click Run KODIAK to compute and plot the radial charge distribution.
- Click Save Output to write a summary + full radial dataset to
Results/<Ion>_<Energy>MeVu_<timestamp>.csv.
KODIAK.py GUI + physics (single-file app)
KatzTrack_MASTER.md Canonical physics notebook / change log
srim_let.csv Interpolation table used by SRIM mode
SRIM_Files/ Raw SRIM output + build_srim_db.py that regenerates srim_let.csv
Results/ Saved simulation output (gitignored)
Figures/ Scratch space for exported plots
