You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/deps/index.md
+19-3Lines changed: 19 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -11,11 +11,27 @@ nav_order: 2
11
11
12
12

13
13
14
-
ViennaPS is part of the ViennaTools ecosystem and depends on several lightweight, header-only ViennaTools libraries. During configuration, CMake will fetch them automatically as part of the ViennaPS build. **No separate installation step is required for these dependencies**:
14
+
ViennaPS is part of the ViennaTools ecosystem and depends on several
15
+
ViennaTools libraries. During configuration, CMake will fetch them
16
+
automatically as part of the ViennaPS build. **No separate installation step is
Handles topography simulation using an efficient level-set implementation based on a hierarchical run-length encoded (HRLE) data structure. ViennaLS also integrates the Visualization Toolkit (VTK) for geometry import/export, enabling processed geometries to be saved in the VTK format and visualized using ParaView.
21
+
Provides the level-set algorithms used for topography evolution, geometry
22
+
operations, and surface/volume mesh generation. ViennaLS also provides the
23
+
physics solver stack used by the ViennaPS thermal oxidation model, including
24
+
the coupled oxidant diffusion, viscous oxide-flow, stress/pressure, and nitride
25
+
mask-deformation solves needed for LOCOS and trench oxidation simulations.
26
+
27
+
ViennaLS integrates the Visualization Toolkit (VTK) for geometry import/export,
28
+
enabling processed geometries and solver fields to be written in VTK formats
Provides the hierarchical run-length encoded data structure used by ViennaLS to
34
+
store sparse level-set grids efficiently.
19
35
20
36
<!-- ViennaLS forms the foundation of the process simulator, applying the level-set surface representation concepts for topography simulations. This module not only stores the level-set surface but also encompasses essential algorithms for geometry initialization, level-set value manipulation based on a velocity field, surface feature analysis, and seamless conversion of the level-set representation to other commonly employed material representations in device simulators. -->
21
37
@@ -37,4 +53,4 @@ Furthermore, pseudo-particles have the capability to undergo reflection from the
Copy file name to clipboardExpand all lines: docs/examples/index.md
+3Lines changed: 3 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -48,6 +48,7 @@ Individual examples can also be build by calling `make` in their respective buil
48
48
|**Ion Beam Etching**<br/>[](https://github.com/ViennaTools/ViennaPS/tree/master/examples/ionBeamEtching)|**Selective Epitaxy**<br/>[](https://github.com/ViennaTools/ViennaPS/tree/master/examples/selectiveEpitaxy)|
49
49
|**Sputter Deposition**<br/>[](https://github.com/ViennaTools/ViennaPS/tree/master/examples/sputterDeposition)|**Stack Etching**<br/>[](https://github.com/ViennaTools/ViennaPS/tree/master/examples/stackEtching)|
50
50
|**TEOS Trench Deposition**<br/>[](https://github.com/ViennaTools/ViennaPS/tree/master/examples/TEOSTrenchDeposition)|**Trench Deposition**<br/>[](https://github.com/ViennaTools/ViennaPS/tree/master/examples/trenchDeposition)|
51
+
|**Fin Oxidation**<br/>[](https://github.com/ViennaTools/ViennaPS/tree/master/examples/finOxidation)|**LOCOS Oxidation**<br/>[](https://github.com/ViennaTools/ViennaPS/tree/master/examples/locosOxidation)|
51
52
52
53
More Examples:
53
54
*[Custom Example Process](https://github.com/ViennaTools/ViennaPS/tree/master/examples/exampleProcess)
Copy file name to clipboardExpand all lines: docs/index.md
+87-43Lines changed: 87 additions & 43 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -17,55 +17,98 @@ Process Simulation Library
17
17
18
18
---
19
19
20
-
ViennaPS is a header-only C++ library for topography simulation in microelectronic fabrication processes. It models the evolution of 2D and 3D surfaces during etching, deposition, and related steps, combining advanced level-set methods for surface evolution with Monte Carlo ray tracing for flux calculation. This allows accurate, feature-scale simulation of complex fabrication geometries.
20
+
ViennaPS is a header-only C++ library for process and topography simulation in
21
+
microelectronic fabrication. It models the evolution of 2D and 3D surfaces
22
+
during etching, deposition, oxidation, and related steps, combining advanced
23
+
level-set methods for surface evolution with Monte Carlo ray tracing for flux
24
+
calculation and physics-based solvers for coupled processes.
21
25
22
-
ViennaPS supports both physical process models and fast emulation approaches, enabling flexible and efficient development of semiconductor processes. It can be easily integrated into existing C++ projects and also provides Python bindings for use in Python-based workflows. The library is actively developed and continuously improved to address the needs of process and topography simulation in microelectronics.
26
+
ViennaPS supports both physics-based process models and fast emulation
27
+
approaches, enabling flexible and efficient development of semiconductor
28
+
processes. It can be integrated into existing C++ projects and also provides
29
+
Python bindings for Python-based workflows.
23
30
24
31
{: .note }
25
32
> ViennaPS is under heavy development and improved daily. If you do have suggestions or find bugs, please let us know on [GitHub][ViennaPS issues] or contact us directly at [viennatools@iue.tuwien.ac.at](mailto:viennatools@iue.tuwien.ac.at)!
26
33
27
-
This documentation is your guide to using and getting the most out of our process simulation library. Whether you're a researcher looking to improve your simulation workflows or an engineer working to optimize fabrication processes, this library offers a flexible and powerful platform to support your work.
28
-
29
-
Inside, you'll find clear explanations, practical examples, and recommended workflows to help you use the library effectively. Our goal is to give you the knowledge and tools needed to accurately simulate a wide range of fabrication processes, enabling better insights, informed decisions, and innovation in the field.
34
+
This documentation is your guide to installing ViennaPS, building C++ and
35
+
Python workflows, selecting process models, and running the provided examples.
30
36
31
37
---
32
38
33
-
> ⚙️ **ViennaPS v4.0.0 Released — Major Framework Update**
34
-
>
35
-
> This release introduces a complete rework of the process framework, unified Python bindings, and extended GPU and material support.
36
-
37
-
## What's New
38
-
39
-
### Core framework
40
-
- Modular **flux engine** with new options: `AUTO` (default), `CPU_DISK`, `GPU_DISK`, `GPU_LINE`, `GPU_TRIANGLE`.
41
-
-`AUTO` automatically selects CPU or GPU based on build and model support.
42
-
-**AtomicLayerProcess** removed; ALD handled by standard `Process()`.
43
-
- New parameter structs:
44
-
-`AtomicLayerProcessParameters`
45
-
-`CoverageParameters`
46
-
-`RayTracingParameters`
47
-
-`AdvectionParameters`
48
-
- All parameter structs now use a single `setParameters()` function.
49
-
50
-
### Python interface
51
-
- Unified package: `viennaps` replaces `viennaps2d` and `viennaps3d`.
52
-
- Dimension modules available under `viennaps.d2` and `viennaps.d3`.
53
-
- Default dimension is 2D; can be changed via `viennaps.setDimension()`.
54
-
55
-
### Models and simulation
56
-
- Extended **material list** with common semiconductor materials.
57
-
-**Fluorocarbon model** now supports arbitrary material combinations.
58
-
- Fixed issue where **underlying materials** were not etched in geometric models.
59
-
60
-
### I/O and utilities
61
-
- Updated `saveSurfaceMesh()`:
62
-
- Removed `addMaterialIds`
63
-
- Added `addInterfaces` to export all material interfaces.
64
-
- Improved extrusion and slicing functions.
65
-
66
-
### Build system
67
-
- GPU builds now **auto-download OptiX headers** if missing.
68
-
- Updated CI, OpenMP handling, and dependencies.
39
+
## Quick Start
40
+
41
+
Install the Python package from PyPI:
42
+
43
+
```bash
44
+
pip install ViennaPS
45
+
```
46
+
47
+
Then import it in Python:
48
+
49
+
```python
50
+
import viennaps as vps
51
+
```
52
+
53
+
By default, ViennaPS operates in 2D. Use `vps.setDimension(3)` for 3D
54
+
workflows.
55
+
56
+
For C++ projects, ViennaPS is usually consumed with
Copy file name to clipboardExpand all lines: docs/inst/gpu.md
+44-44Lines changed: 44 additions & 44 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -5,7 +5,7 @@ parent: Installing the Library
5
5
nav_order: 1
6
6
---
7
7
8
-
# Installing the GPU Module
8
+
# Installing the GPU Module
9
9
{: .fs-9 .fw-500 }
10
10
11
11
---
@@ -24,56 +24,56 @@ The GPU ray tracing module is implemented using [**OptiX 8.0**](https://develope
24
24
25
25
## Python Bindings Installation
26
26
27
-
For a convenient setup, a helper script is provided. It builds **ViennaPS** and **ViennaLS** with GPU support directly from source inside the `ViennaTools` folder.
27
+
The Python package can be built with GPU support using helper scripts in
28
+
`python/scripts`. GPU support enables GPU ray tracing in ViennaPS and the GPU
29
+
BiCGSTAB solver used by the oxidation model.
28
30
29
-
Run:
31
+
### Existing ViennaPS Checkout
32
+
33
+
Use `install_ViennaPS.py` when working from a ViennaPS checkout. It creates or
34
+
reuses a virtual environment, installs a compatible local ViennaLS build, and
35
+
then installs ViennaPS from the selected checkout.
0 commit comments