diff --git a/docs/inst/index.md b/docs/inst/index.md index d6f959a6..996a6dcc 100644 --- a/docs/inst/index.md +++ b/docs/inst/index.md @@ -49,7 +49,7 @@ The `-G Ninja` option can be omitted if you prefer to use _Unix Makefiles_ as th Pre-built python packages are now available in the TestPyPi index for most common operating systems. To download the package, run the following command: ```bash -pip install -i https://test.pypi.org/simple/ ViennaPS-Python +pip install ViennaPS ``` If there is no pre-built package available for your operating system, you can build the package yourself using the instructions below. @@ -67,7 +67,7 @@ pip install . ``` {: .note} -> Some functionalities of the ViennaPS Python module only work in combination with the ViennaLS Python module. It is therefore recommended to additionally install the ViennaLS Python module on your system. Instructions to do so can be found in the [ViennaLS Git Repository](https://github.com/ViennaTools/viennals). +> Some functionalities of the ViennaPS Python module only work in combination with the ViennaLS Python module. It is therefore necessary to additionally install the ViennaLS Python module on your system. Instructions to do so can be found in the [ViennaLS Git Repository](https://github.com/ViennaTools/viennals). ## Using the Python package @@ -88,7 +88,7 @@ We recommend using [CPM.cmake](https://github.com/cpm-cmake/CPM.cmake) to consum * Installation with CPM ```cmake - CPMAddPackage("gh:viennatools/viennaps@3.0.1") + CPMAddPackage("gh:viennatools/viennaps@3.1.0") ``` * With a local installation diff --git a/docs/models/prebuilt/PETEOSDeposition.md b/docs/models/prebuilt/PETEOSDeposition.md new file mode 100644 index 00000000..040c1d47 --- /dev/null +++ b/docs/models/prebuilt/PETEOSDeposition.md @@ -0,0 +1,55 @@ +--- +layout: default +title: PETEOSCVD +parent: Pre-Built Models +grand_parent: Process Models +nav_order: 5 +--- + + + +# TEOS Plasma-Enhanced (PE) Chemical Vapr Deposition (CVD) +{: .fs-9 .fw-500} + +```c++ +#include +``` +--- + +The TEOS PE CVD process is a deposition process with an additional plasma-enhanced component, which supplies directional ions during the process. The process is specified by two particle species: the TEOS precursor radicals and the ions. The depostion rate is controlled by a reaction order for both radicals and ions, where the final surface velocity $v$ follows: +\begin{equation} + v = R_{rad} \cdot \Gamma_{rad}^{o_{rad}} + R_{ion} \cdot \Gamma_{ion}^{o_{ion}} +\end{equation} +where $R_{rad}$ and $R_{ion}$ are the rates of the radicals and ions, respectively, and $\Gamma_{rad}$ and $\Gamma_{ion}$ are the fluxes of the radicals and ions, respectively. The exponents $o_{rad}$ and $o_{ion}$ are the reaction orders of the radicals and ions, respectively. + +The sticking probability of the TEOS precursor radicals and the ions can be specified, as well as the exponent of the power cosine distribution of the ions. The TEOS radicals reflect diffusively from the surface, while the ions can reflect near specularly from the surface with a minimum angle specified. + +## Implementation + +```c++ +TEOSPECVD(const NumericType pRadicalSticking, const NumericType pRadicalRate, + const NumericType pIonRate, const NumericType pIonExponent, + const NumericType pIonSticking = 1., + const NumericType pRadicalOrder = 1., + const NumericType pIonOrder = 1., + const NumericType pIonMinAngle = 0.) +``` + +| Parameter | Description | Default Value | +|----------------------------|--------------------------------------------------------|------------------------| +| `pRadicalSticking` | Sticking probability of the TEOS precursor radicals | 1.0 | +| `pRadicalRate` | Rate of the TEOS precursor radicals | 1.0 | +| `pIonRate` | Rate of the ions | 1.0 | +| `pIonExponent` | Exponent power cosine source distribution of the ions | 1.0 | +| `pIonSticking` | Sticking probability of the ions | 1.0 | +| `pRadicalOrder` | Reaction order of the TEOS precursor radicals | 1.0 | +| `pIonOrder` | Reaction order of the ions | 1.0 | +| `pIonMinAngle` | Minimum specular reflection angle of the ions | 0.0 | diff --git a/docs/models/prebuilt/SF6O2Etching.md b/docs/models/prebuilt/SF6O2Etching.md index 46b3bac3..22800b19 100644 --- a/docs/models/prebuilt/SF6O2Etching.md +++ b/docs/models/prebuilt/SF6O2Etching.md @@ -201,6 +201,34 @@ parameters.Mask.rho = 500. ``` +## SF6 Etching + +The SF6 etching model is a simplified version of the SF6O2 etching model. The model only considers the etching of silicon by fluorine ions. The model is based on the same principles as the SF6O2 etching model, but without the presence of oxygen. The model is implemented in the same way as the SF6O2 etching model, but with the following parameters: + +```c++ + +SF6Etching(const double ionFlux, const double etchantFlux, + const NumericType meanEnergy /* eV */, + const NumericType sigmaEnergy /* eV */, // 5 parameters + const NumericType ionExponent = 300., + const NumericType etchStopDepth = + std::numeric_limits::lowest()) +``` + +| Parameter | Description | Type | +|----------------------|--------------------------------------------------------------------------|----------------| +| `ionFlux` | Ion flux for the SF6 etching process. | `double` | +| `etchantFlux` | Etchant flux for the SF6 etching process. | `double` | +| `meanEnergy` | Mean energy of ions (eV). | `NumericType` | +| `sigmaEnergy` | Energy distribution standard deviation (eV). | `NumericType` | +| `ionExponent` | (Optional) Exponent in the power cosine source distribution of ions for initial directions. Default is set to 300. | `NumericType` | +| `etchStopDepth` | (Optional) Depth at which etching should stop. Default is negative infinity.| `NumericType` | + +{: .note} +> All flux values are units 1015 / cm2 /s2 . + +The detailed parameters can be accessed and modified in the same way as for the SF6O2 etching model. + ## Related Examples * [Hole Etching](https://github.com/ViennaTools/ViennaPS/tree/master/examples/holeEtching) diff --git a/docs/models/prebuilt/TEOSDeposition.md b/docs/models/prebuilt/TEOSDeposition.md deleted file mode 100644 index c1f97b1e..00000000 --- a/docs/models/prebuilt/TEOSDeposition.md +++ /dev/null @@ -1,22 +0,0 @@ ---- -layout: default -title: TEOS Deposition -parent: Pre-Built Models -grand_parent: Process Models -nav_order: 5 ---- - -# TEOS Deposition -{: .fs-9 .fw-500} - -```c++ -#include -``` ---- - -Coming soon -{: .label .label-yellow} - -## Related Examples - -* [TEOS Trench Deposition](https://github.com/ViennaTools/ViennaPS/tree/master/examples/TEOSTrenchDeposition) diff --git a/docs/models/prebuilt/singleParticle.md b/docs/models/prebuilt/singleParticle.md index 6ad190f2..930ccf9b 100644 --- a/docs/models/prebuilt/singleParticle.md +++ b/docs/models/prebuilt/singleParticle.md @@ -18,7 +18,7 @@ The single particle process is a simple process model that simulates either etch The rate can be either negative or positive, corresponding to etching or deposition, respectively. The sticking coefficient is the probability that a particle will stick to the surface upon impact, thus controlling the number of diffusive reflections from the surface. The exponent in the power cosine distribution of the initial particle directions is a measure of the angular spread of the initial particle directions. A higher exponent corresponds to a more focused beam of particles. -Additionally, mask materials can be specified, where the rate is assumed to be zero. +Additionally, mask materials can be specified, where the rate is assumed to be zero, or map between material and rate can be defined. ## Implementation @@ -33,14 +33,18 @@ SingleParticleProcess(const NumericType rate, const NumericType sourceDistributionPower, const std::vector maskMaterials) +SingleParticleProcess(std::unordered_map materialRates, + NumericType stickingProbability, + NumericType sourceDistributionPower) + ``` | Parameter | Description | Default Value | |----------------------------|--------------------------------------------------------|------------------------| -| `rate` | Rate of the single particle process | 1.0 | -| `stickingProbability` | Sticking probability of particles | 1.0 | -| `sourceDistributionPower` | Power of the power cosine source distribution | 1.0 | -| `maskMaterial` | Mask material | `Material::None` | +| `rate` | Default rate of the single particle process, if no material specific rates are defined | 1.0 | +| `stickingProbability` | Sticking probability of particles | 1.0 | +| `sourceDistributionPower` | Power of the power cosine source distribution | 1.0 | +| `maskMaterial` | Mask material | `Material::None` | __Example usage__: @@ -56,6 +60,10 @@ auto model = SmartPointer>::New(1., 0.1, 1 ... // for multiple mask materials auto model = SmartPointer>::New(1., 0.1, 1., {mask1, mask2}); + +// for material specific rates +std::unordered_map materialRates = {{Material::Si, 1.}, {Material::SiO2, 0.5}}; +auto model = SmartPointer>::New(materialRates, 0.1, 1.); ... ``` @@ -68,6 +76,10 @@ Python ```python ... model = vps.SingleParticleProcess(rate=1., stickingProbability=0.1, sourceExponent=1., maskMaterials=[maskMaterial]) + +# using material specific rates +rates = {vps.Material.Si: 1., vps.Material.SiO2: 0.5} +model = vps.SingleParticleProcess(materialRates=rates, stickingProbability=0.1, sourceExponent=1.) ... ```