Skip to content

Add thermal silicon oxidation models - #230

Merged
FilipovicLado merged 68 commits into
masterfrom
oxide-growth
Jun 23, 2026
Merged

Add thermal silicon oxidation models#230
FilipovicLado merged 68 commits into
masterfrom
oxide-growth

Conversation

@FilipovicLado

Copy link
Copy Markdown
Member

Adds thermal silicon oxidation simulation to ViennaPS via the new Oxidation process model, which wraps the coupled diffusion–deformation engine from ViennaLS.

New process model

Oxidation<T,D> : thermal Si oxidation based on the Deal-Grove model. Inputs: temperature (°C), time (hours), oxidant type (dry/wet), pressure, and crystal orientation (Si100, Si110, Si111, PolySi). Uses a built-in Arrhenius table for standard 1 atm low-doping silicon. Automatically seeds a native-oxide layer if no SiO2 level set is present. Exposes GPU BiCGSTAB acceleration, LOCOS mask-contact mode, and full solver tolerance/iteration control.

New examples

Each example ships with C++ and Python versions, config.txt, and README.

Example Geometry Notes
finOxidation Isolated Si fin 2D/3D; dry and wet
stepOxidation Si step Deal-Grove rate comparison
trenchOxidation Narrow trench Bird's-beak formation
locosOxidation LOCOS stack Nitride mask, full bird's-beak, field oxide

Python bindings

New types exposed: Oxidation, OxidantType, SiliconOrientation. Stubs updated for 2D and 3D.

Tests

New test suite under tests/oxidation/ covering dry/wet Arrhenius rates and Si orientation ratios.

Infrastructure

  • ViennaLS minimum version bumped to 5.8.x (requires lsOxidation, lsOxidationDiffusion, lsOxidationDeformation)
  • Linux wheel built with VIENNALS_USE_GPU=ON for GPU-accelerated BiCGSTAB
  • CI: ViennaLS fallback build from source; CUDA runtime libs excluded from auditwheel

FilipovicLado and others added 30 commits May 26, 2026 15:15
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>
@FilipovicLado
FilipovicLado merged commit f31741b into master Jun 23, 2026
18 checks passed
@FilipovicLado
FilipovicLado deleted the oxide-growth branch July 26, 2026 21:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant