Skip to content

Commit

Permalink
Update documentation
Browse files Browse the repository at this point in the history
  • Loading branch information
tobre1 committed Feb 25, 2025
1 parent 7592f61 commit 4d5ae29
Show file tree
Hide file tree
Showing 63 changed files with 713 additions and 484 deletions.
2 changes: 1 addition & 1 deletion docs/_site/assets/css/just-the-docs-dark.css.map

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion docs/_site/assets/css/just-the-docs-default.css.map

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion docs/_site/assets/css/just-the-docs-light.css.map

Large diffs are not rendered by default.

335 changes: 171 additions & 164 deletions docs/_site/assets/js/search-data.json

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion docs/_site/deps/index.html

Large diffs are not rendered by default.

36 changes: 25 additions & 11 deletions docs/_site/domain/functions.html

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion docs/_site/domain/index.html

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion docs/_site/domain/material.html

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion docs/_site/domain/surface.html

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion docs/_site/domain/volume.html

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion docs/_site/examples/index.html

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion docs/_site/general/index.html

Large diffs are not rendered by default.

39 changes: 35 additions & 4 deletions docs/_site/geo/basic/fin.html

Large diffs are not rendered by default.

43 changes: 39 additions & 4 deletions docs/_site/geo/basic/hole.html

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion docs/_site/geo/basic/index.html

Large diffs are not rendered by default.

47 changes: 21 additions & 26 deletions docs/_site/geo/basic/plane.html

Large diffs are not rendered by default.

34 changes: 23 additions & 11 deletions docs/_site/geo/basic/stack.html

Large diffs are not rendered by default.

34 changes: 23 additions & 11 deletions docs/_site/geo/basic/trench.html

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion docs/_site/geo/custom.html

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion docs/_site/geo/gdsimport.html

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion docs/_site/geo/index.html

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion docs/_site/index.html

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion docs/_site/inst/index.html

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion docs/_site/misc/extrusion.html

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion docs/_site/misc/index.html

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion docs/_site/misc/logging.html

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion docs/_site/misc/parsing.html

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion docs/_site/misc/planarize.html

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion docs/_site/misc/pointData.html

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion docs/_site/misc/units.html

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion docs/_site/models/custom/advectionCallback.html

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion docs/_site/models/custom/index.html

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion docs/_site/models/custom/particle.html

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion docs/_site/models/custom/sourceDirection.html

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion docs/_site/models/custom/surfaceModel.html

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion docs/_site/models/custom/velocityField.html

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion docs/_site/models/index.html

Large diffs are not rendered by default.

33 changes: 14 additions & 19 deletions docs/_site/models/prebuilt/SF6O2Etching.html

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion docs/_site/models/prebuilt/TEOSPECVD.html

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion docs/_site/models/prebuilt/anisotropic.html

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion docs/_site/models/prebuilt/directional.html

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion docs/_site/models/prebuilt/fluorocarbonEtching.html

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion docs/_site/models/prebuilt/index.html

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion docs/_site/models/prebuilt/isotropic.html

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion docs/_site/models/prebuilt/multiParticle.html

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion docs/_site/models/prebuilt/oxideRegrowth.html

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion docs/_site/models/prebuilt/singleParticle.html

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion docs/_site/output/index.html

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion docs/_site/output/levelset.html

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion docs/_site/output/surface.html

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion docs/_site/output/volume.html

Large diffs are not rendered by default.

16 changes: 8 additions & 8 deletions docs/_site/process/index.html

Large diffs are not rendered by default.

32 changes: 23 additions & 9 deletions docs/domain/functions.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,21 +12,31 @@ nav_order: 3

