Skip to content

Repository files navigation

Ion Implant Profile Explorer

CI Python Model: analytical

An interactive, testable implementation of a first-order analytical ion-implant depth profile. It explores user-supplied dose, projected range (Rp), range straggle (ΔRp), multi-component superposition, and simplified constant-diffusivity broadening—without pretending to be calibrated TCAD.

Evidence boundary: this repository contains no claimed fabrication experiments, proprietary process data, or invented ion range tables. Species and energy are metadata only. Users must supply Rp and ΔRp from a trusted range table, calibrated Monte Carlo/TCAD workflow, or measurement.

Engineering questions

  • How do dose, projected range, and straggle set the peak and depth distribution?
  • How does a zero-flux surface affect a near-surface Gaussian tail?
  • Does numerical discretization conserve the requested sheet dose?
  • How does the simplified variance relation σ² = σ₀² + 2Dt broaden a profile?
  • Can several fixed profile components approximate a user-defined target using non-negative dose fitting?
flowchart LR
    A["User-supplied Q, Rp, ΔRp"] --> B["Reflected Gaussian component"]
    C["Optional constant D and time"] --> B
    B --> D["Multi-component superposition"]
    D --> E["Dose integration and crossings"]
    D --> F["NNLS dose fitting"]
    E --> G["Streamlit profile explorer"]
    F --> G
Loading

Analytical model

For dose Q, mean projected range Rp, and straggle σ, the familiar full-space approximation is

C(x) = Q / (sqrt(2π) σ) · exp[-(x - Rp)² / (2σ²)].

The implementation uses a direct term plus an image term on x ≥ 0:

C+(x) = Q / (sqrt(2π) σ) · {
  exp[-(x - Rp)² / (2σ²)] + exp[-(x + Rp)² / (2σ²)]
}.

This is a transparent zero-flux surface approximation and integrates to Q over the semi-infinite domain. For a constant diffusion coefficient and time, the standard deviation becomes

σannealed = sqrt(σimplant² + 2Dt).

All internal calculations convert nanometres to centimetres before producing concentrations in cm⁻³ and sheet dose in cm⁻².

Features

  • dose-conserving semi-infinite Gaussian profile;
  • any number of superposed implant components;
  • optional constant-D Fickian broadening;
  • numerical sheet-dose verification;
  • peak concentration and peak-depth calculation;
  • log-interpolated crossings with a selected background concentration;
  • non-negative least-squares fitting of component doses to a target profile;
  • JSON recipe CLI, CSV export, notebook, Streamlit dashboard, and tests.

Quick start

git clone https://github.com/luxinya2003/ion-implant-profile-explorer.git
cd ion-implant-profile-explorer
python -m venv .venv

Activate on Windows:

.venv\Scripts\Activate.ps1

Then install and run:

python -m pip install -e ".[dev]"
implant-profile verify
implant-profile simulate --recipe examples/dual_component_recipe.json
streamlit run dashboard/app.py

Verification, not experimental validation

The committed reports/verification.json checks that six mathematical cases recover the requested sheet dose after numerical integration. Unit tests also verify superposition, diffusion broadening, junction crossings, Arrhenius monotonicity, input validation, and recovery of known NNLS weights.

These checks validate code against analytical invariants. They do not validate the model against SIMS measurements, calibrated TCAD, or a real implant.

ruff check src tests dashboard
pytest --cov=ion_profile --cov-report=term-missing

Model boundary

This tool intentionally does not model:

  • energy-to-range or species-to-range physics;
  • crystal channeling or implant angle;
  • skewness, kurtosis, Pearson-IV profiles, or lateral straggle;
  • implant damage, amorphization, or dynamic annealing;
  • transient enhanced or concentration-dependent diffusion;
  • electrical activation, clustering, segregation, or solid solubility;
  • multilayer stopping, masks, interfaces, or device performance.

Analytical moment models are valuable for learning, screening assumptions, and checking units. TU Wien's implantation-simulation research notes that modern TCAD increasingly requires particle-based Monte Carlo methods and that simple analytical profiles cannot reliably handle complex targets, channeling, or few-nanometre structures. Use an appropriately calibrated process simulator and engineering review for real recipe decisions.

References

  1. U.S. Bureau of Mines, Methodology for Evaluating Integral Gaussian Profiles, Information Circular 8811. The report presents Gaussian implant profiles, Fick's diffusion equation, and a semi-infinite no-loss surface treatment. CDC Stacks record
  2. Robert Wittmann, Simulation of Ion Implantation, TU Wien dissertation. Chapter 3
  3. Alan Doolittle, ECE 6450: Ion Implantation, Georgia Tech. Lecture notes
  4. J. Lindhard, M. Scharff, and H. E. Schiøtt, Range Concepts and Heavy Ion Ranges, Mat. Fys. Medd. Dan. Vid. Selsk. 33(14), 1963. Institutional catalogue record
  5. A. Soler et al., A fitting algorithm for optimizing ion implantation energies and fluences, 2021. arXiv:2103.02525

Repository structure

.
├── dashboard/app.py
├── examples/dual_component_recipe.json
├── notebooks/01_profile_walkthrough.ipynb
├── reports/verification.json
├── src/ion_profile/
│   ├── fitting.py       # non-negative dose fitting
│   ├── models.py        # validated physical inputs
│   ├── physics.py       # profiles, integration, junctions
│   ├── recipe.py        # JSON configuration
│   └── verification.py # analytical invariants
└── tests/

Author

Xinya Lu — Chemical Engineering background; M.Sc. AI for Science candidate at the National University of Singapore.

Created as an honest computational demonstration of semiconductor process learning: visible assumptions, explicit units, reproducible calculations, and no fabricated laboratory work.

About

Auditable analytical ion-implant profiles, diffusion broadening, dose conservation, and interactive recipe exploration.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages