ViennaLS
Loading...
Searching...
No Matches
Class List
Here are the classes, structs, unions and interfaces with brief descriptions:
 NAdvection
  CVelocityField
 NAirGapDeposition
  CvelocityField
 NDeposition
  CvelocityField
 NEpitaxy
  CEpitaxyVelocity
 NlsInternal
  CAdvectTimeIntegration
  CEngquistOsherEngquist-Osher spatial discretization scheme based on the upwind spatial discretization scheme. Offers high performance but lower accuracy for complex velocity fields
  CFiniteDifferences
  CGraph
  CLaxFriedrichsLax Friedrichs spatial discretization scheme with constant alpha value for dissipation. This alpha value should be fitted based on the results of the advection and passed to the advection Kernel
  CLocalLaxFriedrichsLax Friedrichs spatial discretization scheme, which uses a first neighbour stencil to calculate the alpha values for all neighbours. The largest alpha value is then chosen for dissipation. Slower than lsLocalLocalLaxFriedrichs or lsEngquistOsher but more reliable for complex velocity fields
  CLocalLaxFriedrichsAnalyticalLax Friedrichs spatial discretization scheme, which uses alpha values provided by the user in getDissipationAlphas in lsVelocityField. If it is possible to derive analytical solutions for the velocityField and the alpha values, this spatial discretization scheme should be used and never otherwise
  CLocalLocalLaxFriedrichsLax Friedrichs spatial discretization scheme, which considers only the current point for alpha calculation. Faster than lsLocalLaxFriedrichs but not as accurate
  CMarchingCubesHelper class for lsToSurfaceMesh. Should not be used directly
  CStencilLocalLaxFriedrichsScalarStencil Local Lax Friedrichs Discretization Scheme. It uses a stencil of order around active points, in order to evaluate dissipation values for each point, taking into account the mathematical nature of the speed function. see Toifl et al., 2019. ISBN: 978-1-7281-0938-1; DOI: 10.1109/SISPAD.2019.8870443
  CWENOWeighted Essentially Non-Oscillatory (WENO) scheme. This kernel acts as the grid-interface for the mathematical logic defined in lsFiniteDifferences.hpp
 Nrun_all_tests
  CTestVelocityField
  CWrappingTest
 NSquareEtch
  CEtchingField
  CDepositionField
 NTimeIntegration
  CConstantVelocity
 Nviennals
  CAdvectThis class is used to advance level sets over time. Level sets are passed to the constructor in a std::vector, with the last element being the level set to advect, or "top level set", while the others are then adjusted afterward. In order to ensure that advection works correctly, the "top level set" has to include all lower level sets: LS_top = LS_top U LS_i for i = {0 ... n}, where n is the number of level sets. The velocities used to advect the level set are given in a concrete implementation of the lsVelocityField (check Advection examples for guidance)
  CBooleanOperationThis class is used to perform boolean operations on two level sets and write the resulting level set into the first passed level set. When the boolean operation is set to CUSTOM, a comparator must be set using setBooleanOperationComparator. This comparator returns one value generated from the level set value supplied by each level set. E.g.: for a union, the comparator will always return the smaller of the two values. The function signature for the comparator is defined in the public ComparatorType
  CBoxClass describing a square box from one coordinate to another
  CBoxDistributionConcrete implementation of GeometricAdvectDistribution for a rectangular box distribution
  CCalculateCurvatures
  CCalculateNormalVectorsThis algorithm is used to compute the normal vectors for all points with level set values <= maxValue (default 0.5). The result is saved in the PointData of the lsDomain and can be retrieved with lsDomain.getPointData().getVectorData("Normals")
  CCalculateVisibilities
  CCheckThis class is used to find errors in the underlying level set structure, like invalid neighbours of different signs
  CCompareChamferCalculate Chamfer distance between two level sets by comparing their zero-level-set surfaces. The Chamfer distance is a bidirectional metric that measures the average nearest-neighbor distance between two point sets
  CCompareCriticalDimensionsCompares critical dimensions (surface positions) between two level sets. Critical dimensions are defined as the maximum or minimum positions where the surface (SDF = 0) exists within a specified range
  CCompareNarrowBandCalculate distance measure between two level sets by comparing their SDF values on a narrow band. Returns the sum of squared differences between corresponding grid points. The code is intended for 2D and 3D level sets
  CCompareSparseFieldCalculate distance measure between two level sets by comparing their SDF values on a sparse field. This class iterates over the points in the sparse field of the iterated level set and calculates differences with the corresponding values of the expanded level set
  CCompareVolumeComputes an estimate of the volume/area where two level sets differ. The volume is calculated by iterating through the bounding box of the two level sets and comparing the cell values. The grid delta is used as the unit of volume. Custom increment values can be set for specific x, y and z ranges, allowing to count certain areas multiple times or skip them. Optionally, a passed mesh can be filled with the volume information, allowing for visualization of the differences. The code is intended for 2D and 3D level sets
  CConvexHullThis algorithm creates a convex hull mesh from a point cloud. This is done using the gift wrapping approach. The points in the point cloud MUST be unique, otherwise this will fail
  CCustomSphereDistribution
  CCylinderClass describing a square box from one coordinate to another
  CDetectFeaturesThis class detects features of the level set function. This class offers two methods to determine features of the surface: based on the mean curvature, and based on the angle between surface normals. The curvature-based algorithm is the default as it leads to more accurate results and should be preferred in general
  CDomainClass containing all information about the level set, including the dimensions of the domain, boundary conditions and all data
  CExpandExpands the levelSet to the specified number of layers. The largest value in the levelset is thus width*0.5 Returns the number of added points
  CExtrudeExtrudes a 2D Level Set into a 3D domain. The axis in which should be extruded can be set and boundary conditions in the 3D domain must be specified
  CFromMeshImport the regular grid, on which the level set values are defined, from an explicit Mesh<>. The Vertices must be defined, as well as a scalar data field "LSValues". If used for custom read-in, make sure all vertices are lexicographically sorted
  CFromSurfaceMeshConstruct a level set from an explicit mesh
  CFromVolumeMeshThis class creates a level set from a tetrahedral mesh. If the mesh contains a scalar data array called "Material", one level set for each material will be created and stored in the supplied std::vector<Domain<T,D>> object
  CGeometricAdvectThis class advects the level set according to a given distribution. This distribution is overlayed at every grid point of the old surface. All cells within this distribution are then filled, with cells at the edge marked with the correct level set values. Therefore, the surface can be shifted long distances in one step. This algorithm is therefore preferable to normal advection if there is growth/reduction by a purely geometric directional distribution
  CGeometricAdvectDistributionBase class for distributions used by lsGeometricAdvect. All functions are pure virtual and must be implemented by any advection distribution
  CInteriorActivates interior points in a level set. The largest value in the levelset is thus width*0.5 Returns the number of added points
  CLOCOSConservationDiagnostics
  CMakeGeometryCreate level sets describing basic geometric forms
  CMarkVoidPointsThis class is used to mark points of the level set which are enclosed in a void
  CMaterialMapA class for mapping layer indices to material IDs
  CMeshThis class holds an explicit mesh, which is always given in 3 dimensions. If it describes a 2D mesh, the third dimension is set to 0. Vertices, Lines, Triangles, Tetras & Hexas are supported as geometric elements
  COxidationUnified oxidation time-step orchestrator
  COxidationConstrainedAmbientVelocity field for the oxide outer interface when part of that interface is in contact with a mask. Open oxide/ambient regions use the oxide deformation field. Mask-contact regions are kinematically constrained to the solved mask vector velocity and do not receive additional free-surface scalar growth
  COxidationCouplingParameters
  COxidationDeformationPropagates the volume expansion generated at the Si/SiO2 interface through the oxide as a Cartesian-grid deformation velocity field
  COxidationDeformationParametersParameters for the Cartesian-grid oxide deformation model
  COxidationDiffusionSolves the oxidant diffusion step of the Suvorov et al. (10.1007/s10825-006-0003-z) oxidation model on the Cartesian grid carrying two level sets
   CReactionBoundarySampleSub-grid accurate sample of the reaction boundary crossing closest to a given grid node. Carries the interpolated concentration at the boundary point, plus the axis and offset of the edge on which the crossing lies so that callers can reconstruct the boundary-point position and normal
  COxidationMaskBendingVector velocity field for a compliant oxidation mask driven by solved oxide traction. A Cartesian viscous elasticity solve is built inside the mask level set, oxide-contact faces use a traction ghost velocity, and the resulting vector field moves the entire mask body. Repeated applications use Aitken relaxation on the contact-interface velocity update
  COxidationMaskParameters
  COxidationModelIterates diffusion, oxide deformation, and pressure-dependent reaction-rate feedback on the shared Cartesian solve grid
  COxidationParametersParameters for the steady oxidant diffusion model used by OxidationDiffusion
  COxidationPresetsNamed parameter presets for common thermal oxidation processes
  COxidationSolverBaseCommon Cartesian-grid infrastructure shared by the three oxidation solver classes (diffusion, deformation, mask bending). Provides the node lookup table, grid extents, and the core grid utility methods that operate on them
   CGridBounds
  CPlaneClass describing a plane via a point in it and the plane normal
  CPointCloudClass describing a point cloud, which can be used to create geometries from its convex hull mesh
  CPruneRemoves all level set points, which do not have at least one oppositely signed neighbour (Meaning they do not lie directly at the interface). Afterward the level set will occupy the least memory possible
  CReader
  CReduceReduce the level set size to the specified width. This means all level set points with value <= 0.5*width are removed, reducing the memory footprint of the lsDomain
  CRemoveStrayPointsThis algorithm can be used to remove all LS values which are not part of a so-called top surface. This surface is detected using the MarkVoidPoints algorithm, according to the method chosen by the user. This method is set using setVoidTopSurface, which is equivalent to the corresponding member function of lsMarkVoidPoints
  CSliceExtract a 2D slice from a 3D level set domain at a fixed position along one axis. The resulting 2D domain contains points where the 3D domain intersects the slice plane and is always inserted into the x-y plane. Use with caution, as the result might be an empty domain if the slice does not intersect any defined points in the source domain
  CSphereClass describing a sphere via origin and radius
  CSphereDistributionConcrete implementation of GeometricAdvectDistribution for a spherical advection distribution
  CToDiskMeshThis class creates a mesh from the level set with all grid points with a level set value <= 0.5. These grid points are shifted in space towards the direction of their normal vector by grid delta * LS value. Grid delta and the origin grid point are saved for each point. This allows for a simple setup of disks for ray tracing
  CToHullMeshExtracts a hull (surface outline) mesh from a stack of level sets using ToMultiSurfaceMesh with closed boundary caps. Material IDs are assigned per cell. setSharpCorners(true/false) controls whether sharp corner generation is enabled during surface extraction
  CToMeshExtract the regular grid, on which the level set values are defined, to an explicit Mesh<>. The Vertices will contain the level set value stored at its location. (This is very useful for debugging)
  CToMultiSurfaceMesh
  CToSurfaceMeshExtract an explicit Mesh<> instance from an lsDomain. The interface is then described by explicit surface elements: Lines in 2D, Triangles in 3D
   CI3
   CI3Hash
  CToVoxelMeshCreates a mesh, which consists only of quads/hexas for completely filled grid cells in the level set. Interfaces will not be smooth but stepped. (This can be used to create meshes for finite difference algorithms)
  CTransformMesh
  CVelocityFieldAbstract class defining the interface for the velocity field used during advection using lsAdvect
  CVTKReaderClass handling the import of VTK file types
  CVTKWriterClass handling the output of an Mesh<> to VTK file types
  CWriter
 NVoidEtching
  CVelocityField
 CPylsGeometricAdvectDistribution