## Constructors
```c++
// namespace viennaps
Domain()
Domain(SmartPointer<Domain> passedDomain)
Domain(SmartPointer<viennals::Domain<NumericType, D>> passedLevelSet, bool generateCellSet = false,
const NumericType passedCellSetDepth = 0., const bool passedCellSetPosition = false)
Domain(lsDomainsType passedLevelSets, bool generateCellSet = false,
const NumericType passedCellSetDepth = 0., const bool passedCellSetPosition = false)
Domain(SmartPointer<Domain> passedDomain) // deep copy contructor
Domain(SmartPointer<viennals::Domain<NumericType, D>> passedLevelSet)
Domain(std::vector<viennals::Domain<NumericType, D>> passedLevelSets)

// Configure DomainSetup (v3.3.0) for basic geometry builders
Domain(NumericType gridDelta, NumericType xExtent,
BoundaryType boundary = BoundaryType::REFLECTIVE_BOUNDARY) // 2D only
Domain(NumericType gridDelta, NumericType xExtent, NumericType yExtent = 0.0,
BoundaryType boundary = BoundaryType::REFLECTIVE_BOUNDARY)
Domain(const Setup &setup)
```
## Member Functions
```c++
void setup(const Setup &setup)
void setup(NumericType gridDelta, NumericType xExtent, NumericType yExtent = 0,
BoundaryType boundary = BoundaryType::REFLECTIVE_BOUNDARY)
void deepCopy(SmartPointer<Domain> passedDomain)
void insertNextLevelSet(SmartPointer<viennals::Domain<NumericType, D>> passedLevelSet, bool wrapLowerLevelSet = true)
void insertNextLevelSetAsMaterial(SmartPointer<viennals::Domain<NumericType, D>> passedLevelSet, const Material material,
bool wrapLowerLevelSet = true)
void insertNextLevelSet(SmartPointer<viennals::Domain<NumericType, D>> passedLevelSet,
bool wrapLowerLevelSet = true)
void insertNextLevelSetAsMaterial(SmartPointer<viennals::Domain<NumericType, D>> passedLevelSet,
const Material material, bool wrapLowerLevelSet = true)
void duplicateTopLevelSet(const Material material = Material::None)
void removeTopLevelSet()
void removeLevelSet(unsigned int idx, bool removeWrapped = true)
Expand All @@ -39,11 +49,15 @@ auto &getLevelSets() const
auto &getMaterialMap() const
auto &getCellSet() const
auto &getGrid() const
auto getGridDelta() const
auto &getSetup()
auto getBoundingBox() const
auto getBoundaryConditions() const
void print() const
void saveLevelSetMesh(std::string name, int width = 1)
void saveSurfaceMesh(std::string name, bool addMaterialIds = true)
void saveVolumeMesh(std::string name)
void saveVolumeMesh(std::string name, double wrappingLayerEpsilon = 1e-2)
void saveHullMesh(std::string name, double wrappingLayerEpsilon = 1e-2)
void saveLevelSets(std::string fileName) const
void clear()
```
71 changes: 56 additions & 15 deletions docs/geo/basic/fin.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
layout: default
title: Fin Geometry
parent: Basic Geometries
parent: Geometry Builders
grand_parent: Creating a Geometry
nav_order: 4
---
Expand All @@ -10,14 +10,26 @@ nav_order: 4
{: .fs-9 .fw-500 }

```c++
#include <psMakeFin.hpp>
#include <geometries/psMakeFin.hpp>
```
---

The `MakeFin` class generates a fin geometry extending in the z (3D) or y (2D) direction, centered at the origin with specified dimensions in the x and y directions. The fin may incorporate periodic boundaries in the x and y directions (limited to 3D). Users can define the width and height of the fin, and it can function as a mask, with the specified material exclusively applied to the bottom of the fin, while the upper portion adopts the mask material.

