Skip to content

Commit

Permalink
Update docs
Browse files Browse the repository at this point in the history
  • Loading branch information
tobre1 committed Aug 8, 2024
1 parent e8db434 commit ab688e5
Show file tree
Hide file tree
Showing 5 changed files with 103 additions and 30 deletions.
6 changes: 3 additions & 3 deletions docs/inst/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand All @@ -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

Expand All @@ -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
Expand Down
55 changes: 55 additions & 0 deletions docs/models/prebuilt/PETEOSDeposition.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
---
layout: default
title: PETEOSCVD
parent: Pre-Built Models
grand_parent: Process Models
nav_order: 5
---
<script>
MathJax = {
tex: {
inlineMath: [['$', '$'], ['\\(', '\\)']]
}
};
</script>
<script id="MathJax-script" async
src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-chtml.js">
</script>

# TEOS Plasma-Enhanced (PE) Chemical Vapr Deposition (CVD)
{: .fs-9 .fw-500}

```c++
#include <psTEOSPECVD.hpp>
```
---

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 |
28 changes: 28 additions & 0 deletions docs/models/prebuilt/SF6O2Etching.md
Original file line number Diff line number Diff line change
Expand Up @@ -201,6 +201,34 @@ parameters.Mask.rho = 500.
```
</details>

## SF<sub>6</sub> Etching

The SF<sub>6</sub> etching model is a simplified version of the SF<sub>6</sub>O<sub>2</sub> etching model. The model only considers the etching of silicon by fluorine ions. The model is based on the same principles as the SF<sub>6</sub>O<sub>2</sub> etching model, but without the presence of oxygen. The model is implemented in the same way as the SF<sub>6</sub>O<sub>2</sub> 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<NumericType>::lowest())
```
| Parameter | Description | Type |
|----------------------|--------------------------------------------------------------------------|----------------|
| `ionFlux` | Ion flux for the SF<sub>6</sub> etching process. | `double` |
| `etchantFlux` | Etchant flux for the SF<sub>6</sub> 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 10<sup>15</sup> / cm<sup>2</sup> /s<sup>2</sup> .
The detailed parameters can be accessed and modified in the same way as for the SF<sub>6</sub>O<sub>2</sub> etching model.
## Related Examples
* [Hole Etching](https://github.com/ViennaTools/ViennaPS/tree/master/examples/holeEtching)
Expand Down
22 changes: 0 additions & 22 deletions docs/models/prebuilt/TEOSDeposition.md

This file was deleted.

22 changes: 17 additions & 5 deletions docs/models/prebuilt/singleParticle.md
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand All @@ -33,14 +33,18 @@ SingleParticleProcess(const NumericType rate,
const NumericType sourceDistributionPower,
const std::vector<Material> maskMaterials)

SingleParticleProcess(std::unordered_map<Material, NumericType> 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__:
Expand All @@ -56,6 +60,10 @@ auto model = SmartPointer<SingleParticleProcess<NumericType, D>>::New(1., 0.1, 1
...
// for multiple mask materials
auto model = SmartPointer<SingleParticleProcess<NumericType, D>>::New(1., 0.1, 1., {mask1, mask2});
// for material specific rates
std::unordered_map<Material, NumericType> materialRates = {{Material::Si, 1.}, {Material::SiO2, 0.5}};
auto model = SmartPointer<SingleParticleProcess<NumericType, D>>::New(materialRates, 0.1, 1.);
...
```
</details>
Expand All @@ -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.)
...
```
</details>
Expand Down

0 comments on commit ab688e5

Please sign in to comment.