Add ion implantation and thermal annealing process models with a public model database - #236
Open
FilipovicLado wants to merge 19 commits into
Open
Add ion implantation and thermal annealing process models with a public model database#236FilipovicLado wants to merge 19 commits into
FilipovicLado wants to merge 19 commits into
Conversation
New process models: - IonImplantation: wraps csImplant as a psProcess with zero duration; supports Pearson IV and Gaussian profiles, tilt angle, dose control, mask/screen materials, damage field, and optional embedded boundary reconstruction for sub-grid surface offsets on tilted interfaces - Anneal: thermal anneal solver driven by csAnneal; Arrhenius diffusivity, solid solubility capping, I/V defect coupling, transient enhanced diffusion (TED), arbitrary temperature schedules Supporting additions: - psImplantProfile, psImplantPearson, psImplantTable, psImplantDamage, psImplantParams, psImplantConstants, psImplantSetup - psAnneal, psAnnealParams, psAnnealSetup - psModelDb / psModelDbLookup / psModelNames for table-driven profile lookup - psUnits: physical unit helpers Changes to existing files: - psDomain: add withEmbeddedBoundaries parameter to generateCellSet() - psProcess: defer AUTO flux-engine resolution to apply() so callback-only and geometric models never enter the flux engine code path - viennaps.hpp: include new headers; CMakeLists.txt: install them Tests: anneal, implantProfile, ionImplant (includes embedded boundary depth test) Example: ionImplantation Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Ga, In, As, Sb, Bi) from Pichler (2004) and Ghoshtagore (1971)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds ion implantation and thermal annealing process models to ViennaPS, driven
by a bundled, literature-based model database, and building on the ViennaCS
2.1.0 anneal solver. This is the ViennaPS-side companion to the implant/anneal
kernels released in ViennaCS 2.1.0.
What this adds
Ion implantation (
psIonImplantation,psImplant*)and Hobler damage, driven from the model database by species/energy.
Thermal annealing (
psAnneal,psAnnealParams,psAnnealSetup)csAnnealsolver: intrinsic Arrheniusdiffusion, electrical activation limited by solid solubility, and an
instantaneous effective transient-enhanced-diffusion term driven by the
implant damage field. Defect coupling is enabled only when the parameters
carry defect physics.
Model database (
modeldb/,psModelDb,psModelDbLookup)dopants (B, P, Al, Ga, In, As, Sb, Bi) from Pichler (2004) and Ghoshtagore
(1971), documented in
modeldb/anneal/PROVENANCE.md. Boron and phosphorusadditionally have solid solubility, effective-TED parameters, and MCIMPL-II
crystalline implant + Hobler damage tables; the other six are anneal-diffusion
only.
range and refuses to extrapolate on the shape axes (implant energy and tilt),
with distinct messages for a dopant/material absent from the database versus a
requested condition outside the tabulated range.
Bindings, examples, tests
ionImplantation(config-driven implant + anneal),pImplantManual,and
pnJunction(2D implant/anneal to a net-doping junction).anneal,ionImplant,implantProfile.Dependencies
Testing
ctestpasses (39/39).