```c++
// namespace viennaps

// with DomainSetup configured (v3.3.0)
MakeFin(DomainType domain,
NumericType finWidth,
NumericType finHeight,
NumericType finTaperAngle,
NumericType maskHeight = 0.,
NumericType maskTaperAngle = 0.,
bool halfFin = false,
Material material = Material::Si,
Material maskMaterial = Material::Mask)

MakeFin(DomainType domain,
const NumericType gridDelta,
const NumericType xExtent,
Expand All @@ -27,21 +39,31 @@ MakeFin(DomainType domain,
const NumericType baseHeight = 0.,
const bool periodicBoundary = false,
const bool makeMask = false,
const Material material = Material::None)
const Material material = Material::Si)
```
| Parameter | Description | Type |
|------------------------|---------------------------------------------------------------------|--------------------------------|
| `domain` | Specifies the type of domain for the fin geometry. | `SmartPointer<Domain<NumericType, D>` |
| `gridDelta` | Represents the grid spacing or resolution used in the simulation. | `NumericType` |
| `xExtent` | Defines the extent of the fin geometry in the x-direction. | `NumericType` |
| `yExtent` | Specifies the extent of the fin geometry in the y-direction. | `NumericType` |
| `finWidth` | Sets the width of the fin. | `NumericType` |
| `finHeight` | Determines the height of the fin. | `NumericType` |
| `baseHeight` | (Optional) Sets the base height of the fin. Default is set to 0. | `NumericType` |
| `periodicBoundary` | (Optional) If set to true, enables periodic boundaries in both x and y directions. Default is set to false. | `bool` |
| `makeMask` | (Optional) If set to true, allows the fin to function as a mask, with specified material applied only to the bottom. Default is set to false. | `bool` |
| `material` | (Optional) Specifies the material used for the fin. Default is set to `Material::None`. | `Material` |
| Parameter | Type | Description | Applicable Constructor |
|---------------------|---------------|--------------|------------------------|
| `domain` | `psDomainType` | The simulation domain. | Both |
| `finWidth` | `NumericType` | Width of the fin. | Both |
| `finHeight` | `NumericType` | Height of the fin. | Both (ignored if `makeMask = true`) |
| `finTaperAngle` | `NumericType` | Taper angle of the fin (default: `0.`). | Both (ignored if `makeMask = true`) |
| `maskHeight` | `NumericType` | Height of the mask (default: `0.`). | First constructor only |
| `maskTaperAngle` | `NumericType` | Taper angle of the mask (default: `0.`). | First constructor only |
| `halfFin` | `bool` | If `true`, the fin is halved along the x-axis. | First constructor only |
| `material` | `Material` | Material of the fin (default: `Material::Si`). | Both |
| `maskMaterial` | `Material` | Material of the mask (default: `Material::Mask`). | First constructor only |
| `gridDelta` | `NumericType` | Grid spacing in the simulation domain. | Second constructor only |
| `xExtent` | `NumericType` | Extent of the domain in the x-direction. | Second constructor only |
| `yExtent` | `NumericType` | Extent of the domain in the y-direction. | Second constructor only |
| `taperAngle` | `NumericType` | Taper angle of the fin/mask. | Second constructor only |
| `baseHeight` | `NumericType` | Base height of the fin (default: `0.`). | Second constructor only |
| `periodicBoundary` | `bool` | If `true`, enables periodic boundary conditions (default: `false`). | Second constructor only |
| `makeMask` | `bool` | If `true`, a mask is created instead of a fin (default: `false`). | Second constructor only |
> **Note**:
> - The first constructor **requires** that the domain is already configured and is only available from **ViennaPS v3.3.0**.
> - The second constructor allows domain setup within the constructor by specifying `gridDelta`, `xExtent`, and `yExtent`.
__Example usage:__
Expand All @@ -52,6 +74,11 @@ C++
</summary>
```c++
// namespace viennaps
// recomended with DomainSetup configured (v3.3.0)
auto domain = SmartPointer<Domain<NumericType, D>>::New(0.5, 10., 10., BoundaryType::REFLECTIVE_BOUNDARY);
MakeFin(domain, 2.5, 5.0, 10., 0., 0., false, Material::Si, Material::Mask).apply();
// without DomainSetup
auto domain = SmartPointer<Domain<NumericType, D>>::New();
MakeFin<NumericType, D>(domain, 0.5, 10.0, 10.0, 5.0, 5.0, 0., false, false,
Material::Si)
Expand All @@ -65,6 +92,20 @@ Python:
{: .label .label-green }
</summary>
```python
# with DomainSetup configured (v3.3.0)
domain = vps.Domain(0.5, 10., 10., vps.BoundaryType.REFLECTIVE_BOUNDARY)
vps.MakeFin(domain=domain,
finWidth=2.5,
finHeight=5.0,
finTaperAngle=10.,
maskHeight=5.,
maskTaperAngle=0.,
halfFin=False,
material=vps.Material.Si,
maskMaterial=vps.Material.Mask
).apply()

