Skip to content

Repository files navigation

KODIAK

CI

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).

KODIAK

Physics model

  • 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 to R_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_max bracket, 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 via SRIM_Files/build_srim_db.py), interpolated in energy. Currently covers H, He, C, O, Si, Fe, Xe, Au, Bi, U.
  • 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.

Running

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

Usage

  1. Click an ion in the periodic table (buttons are color-coded by natural abundance).
  2. Choose the LET model (Bethe-Bloch or SRIM) and set Energy, Track Length, Core Radius, and Delta Cutoff.
  3. Click Run KODIAK to compute and plot the radial charge distribution.
  4. Click Save Output to write a summary + full radial dataset to Results/<Ion>_<Energy>MeVu_<timestamp>.csv.

Repo layout

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

About

Katz-Optimized Dose Ionization Analysis Kit - heavy-ion/proton track-structure charge density simulator

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages