Dependencies

ViennaPS is part of the ViennaTools ecosystem and depends on several ViennaTools libraries. During configuration, CMake will fetch them automatically as part of the ViennaPS build. No separate installation step is required for these dependencies:
ViennaLS
Provides the level-set algorithms used for topography evolution, geometry operations, and surface/volume mesh generation. ViennaLS also provides the physics solver stack used by the ViennaPS thermal oxidation model, including the coupled oxidant diffusion, viscous oxide-flow, stress/pressure, and nitride mask-deformation solves needed for LOCOS and trench oxidation simulations.
ViennaLS integrates the Visualization Toolkit (VTK) for geometry import/export, enabling processed geometries and solver fields to be written in VTK formats and visualized with tools such as ParaView.
ViennaHRLE
Provides the hierarchical run-length encoded data structure used by ViennaLS to store sparse level-set grids efficiently.
ViennaCS
Implements a cell-set representation to describe volumetric regions above and below the surface, extending ViennaPS’s capabilities beyond surface evolution.
ViennaRay
Provides a top-down Monte Carlo ray tracing approach for calculating fluxes on feature surfaces inside plasma processing chambers. Given the computational complexity of ray tracing, ViennaRay leverages high-performance external libraries for ray traversal and intersection calculations. It supports both CPU-based ray tracing via Embree and GPU-accelerated ray tracing via NVIDIA’s OptiX, offering flexibility in simulation speed and accuracy.
ViennaCore
A utility library that provides common functionalities such as logging, vector operations, and other shared methods essential for all sub-libraries.