# without DomainSetup
domain = vps.Domain()
vps.MakeFin(domain=domain,
gridDelta=0.5,
Expand Down
78 changes: 61 additions & 17 deletions docs/geo/basic/hole.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
layout: default
title: Hole Geometry
parent: Basic Geometries
parent: Geometry Builders
grand_parent: Creating a Geometry
nav_order: 3
---
Expand All @@ -10,7 +10,7 @@ nav_order: 3
{: .fs-9 .fw-500 }

```c++
#include <psMakeHole.hpp>
#include <geometries/psMakeHole.hpp>
```
---

Expand All @@ -19,6 +19,18 @@ Additionally, the hole can serve as a mask, with the specified material only app

```c++
// namespace viennaps

// with DomainSetup configured (v3.3.0)
MakeHole(psDomainType domain,
NumericType holeRadius,
NumericType holeDepth,
NumericType holeTaperAngle = 0.,
NumericType maskHeight = 0.,
NumericType maskTaperAngle = 0.,
HoleShape shape = HoleShape::Full,
Material material = Material::Si,
Material maskMaterial = Material::Mask)

MakeHole(DomainType domain,
NumericType gridDelta,
NumericType xExtent,
Expand All @@ -29,24 +41,33 @@ MakeHole(DomainType domain,
NumericType baseHeight = 0.,
bool periodicBoundary = false,
bool makeMask = false,
Material material = Material::None,
Material material = Material::Si,
HoleShape holeShape = HoleShape::Full)
```
| Parameter | Description | Type |
|------------------------|-----------------------------------------------------------------------|--------------------------------|
| `domain` | Specifies the type of domain for the hole geometry. | `SmartPointer<Domain<NumericType, D>>` |
| `gridDelta` | Represents the grid spacing or resolution used in the simulation. | `NumericType` |
| `xExtent` | Defines the extent of the hole geometry in the x-direction. | `NumericType` |
| `yExtent` | Specifies the extent of the hole geometry in the y-direction. | `NumericType` |
| `holeRadius` | Sets the radius of the hole. | `NumericType` |
| `holeDepth` | Determines the depth of the hole. | `NumericType` |
| `taperAngle` | (Optional) Specifies the angle of tapering for the hole geometry in degrees. Default is set to 0. | `NumericType` |
| `baseHeight` | (Optional) Sets the base height of the hole. Default is set to 0. | `NumericType` |
| `periodicBoundary` | (Optional) If set to true, enables periodic boundaries in both x and y directions. Default is set to false. | `bool` |
| `makeMask` | (Optional) If set to true, allows the hole to function as a mask, with specified material applied only to the bottom. Default is set to false. | `bool` |
| `material` | (Optional) Specifies the material used for the hole. Default is set to `Material::None`. | `Material` |
| `holeShape` | (Optional) Specifies whether a full, half or quarter hole should be created. Half and quarter holes with reflective boundary conditions can simulate the full dynamics of a hole with less computational cost. Default is set to `HoleShape::Full`. | `HoleShape` |
| Parameter | Type | Description | Applicable Constructor |
|-------------------|---------------|--------------|------------------------|
| `domain` | `psDomainType` | The simulation domain. | Both |
| `holeRadius` | `NumericType` | Radius of the hole. | Both |
| `holeDepth` | `NumericType` | Depth of the hole. | Both |
| `holeTaperAngle` | `NumericType` | Taper angle of the hole (default: `0.`). | Both |
| `maskHeight` | `NumericType` | Height of the masking layer (default: `0.`). | First constructor only |
| `maskTaperAngle` | `NumericType` | Taper angle of the masking layer (default: `0.`). | First constructor only |
| `shape` | `HoleShape` | Shape of the hole (default: `HoleShape::Full`). | Both |
| `material` | `Material` | Material of the hole (default: `Material::Si`). | Both |
| `maskMaterial` | `Material` | Material of the mask (default: `Material::Mask`). | First constructor only |
| `gridDelta` | `NumericType` | Grid spacing in the simulation domain. | Second constructor only |
| `xExtent` | `NumericType` | Extent of the domain in the x-direction. | Second constructor only |
| `yExtent` | `NumericType` | Extent of the domain in the y-direction. | Second constructor only |
| `taperAngle` | `NumericType` | Alternative name for `holeTaperAngle` in the second constructor (default: `0.`). | Second constructor only |
| `baseHeight` | `NumericType` | Height at which the hole starts (default: `0.`). | Second constructor only |
| `periodicBoundary` | `bool` | If `true`, enables periodic boundary conditions (default: `false`). | Second constructor only |
| `makeMask` | `bool` | If `true`, the mask is created instead of the hole, setting `holeDepth` to `0` (default: `false`). | Second constructor only |
> **Note**:
> - The first constructor requires that the domain is already configured.
> - The second constructor sets up a new simulation domain with `gridDelta`, `xExtent`, and `yExtent`.
> - If `makeMask` is `true`, the hole is not created, and only the masking layer is applied.
__Example usage:__
Expand All @@ -57,6 +78,13 @@ C++
</summary>
```c++
// namespace viennaps
// with DomainSetup configured (v3.3.0)
auto domain = SmartPointer<Domain<NumericType, D>>::New(0.5, 10., 10., BoundaryType::REFLECTIVE_BOUNDARY);
MakeHole<NumericType, D>(domain, 5.0, 5.0, 10., 0., 0., HoleShape::Quarter, Material::Si, Material::Mask)
.apply();
// without DomainSetup
auto domain = SmartPointer<Domain<NumericType, D>>::New();
MakeHole<NumericType, D>(domain, 0.5, 10.0, 10.0, 2.5, 5.0, 10., 0., false,
false, Material::Si)
Expand All @@ -70,6 +98,22 @@ Python
{: .label .label-green }
</summary>
```python
# with DomainSetup configured (v3.3.0)
domain = vps.Domain(gridDelta=0.5,
xExtent=10.0,
yExtent=10.0,
boundaryType=vps.BoundaryType.REFLECTIVE_BOUNDARY)
vps.MakeHole(domain=domain,
holeRadius=5.0,
holeDepth=0.0,
holeTaperAngle=0.0,
maskHeight=5.0,
maskTaperAngle=2.0,
shape=vps.HoleShape.Quarter,
material=vps.Material.Si,
maskMaterial=vps.Material.Mask
).apply()

domain = vps.Domain()
vps.MakeHole(domain=domain,
gridDelta=0.5,
Expand Down
4 changes: 2 additions & 2 deletions docs/geo/basic/index.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
---
layout: default
title: Basic Geometries
title: Geometry Builders
parent: Creating a Geometry
nav_order: 0
has_children: true
---

# Basic Geometries
# Basic Geometry Builders
{: .fs-9 .fw-500 }

---
Expand Down
Loading

0 comments on commit 4d5ae29

Please sign in to comment.