ViennaLS
Loading...
Searching...
No Matches
lsOxidationPresets.hpp
Go to the documentation of this file.
1#pragma once
2
4
5namespace viennals {
6
30 params.diffusionCoefficient = 0.157; // µm²/hr, B/2 = D_eff
31 params.reactionRate = 0.74; // µm/hr, B/A = k_s
32 params.transferCoefficient = 100.; // large → surface conc. ≈ C*
33 params.equilibriumConcentration = 1.;
34 params.oxidantMoleculeDensity = 1.;
35 params.expansionCoefficient = 2.27; // SiO2/Si volume ratio
36 params.temperature = 1273.15; // 1000 °C in K
37 params.reactionActivationVolume = 1.76e-35; // m³, stress activation for k_s
38 params.diffusionActivationVolume = 0.;
39 return params;
40 }
41
47 params.viscosity = 1.e10; // Pa·hr, effective oxide viscosity
48 params.shearModulus = 3.e10; // Pa
49 params.shearActivationVolume = 3.e-28; // m^3 (300 A^3)
50 params.stressTimeStep = timeStep;
51 return params;
52 }
53
61 static OxidationMaskParameters siliconNitrideMask(double temperatureCelsius) {
62 static constexpr double table[4][3] = {
63 // °C, eta_N (Pa hr = P / 10 / 3600), V_N (m^3)
64 {800., 6.0e16 / 36000., 120e-30},
65 {900., 3.1e16 / 36000., 130e-30},
66 {1000., 5.0e15 / 36000., 170e-30},
67 {1100., 1.1e15 / 36000., 350e-30}};
68 const double inverse = 1. / (temperatureCelsius + 273.15);
69 int k = 0; // segment [k, k + 1]
70 while (k < 2 && temperatureCelsius > table[k + 1][0])
71 ++k;
72 const double i0 = 1. / (table[k][0] + 273.15);
73 const double i1 = 1. / (table[k + 1][0] + 273.15);
74 const double w = (inverse - i0) / (i1 - i0);
75 const double wT = std::clamp((temperatureCelsius - table[k][0]) /
76 (table[k + 1][0] - table[k][0]),
77 0., 1.);
79 params.youngModulus = 270e9; // Pa
80 params.poissonRatio = 0.27;
81 params.viscosity = std::exp((1. - w) * std::log(table[k][1]) +
82 w * std::log(table[k + 1][1]));
84 (1. - wT) * table[k][2] + wT * table[k + 1][2];
85 return params;
86 }
90};
91
92} // namespace viennals
Definition lsAdvect.hpp:41
Parameters for the Cartesian-grid oxide deformation model.
Definition lsOxidationDeformation.hpp:38
double viscosity
Definition lsOxidationDeformation.hpp:39
double shearActivationVolume
Definition lsOxidationDeformation.hpp:65
double shearModulus
Definition lsOxidationDeformation.hpp:52
double stressTimeStep
Definition lsOxidationDeformation.hpp:54
Nitride (Si₃N₄) mask of the LOCOS process. The grid points inside the mask join the oxide mechanics s...
Definition lsOxidationMask.hpp:18
double poissonRatio
Definition lsOxidationMask.hpp:22
double shearActivationVolume
Definition lsOxidationMask.hpp:27
double viscosity
Definition lsOxidationMask.hpp:26
double youngModulus
Definition lsOxidationMask.hpp:21
Parameters for the steady oxidant diffusion model used by OxidationDiffusion.
Definition lsOxidationDiffusion.hpp:56
double transferCoefficient
Definition lsOxidationDiffusion.hpp:59
double temperature
Definition lsOxidationDiffusion.hpp:74
double reactionActivationVolume
Definition lsOxidationDiffusion.hpp:75
double diffusionActivationVolume
Definition lsOxidationDiffusion.hpp:80
double diffusionCoefficient
Definition lsOxidationDiffusion.hpp:57
double reactionRate
Definition lsOxidationDiffusion.hpp:58
double oxidantMoleculeDensity
Definition lsOxidationDiffusion.hpp:61
double equilibriumConcentration
Definition lsOxidationDiffusion.hpp:60
double expansionCoefficient
Definition lsOxidationDiffusion.hpp:62
Named parameter presets for common thermal oxidation processes.
Definition lsOxidationPresets.hpp:24
static OxidationMaskParameters siliconNitrideMask(double temperatureCelsius)
LPCVD Si3N4 mask: E = 270 GPa, nu = 0.27, and Maxwell creep with an Eyring viscosity from Senez et al...
Definition lsOxidationPresets.hpp:61
static OxidationMaskParameters siliconNitrideMask1000C()
Definition lsOxidationPresets.hpp:87
static OxidationDeformationParameters oxideMechanics1000C(double timeStep)
Thermal SiO2 viscoelastic mechanics at 1000 °C. Viscosity ~1×10¹⁰ Pa·hr (Irene 1978),...
Definition lsOxidationPresets.hpp:45
static OxidationParameters wet1000CDealGrove100()
Wet oxidation at 1000 °C (Deal-Grove linear-parabolic coefficients). B/2 = D_eff = 0....
Definition lsOxidationPresets.hpp:28