Repository navigation
Add oxidation solver with coupled diffusion, deformation, and GPU acceleration - #154
Merged
Merged
Conversation
…ion in lsOxidation
…ocity interpolation, convergence warnings
…ionModel coupling
Member
|
The LOCOS example doesn't seem to work out of the box for me. I get the following error thrown: |
Member
Author
Sorry, missed updating the LOCOS example in ViennaLS because I was using the example in ViennaPS for testing and development. The example has been updated, along with python bindings and a python version of the example. |
tobre1
approved these changes
Jun 16, 2026
tobre1
left a comment
Member
There was a problem hiding this comment.
I modified the parameter interface a bit, so you'll have to probably also adjust it in ViennaPS
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.
Adds a physics-based silicon oxidation model targeting LOCOS (Local Oxidation of Silicon) and fin-/step-/trench-oxidation geometries. The solver tightly couples oxidant diffusion, oxide viscous flow (Stokes), and nitride mask bending/creep into a single iterative loop.
New headers (include/viennals/):
lsOxidation.hpp: top-level entry point; wires up the coupled solver
lsOxidationDiffusion.hpp: FEM diffusion solver (Deal.II back-end)
lsOxidationDeformation.hpp: Stokes flow for oxide viscous deformation
lsOxidationMask.hpp: nitride mask bending and Arrhenius creep
lsOxidationModel.hpp: SIMPLE-iteration coupling loop
lsOxidationSolverBase.hpp: shared base for all sub-solvers
lsOxidationPresets.hpp: material presets for common oxidation conditions
lsOxidationBiCGSTAB.cuh / lsOxidationBiCGSTABInterface.hpp: GPU BiCGSTAB linear solver (CUDA Runtime; no OptiX dependency)
GPU back-end (gpu/):
lsOxidationBiCGSTABKernels.cu: CUDA kernels; enabled via VIENNALS_USE_GPU; falls back to CPU when unavailable
Physics highlights:
Tests added for OxidationModel (regression) and OxidationConvergence (grid-refinement order check).
Documentation: docs/OxidationSolver.md covers the governing equations and solver parameters.