|
| const std::unordered_map< std::size_t, T > & | getConcentrationCache () const |
| void | setConcentrationCache (std::unordered_map< std::size_t, T > cache) |
| | Oxidation ()=default |
| | ~Oxidation () |
| | Oxidation (SmartPointer< Domain< T, D > > passedSiInterface, SmartPointer< Domain< T, D > > passedAmbientInterface, SmartPointer< Domain< T, D > > passedMaskInterface=nullptr) |
| void | setGpuMode (GpuMode mode) |
| void | setGpuPreconditioner (GpuPreconditioner preconditioner) |
| void | setSiInterface (SmartPointer< Domain< T, D > > si) |
| void | setAmbientInterface (SmartPointer< Domain< T, D > > ambient) |
| void | setMaskInterface (SmartPointer< Domain< T, D > > mask) |
| void | setOxidationParameters (OxidationParameters params) |
| void | setDeformationParameters (OxidationDeformationParameters params) |
| void | setCouplingParameters (OxidationCouplingParameters params) |
| void | setMaskParameters (OxidationMaskParameters params) |
| void | setSpatialScheme (SpatialSchemeEnum scheme) |
| | Set the spatial integration scheme for all advections.
|
| void | setTemporalScheme (TemporalSchemeEnum scheme) |
| | Set the temporal integration scheme for all advections.
|
| void | setMaskCouplingIterations (unsigned iterations) |
| void | setMaskCouplingTolerance (T tolerance) |
| void | setSolveBounds (const IndexType &minIndex, const IndexType &maxIndex) |
| | Set the Cartesian index bounding box for the diffusion and deformation solves. If not set, bounds are auto-computed from the level-set narrow band.
|
| void | setMaskBendingBounds (const IndexType &minIndex, const IndexType &maxIndex) |
| | Set the Cartesian index bounding box for the mask bending solve (LOCOS).
|
| SmartPointer< OxidationDiffusion< T, D > > | getDiffusionField () const |
| | Return the diffusion field populated by the most recent apply() call.
|
| SmartPointer< OxidationDeformation< T, D > > | getDeformationField () const |
| | Return the deformation field populated by the most recent apply() call.
|
| SmartPointer< OxidationMaskBending< T, D > > | getMaskBendingField () const |
| | Return the mask bending field (null when no mask is set).
|
| unsigned | getMaskCouplingIterations () const |
| T | getMaskCouplingResidual () const |
| T | getLastMaxVelocity () const |
| | Maximum interface velocity (µm/hr) from the most recent CFL-limited step.
|
| void | apply (T advectionTime) |
| | Execute one oxidation time step of duration advectionTime.
|
| T | applyCFLLimited (T requestedTime, T cflFactor) |
| | Execute one CFL-limited oxidation step; returns the actual time advanced.
|
template<class
T, int D>
class viennals::Oxidation< T, D >
Unified oxidation time-step orchestrator.
Couples diffusion, viscoelastic deformation, and (optionally) mask bending into a single CFL-limited step. When a mask interface is provided the solver operates in LOCOS mode; without one it performs standard planar or step oxidation.
Standard mode (no mask):
- Diffusion+deformation coupled solve (OxidationModel)
- Ambient interface advection (deformation velocity)
- Si/SiO2 reaction interface advection (diffusion velocity)
- Interior fill for warm-start persistence
LOCOS mode (mask provided):
- Diffusion+deformation coupled solve (OxidationModel)
- Nitride mask bending solve (OxidationMaskBending) + coupling loop
- Pre-advection boolean clip (ambientInterface \ maskInterface)
- Ambient interface advection (constrained: mask-coupled under nitride)
- Si/SiO2 reaction interface advection (diffusion velocity)
- Mask advection (mask bending velocity)
- Interior fills + post-advection boolean clip
Usage (standard):
ox->setOxidationParameters(oxParams);
ox->setDeformationParameters(defParams);
ox->apply(0.1);
static auto New(Args &&...args)
Definition lsOxidation.hpp:215
Usage (LOCOS):
ox->setOxidationParameters(oxParams);
ox->setDeformationParameters(defParams);
ox->setMaskParameters(maskParams);
ox->setSolveBounds(minIdx, maxIdx);
ox->setMaskBendingBounds(maskMinIdx, maskMaxIdx);
ox->applyCFLLimited(0.35, 0.499);
ox->getDiffusionField()->getConcentration(pt);