ViennaPS 3.3.0__pp39-pypy39_pp73-win_amd64.whl → 3.5.0__pp39-pypy39_pp73-win_amd64.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of ViennaPS might be problematic. Click here for more details.

Files changed (64) hide show
  1. {viennaps-3.3.0.dist-info → viennaps-3.5.0.dist-info}/METADATA +67 -50
  2. viennaps-3.5.0.dist-info/RECORD +65 -0
  3. {viennaps-3.3.0.dist-info → viennaps-3.5.0.dist-info}/WHEEL +1 -1
  4. viennaps.libs/embree4.dll +0 -0
  5. viennaps.libs/embree4.exp +0 -0
  6. viennaps.libs/embree4.lib +0 -0
  7. viennaps.libs/embree_avx.lib +0 -0
  8. viennaps.libs/embree_avx2.lib +0 -0
  9. viennaps.libs/embree_sse42.lib +0 -0
  10. viennaps.libs/lexers.lib +0 -0
  11. viennaps.libs/math.lib +0 -0
  12. viennaps.libs/simd.lib +0 -0
  13. viennaps.libs/sys.lib +0 -0
  14. viennaps.libs/tasking.lib +0 -0
  15. viennaps.libs/tbb12.dll +0 -0
  16. viennaps.libs/tbb12.exp +0 -0
  17. viennaps.libs/tbb12.lib +0 -0
  18. viennaps.libs/vtkCommonComputationalGeometry-9.3.dll +0 -0
  19. viennaps.libs/vtkCommonCore-9.3.dll +0 -0
  20. viennaps.libs/vtkCommonDataModel-9.3.dll +0 -0
  21. viennaps.libs/vtkCommonExecutionModel-9.3.dll +0 -0
  22. viennaps.libs/vtkCommonMath-9.3.dll +0 -0
  23. viennaps.libs/vtkCommonMisc-9.3.dll +0 -0
  24. viennaps.libs/vtkCommonSystem-9.3.dll +0 -0
  25. viennaps.libs/vtkCommonTransforms-9.3.dll +0 -0
  26. viennaps.libs/vtkFiltersCore-9.3.dll +0 -0
  27. viennaps.libs/vtkFiltersGeneral-9.3.dll +0 -0
  28. viennaps.libs/vtkFiltersGeometry-9.3.dll +0 -0
  29. viennaps.libs/vtkFiltersVerdict-9.3.dll +0 -0
  30. viennaps.libs/vtkIOCore-9.3.dll +0 -0
  31. viennaps.libs/vtkIOXML-9.3.dll +0 -0
  32. viennaps.libs/vtkIOXMLParser-9.3.dll +0 -0
  33. viennaps.libs/vtkdoubleconversion-9.3.dll +0 -0
  34. viennaps.libs/vtkexpat-9.3.dll +0 -0
  35. viennaps.libs/vtkfmt-9.3.dll +0 -0
  36. viennaps.libs/vtkkissfft-9.3.dll +0 -0
  37. viennaps.libs/vtkloguru-9.3.dll +0 -0
  38. viennaps.libs/vtklz4-9.3.dll +0 -0
  39. viennaps.libs/vtklzma-9.3.dll +0 -0
  40. viennaps.libs/vtkpugixml-9.3.dll +0 -0
  41. viennaps.libs/vtksys-9.3.dll +0 -0
  42. viennaps.libs/vtkverdict-9.3.dll +0 -0
  43. viennaps.libs/vtkzlib-9.3.dll +0 -0
  44. viennaps2d/Release/viennaps2d.cp310-win_amd64.pyd +0 -0
  45. viennaps2d/Release/viennaps2d.cp311-win_amd64.pyd +0 -0
  46. viennaps2d/Release/viennaps2d.cp312-win_amd64.pyd +0 -0
  47. viennaps2d/Release/viennaps2d.pypy37-pp73-win_amd64.pyd +0 -0
  48. viennaps2d/Release/viennaps2d.pypy38-pp73-win_amd64.pyd +0 -0
  49. viennaps2d/Release/viennaps2d.pypy39-pp73-win_amd64.pyd +0 -0
  50. viennaps2d/__init__.py +15 -2
  51. viennaps2d/viennaps2d.pyi +313 -85
  52. viennaps2d/viennaps2d.pypy39-pp73-win_amd64.pyd +0 -0
  53. viennaps3d/Release/viennaps3d.cp310-win_amd64.pyd +0 -0
  54. viennaps3d/Release/viennaps3d.cp311-win_amd64.pyd +0 -0
  55. viennaps3d/Release/viennaps3d.cp312-win_amd64.pyd +0 -0
  56. viennaps3d/Release/viennaps3d.pypy37-pp73-win_amd64.pyd +0 -0
  57. viennaps3d/Release/viennaps3d.pypy38-pp73-win_amd64.pyd +0 -0
  58. viennaps3d/Release/viennaps3d.pypy39-pp73-win_amd64.pyd +0 -0
  59. viennaps3d/__init__.py +15 -2
  60. viennaps3d/viennaps3d/gpu.pyi +111 -0
  61. viennaps3d/viennaps3d.pyi +290 -90
  62. viennaps3d/viennaps3d.pypy39-pp73-win_amd64.pyd +0 -0
  63. viennaps-3.3.0.dist-info/RECORD +0 -64
  64. {viennaps-3.3.0.dist-info → viennaps-3.5.0.dist-info}/licenses/LICENSE +0 -0
viennaps2d/viennaps2d.pyi CHANGED
@@ -7,7 +7,7 @@ __version__: str
7
7
  version: str
8
8
 
9
9
  class AdvectionCallback:
10
- domain: Domain
10
+ domain: Incomplete
11
11
  def __init__(self) -> None: ...
12
12
  def applyPostAdvect(self, arg0: float) -> bool: ...
13
13
  def applyPreAdvect(self, arg0: float) -> bool: ...
@@ -51,7 +51,7 @@ class AtomicLayerProcess:
51
51
  def setNumberOfRaysPerPoint(self, arg0: int) -> None: ...
52
52
  def setProcessModel(self, arg0: ProcessModel) -> None: ...
53
53
  def setPulseTime(self, arg0: float) -> None: ...
54
- def setSourceDirection(self, arg0: rayTraceDirection) -> None: ...
54
+ def setSourceDirection(self, arg0) -> None: ...
55
55
 
56
56
  class BoxDistribution(ProcessModel):
57
57
  @overload
@@ -61,7 +61,159 @@ class BoxDistribution(ProcessModel):
61
61
  @overload
62
62
  def __init__(self, halfAxes, gridDelta: float) -> None: ...
63
63
 
64
- class DirectionalEtching(ProcessModel):
64
+ class CF4O2Etching(ProcessModel):
65
+ @overload
66
+ def __init__(self) -> None: ...
67
+ @overload
68
+ def __init__(
69
+ self,
70
+ ionFlux: float,
71
+ etchantFlux: float,
72
+ oxygenFlux: float,
73
+ polymerFlux: float,
74
+ meanIonEnergy: float = ...,
75
+ sigmaIonEnergy: float = ...,
76
+ ionExponent: float = ...,
77
+ oxySputterYield: float = ...,
78
+ polySputterYield: float = ...,
79
+ etchStopDepth: float = ...,
80
+ ) -> None: ...
81
+ @overload
82
+ def __init__(self, parameters: CF4O2Parameters) -> None: ...
83
+ def getParameters(self) -> CF4O2Parameters: ...
84
+ def setParameters(self, arg0: CF4O2Parameters) -> None: ...
85
+
86
+ class CF4O2Parameters:
87
+ Ions: CF4O2ParametersIons
88
+ Mask: CF4O2ParametersMask
89
+ Passivation: CF4O2ParametersPassivation
90
+ Si: CF4O2ParametersSi
91
+ SiGe: CF4O2ParametersSiGe
92
+ etchStopDepth: float
93
+ etchantFlux: float
94
+ fluxIncludeSticking: bool
95
+ gamma_C: dict[Material, float]
96
+ gamma_C_oxidized: dict[Material, float]
97
+ gamma_F: dict[Material, float]
98
+ gamma_F_oxidized: dict[Material, float]
99
+ gamma_O: dict[Material, float]
100
+ gamma_O_passivated: dict[Material, float]
101
+ ionFlux: float
102
+ oxygenFlux: float
103
+ polymerFlux: float
104
+ def __init__(self) -> None: ...
105
+
106
+ class CF4O2ParametersIons:
107
+ exponent: float
108
+ inflectAngle: float
109
+ meanEnergy: float
110
+ minAngle: float
111
+ n_l: float
112
+ sigmaEnergy: float
113
+ def __init__(self) -> None: ...
114
+
115
+ class CF4O2ParametersMask:
116
+ A_sp: float
117
+ Eth_sp: float
118
+ rho: float
119
+ def __init__(self) -> None: ...
120
+
121
+ class CF4O2ParametersPassivation:
122
+ A_C_ie: float
123
+ A_O_ie: float
124
+ Eth_C_ie: float
125
+ Eth_O_ie: float
126
+ def __init__(self) -> None: ...
127
+
128
+ class CF4O2ParametersSi:
129
+ A_ie: float
130
+ A_sp: float
131
+ Eth_ie: float
132
+ Eth_sp: float
133
+ beta_sigma: float
134
+ k_sigma: float
135
+ rho: float
136
+ def __init__(self) -> None: ...
137
+
138
+ class CF4O2ParametersSiGe:
139
+ A_ie: float
140
+ A_sp: float
141
+ Eth_ie: float
142
+ Eth_sp: float
143
+ beta_sigma: float
144
+ k_sigma: float
145
+ rho: float
146
+ x: float
147
+ def __init__(self) -> None: ...
148
+ def k_sigma_SiGe(self, arg0: float) -> float: ...
149
+
150
+ class CSVFileProcess(ProcessModel):
151
+ def __init__(
152
+ self,
153
+ ratesFile: str,
154
+ direction,
155
+ offset,
156
+ isotropicComponent: float = ...,
157
+ directionalComponent: float = ...,
158
+ maskMaterials: list[Material] = ...,
159
+ calculateVisibility: bool = ...,
160
+ ) -> None: ...
161
+ def setCustomInterpolator(self, function: Callable) -> None: ...
162
+ def setIDWNeighbors(self, k: int = ...) -> None: ...
163
+ @overload
164
+ def setInterpolationMode(self, mode: Interpolation) -> None: ...
165
+ @overload
166
+ def setInterpolationMode(self, mode: str) -> None: ...
167
+ def setOffset(self, offset) -> None: ...
168
+
169
+ class DenseCellSet:
170
+ def __init__(self) -> None: ...
171
+ @overload
172
+ def addFillingFraction(self, arg0: int, arg1: float) -> bool: ...
173
+ @overload
174
+ def addFillingFraction(self, arg0, arg1: float) -> bool: ...
175
+ def addFillingFractionInMaterial(self, arg0, arg1: float, arg2: int) -> bool: ...
176
+ def addScalarData(self, arg0: str, arg1: float) -> None: ...
177
+ def buildNeighborhood(self, forceRebuild: bool = ...) -> None: ...
178
+ def clear(self) -> None: ...
179
+ def fromLevelSets(
180
+ self,
181
+ levelSets: list[viennals2d.viennals2d.Domain],
182
+ materialMap: viennals2d.viennals2d.MaterialMap = ...,
183
+ depth: float = ...,
184
+ ) -> None: ...
185
+ def getAverageFillingFraction(self, arg0, arg1: float) -> float: ...
186
+ def getBoundingBox(self, *args, **kwargs): ...
187
+ def getCellCenter(self, *args, **kwargs): ...
188
+ def getCellGrid(self) -> viennals2d.viennals2d.Mesh: ...
189
+ def getDepth(self) -> float: ...
190
+ def getElement(self, *args, **kwargs): ...
191
+ def getElements(self, *args, **kwargs): ...
192
+ def getFillingFraction(self, arg0) -> float: ...
193
+ def getFillingFractions(self) -> list[float]: ...
194
+ def getGridDelta(self) -> float: ...
195
+ def getIndex(self, arg0) -> int: ...
196
+ def getNeighbors(self, *args, **kwargs): ...
197
+ def getNode(self, *args, **kwargs): ...
198
+ def getNodes(self, *args, **kwargs): ...
199
+ def getNumberOfCells(self) -> int: ...
200
+ def getScalarData(self, arg0: str) -> list[float]: ...
201
+ def getScalarDataLabels(self) -> list[str]: ...
202
+ def getSurface(self) -> viennals2d.viennals2d.Domain: ...
203
+ def readCellSetData(self, arg0: str) -> None: ...
204
+ def setCellSetPosition(self, arg0: bool) -> None: ...
205
+ def setCoverMaterial(self, arg0: int) -> None: ...
206
+ @overload
207
+ def setFillingFraction(self, arg0: int, arg1: float) -> bool: ...
208
+ @overload
209
+ def setFillingFraction(self, arg0, arg1: float) -> bool: ...
210
+ def setPeriodicBoundary(self, arg0) -> None: ...
211
+ def updateMaterials(self) -> None: ...
212
+ def updateSurface(self) -> None: ...
213
+ def writeCellSetData(self, arg0: str) -> None: ...
214
+ def writeVTU(self, arg0: str) -> None: ...
215
+
216
+ class DirectionalProcess(ProcessModel):
65
217
  @overload
66
218
  def __init__(
67
219
  self,
@@ -95,12 +247,18 @@ class Domain:
95
247
  self,
96
248
  gridDelta: float,
97
249
  xExtent: float,
250
+ yExtent: float,
98
251
  boundary: viennals2d.viennals2d.BoundaryConditionEnum = ...,
99
252
  ) -> None: ...
100
- def applyBooleanOperation(
253
+ @overload
254
+ def __init__(
101
255
  self,
102
- arg0: viennals2d.viennals2d.Domain,
103
- arg1: viennals2d.viennals2d.BooleanOperationEnum,
256
+ gridDelta: float,
257
+ xExtent: float,
258
+ boundary: viennals2d.viennals2d.BoundaryConditionEnum = ...,
259
+ ) -> None: ...
260
+ def applyBooleanOperation(
261
+ self, arg0: viennals2d.viennals2d.Domain, arg1
104
262
  ) -> None: ...
105
263
  def clear(self) -> None: ...
106
264
  def deepCopy(self, arg0: Domain) -> None: ...
@@ -108,8 +266,8 @@ class Domain:
108
266
  def generateCellSet(self, arg0: float, arg1: Material, arg2: bool) -> None: ...
109
267
  def getBoundaryConditions(self, *args, **kwargs): ...
110
268
  def getBoundingBox(self, *args, **kwargs): ...
111
- def getCellSet(self, *args, **kwargs): ...
112
- def getGrid(self, *args, **kwargs): ...
269
+ def getCellSet(self) -> DenseCellSet: ...
270
+ def getGrid(self) -> viennals2d.viennals2d.hrleGrid: ...
113
271
  def getGridDelta(self) -> float: ...
114
272
  def getLevelSets(self) -> list[viennals2d.viennals2d.Domain]: ...
115
273
  def getMaterialMap(self, *args, **kwargs): ...
@@ -209,7 +367,7 @@ class DomainSetup:
209
367
  def boundaryCons(self, *args, **kwargs): ...
210
368
  def bounds(self, *args, **kwargs): ...
211
369
  def check(self) -> None: ...
212
- def grid(self, *args, **kwargs): ...
370
+ def grid(self) -> viennals2d.viennals2d.hrleGrid: ...
213
371
  def gridDelta(self) -> float: ...
214
372
  def halveXAxis(self) -> None: ...
215
373
  def halveYAxis(self) -> None: ...
@@ -346,6 +504,40 @@ class FluorocarbonParametersSiO2:
346
504
  rho: float
347
505
  def __init__(self) -> None: ...
348
506
 
507
+ class GDSGeometry:
508
+ @overload
509
+ def __init__(self) -> None: ...
510
+ @overload
511
+ def __init__(self, gridDelta: float) -> None: ...
512
+ @overload
513
+ def __init__(self, gridDelta: float, boundaryConditions) -> None: ...
514
+ def addBlur(
515
+ self,
516
+ sigmas: list[float],
517
+ weights: list[float],
518
+ threshold: float = ...,
519
+ delta: float = ...,
520
+ gridRefinement: int = ...,
521
+ ) -> None: ...
522
+ def getAllLayers(self) -> set[int]: ...
523
+ def getBounds(self, *args, **kwargs): ...
524
+ def getNumberOfStructures(self) -> int: ...
525
+ def layerToLevelSet(
526
+ self, layer: int, blurLayer: bool = ...
527
+ ) -> viennals2d.viennals2d.Domain: ...
528
+ def print(self) -> None: ...
529
+ def setBoundaryConditions(
530
+ self, arg0: list[viennals2d.viennals2d.BoundaryConditionEnum]
531
+ ) -> None: ...
532
+ def setBoundaryPadding(self, arg0: float, arg1: float) -> None: ...
533
+ def setGridDelta(self, arg0: float) -> None: ...
534
+
535
+ class GDSReader:
536
+ def __init__(self) -> None: ...
537
+ def apply(self) -> None: ...
538
+ def setFileName(self, arg0: str) -> None: ...
539
+ def setGeometry(self, *args, **kwargs): ...
540
+
349
541
  class GeometryFactory:
350
542
  def __init__(self, *args, **kwargs) -> None: ...
351
543
  def makeBoxStencil(
@@ -357,6 +549,28 @@ class GeometryFactory:
357
549
  def makeMask(self, base: float, height: float) -> viennals2d.viennals2d.Domain: ...
358
550
  def makeSubstrate(self, base: float) -> viennals2d.viennals2d.Domain: ...
359
551
 
552
+ class HBrO2Etching(ProcessModel):
553
+ @overload
554
+ def __init__(self) -> None: ...
555
+ @overload
556
+ def __init__(
557
+ self,
558
+ ionFlux: float,
559
+ etchantFlux: float,
560
+ oxygenFlux: float,
561
+ meanIonEnergy: float = ...,
562
+ sigmaIonEnergy: float = ...,
563
+ ionExponent: float = ...,
564
+ oxySputterYield: float = ...,
565
+ etchStopDepth: float = ...,
566
+ ) -> None: ...
567
+ @overload
568
+ def __init__(self, parameters: PlasmaEtchingParameters) -> None: ...
569
+ @staticmethod
570
+ def defaultParameters() -> PlasmaEtchingParameters: ...
571
+ def getParameters(self) -> PlasmaEtchingParameters: ...
572
+ def setParameters(self, arg0: PlasmaEtchingParameters) -> None: ...
573
+
360
574
  class HoleShape:
361
575
  __members__: ClassVar[dict] = ... # read-only
362
576
  Full: ClassVar[HoleShape] = ...
@@ -377,6 +591,7 @@ class HoleShape:
377
591
  class IBEParameters:
378
592
  exponent: float
379
593
  inflectAngle: float
594
+ materialPlaneWaferRate: dict[Material, float]
380
595
  meanEnergy: float
381
596
  minAngle: float
382
597
  n_l: float
@@ -389,6 +604,23 @@ class IBEParameters:
389
604
  yieldFunction: Callable[[float], float]
390
605
  def __init__(self) -> None: ...
391
606
 
607
+ class Interpolation:
608
+ __members__: ClassVar[dict] = ... # read-only
609
+ CUSTOM: ClassVar[Interpolation] = ...
610
+ IDW: ClassVar[Interpolation] = ...
611
+ LINEAR: ClassVar[Interpolation] = ...
612
+ __entries: ClassVar[dict] = ...
613
+ def __init__(self, value: int) -> None: ...
614
+ def __eq__(self, other: object) -> bool: ...
615
+ def __hash__(self) -> int: ...
616
+ def __index__(self) -> int: ...
617
+ def __int__(self) -> int: ...
618
+ def __ne__(self, other: object) -> bool: ...
619
+ @property
620
+ def name(self) -> str: ...
621
+ @property
622
+ def value(self) -> int: ...
623
+
392
624
  class IonBeamEtching(ProcessModel):
393
625
  @overload
394
626
  def __init__(self) -> None: ...
@@ -618,6 +850,7 @@ class Material:
618
850
  Dielectric: ClassVar[Material] = ...
619
851
  GAS: ClassVar[Material] = ...
620
852
  GaN: ClassVar[Material] = ...
853
+ HfO2: ClassVar[Material] = ...
621
854
  Mask: ClassVar[Material] = ...
622
855
  Metal: ClassVar[Material] = ...
623
856
  PolySi: ClassVar[Material] = ...
@@ -725,8 +958,10 @@ class Particle:
725
958
  def __init__(self, *args, **kwargs) -> None: ...
726
959
  def getLocalDataLabels(self) -> list[str]: ...
727
960
  def getSourceDistributionPower(self) -> float: ...
728
- def initNew(self, *args, **kwargs): ...
729
- def surfaceCollision(self, *args, **kwargs): ...
961
+ def initNew(self, arg0) -> None: ...
962
+ def surfaceCollision(
963
+ self, arg0: float, arg1, arg2, arg3: int, arg4: int, arg5, arg6, arg7
964
+ ) -> None: ...
730
965
  def surfaceReflection(self, *args, **kwargs): ...
731
966
 
732
967
  class Planarize:
@@ -738,6 +973,54 @@ class Planarize:
738
973
  def setCutoffPosition(self, arg0: float) -> None: ...
739
974
  def setDomain(self, arg0: Domain) -> None: ...
740
975
 
976
+ class PlasmaEtchingParameters:
977
+ Ions: PlasmaEtchingParametersIons
978
+ Mask: PlasmaEtchingParametersMask
979
+ Passivation: PlasmaEtchingParametersPassivation
980
+ Substrate: PlasmaEtchingParametersSubstrate
981
+ beta_E: dict[int, float]
982
+ beta_P: dict[int, float]
983
+ etchStopDepth: float
984
+ etchantFlux: float
985
+ ionFlux: float
986
+ passivationFlux: float
987
+ def __init__(self) -> None: ...
988
+
989
+ class PlasmaEtchingParametersIons:
990
+ exponent: float
991
+ inflectAngle: float
992
+ meanEnergy: float
993
+ minAngle: float
994
+ n_l: float
995
+ sigmaEnergy: float
996
+ thetaRMax: float
997
+ thetaRMin: float
998
+ def __init__(self) -> None: ...
999
+
1000
+ class PlasmaEtchingParametersMask:
1001
+ A_sp: float
1002
+ B_sp: float
1003
+ Eth_sp: float
1004
+ rho: float
1005
+ def __init__(self) -> None: ...
1006
+
1007
+ class PlasmaEtchingParametersPassivation:
1008
+ A_ie: float
1009
+ Eth_ie: float
1010
+ def __init__(self) -> None: ...
1011
+
1012
+ class PlasmaEtchingParametersSubstrate:
1013
+ A_ie: float
1014
+ A_sp: float
1015
+ B_ie: float
1016
+ B_sp: float
1017
+ Eth_ie: float
1018
+ Eth_sp: float
1019
+ beta_sigma: float
1020
+ k_sigma: float
1021
+ rho: float
1022
+ def __init__(self) -> None: ...
1023
+
741
1024
  class Process:
742
1025
  def __init__(self) -> None: ...
743
1026
  def apply(self) -> None: ...
@@ -763,7 +1046,7 @@ class Process:
763
1046
  def setProcessModel(self, arg0: ProcessModel) -> None: ...
764
1047
  def setRayTracingDiskRadius(self, arg0: float) -> None: ...
765
1048
  def setRayTracingParameters(self, arg0: RayTracingParameters) -> None: ...
766
- def setSourceDirection(self, arg0: rayTraceDirection) -> None: ...
1049
+ def setSourceDirection(self, arg0) -> None: ...
767
1050
  def setTimeStepRatio(self, arg0: float) -> None: ...
768
1051
 
769
1052
  class ProcessModel:
@@ -800,6 +1083,18 @@ class ProcessParams:
800
1083
  def getScalarDataLabel(self, arg0: int) -> str: ...
801
1084
  def insertNextScalar(self, arg0: float, arg1: str) -> None: ...
802
1085
 
1086
+ class RateGrid:
1087
+ def __init__(self) -> None: ...
1088
+ def interpolate(self, coord) -> float: ...
1089
+ def loadFromCSV(self, filename: str) -> bool: ...
1090
+ def setCustomInterpolator(self, function: Callable) -> None: ...
1091
+ def setIDWNeighbors(self, k: int) -> None: ...
1092
+ @overload
1093
+ def setInterpolationMode(self, mode: Interpolation) -> None: ...
1094
+ @overload
1095
+ def setInterpolationMode(self, mode: str) -> None: ...
1096
+ def setOffset(self, offset) -> None: ...
1097
+
803
1098
  class RateSet:
804
1099
  calculateVisibility: bool
805
1100
  direction: Incomplete
@@ -822,7 +1117,7 @@ class RayTracingParameters:
822
1117
  normalizationType: NormalizationType
823
1118
  raysPerPoint: int
824
1119
  smoothingNeighbors: int
825
- sourceDirection: rayTraceDirection
1120
+ sourceDirection: Incomplete
826
1121
  useRandomSeeds: bool
827
1122
  def __init__(self) -> None: ...
828
1123
 
@@ -842,58 +1137,11 @@ class SF6O2Etching(ProcessModel):
842
1137
  etchStopDepth: float = ...,
843
1138
  ) -> None: ...
844
1139
  @overload
845
- def __init__(self, parameters: SF6O2Parameters) -> None: ...
846
- def getParameters(self) -> SF6O2Parameters: ...
847
- def setParameters(self, arg0: SF6O2Parameters) -> None: ...
848
-
849
- class SF6O2Parameters:
850
- Ions: SF6O2ParametersIons
851
- Mask: SF6O2ParametersMask
852
- Passivation: SF6O2ParametersPassivation
853
- Si: SF6O2ParametersSi
854
- beta_F: dict[int, float]
855
- beta_O: dict[int, float]
856
- etchStopDepth: float
857
- etchantFlux: float
858
- fluxIncludeSticking: bool
859
- ionFlux: float
860
- oxygenFlux: float
861
- def __init__(self) -> None: ...
862
-
863
- class SF6O2ParametersIons:
864
- exponent: float
865
- inflectAngle: float
866
- meanEnergy: float
867
- minAngle: float
868
- n_l: float
869
- sigmaEnergy: float
870
- def __init__(self) -> None: ...
871
-
872
- class SF6O2ParametersMask:
873
- A_sp: float
874
- B_sp: float
875
- Eth_sp: float
876
- rho: float
877
- def __init__(self) -> None: ...
878
-
879
- class SF6O2ParametersPassivation:
880
- A_ie: float
881
- Eth_ie: float
882
- def __init__(self) -> None: ...
883
-
884
- class SF6O2ParametersSi:
885
- A_ie: float
886
- A_sp: float
887
- B_ie: float
888
- B_sp: float
889
- Eth_ie: float
890
- Eth_sp: float
891
- beta_sigma: float
892
- k_sigma: float
893
- rho: float
894
- theta_g_ie: float
895
- theta_g_sp: float
896
- def __init__(self) -> None: ...
1140
+ def __init__(self, parameters: PlasmaEtchingParameters) -> None: ...
1141
+ @staticmethod
1142
+ def defaultParameters() -> PlasmaEtchingParameters: ...
1143
+ def getParameters(self) -> PlasmaEtchingParameters: ...
1144
+ def setParameters(self, arg0: PlasmaEtchingParameters) -> None: ...
897
1145
 
898
1146
  class SingleParticleALD(ProcessModel):
899
1147
  def __init__(
@@ -986,24 +1234,4 @@ class ToDiskMesh:
986
1234
  def setDomain(self, arg0: Domain) -> None: ...
987
1235
  def setMesh(self, arg0: viennals2d.viennals2d.Mesh) -> None: ...
988
1236
 
989
- class rayTraceDirection:
990
- __members__: ClassVar[dict] = ... # read-only
991
- NEG_X: ClassVar[rayTraceDirection] = ...
992
- NEG_Y: ClassVar[rayTraceDirection] = ...
993
- NEG_Z: ClassVar[rayTraceDirection] = ...
994
- POS_X: ClassVar[rayTraceDirection] = ...
995
- POS_Y: ClassVar[rayTraceDirection] = ...
996
- POS_Z: ClassVar[rayTraceDirection] = ...
997
- __entries: ClassVar[dict] = ...
998
- def __init__(self, value: int) -> None: ...
999
- def __eq__(self, other: object) -> bool: ...
1000
- def __hash__(self) -> int: ...
1001
- def __index__(self) -> int: ...
1002
- def __int__(self) -> int: ...
1003
- def __ne__(self, other: object) -> bool: ...
1004
- @property
1005
- def name(self) -> str: ...
1006
- @property
1007
- def value(self) -> int: ...
1008
-
1009
1237
  def setNumThreads(arg0: int) -> None: ...
viennaps3d/__init__.py CHANGED
@@ -24,6 +24,15 @@ def _windows_dll_path():
24
24
  os.add_dll_directory(path)
25
25
  os.environ["PATH"] = path + os.pathsep + os.environ["PATH"]
26
26
 
27
+ def _module_ptx_path():
28
+ from importlib.util import find_spec
29
+ import os
30
+
31
+ spec = find_spec("viennaps3d")
32
+ install_path = os.path.dirname(os.path.abspath(spec.origin))
33
+ return os.path.join(install_path, "ptx")
34
+
35
+
27
36
  if sys.platform == "win32":
28
37
  _windows_dll_path()
29
38
 
@@ -32,6 +41,9 @@ from viennals3d import IntegrationSchemeEnum as IntegrationScheme
32
41
  from viennals3d import BoundaryConditionEnum as BoundaryType
33
42
  from .viennaps3d import *
34
43
 
44
+ if D == 3:
45
+ ptxPath = _module_ptx_path()
46
+
35
47
  # Config file reader helper function
36
48
  def ReadConfigFile(fileName: str):
37
49
  """Read a config file in the ViennaPS standard config file format.
@@ -39,7 +51,7 @@ def ReadConfigFile(fileName: str):
39
51
  Parameters
40
52
  ----------
41
53
  fileName: str
42
- Name of the config file.
54
+ Name of the config file.
43
55
 
44
56
  Returns
45
57
  -------
@@ -60,7 +72,8 @@ def ReadConfigFile(fileName: str):
60
72
 
61
73
  try:
62
74
  val = float(par_value)
63
- except: val = par_value
75
+ except:
76
+ val = par_value
64
77
 
65
78
  par_dict[par_name] = val
66
79
 
@@ -0,0 +1,111 @@
1
+ import viennals3d.viennals3d
2
+ import viennaps3d.viennaps3d
3
+ from typing import Callable, overload
4
+
5
+ class Context:
6
+ deviceID: int
7
+ def __init__(self) -> None: ...
8
+ def addModule(self, arg0: str) -> None: ...
9
+ def create(self, modulePath: Path = ..., deviceID: int = ...) -> None: ...
10
+ def destroy(self) -> None: ...
11
+
12
+ class MultiParticleProcess(ProcessModel):
13
+ def __init__(self) -> None: ...
14
+ def addIonParticle(
15
+ self,
16
+ sourcePower: float,
17
+ thetaRMin: float = ...,
18
+ thetaRMax: float = ...,
19
+ minAngle: float = ...,
20
+ B_sp: float = ...,
21
+ meanEnergy: float = ...,
22
+ sigmaEnergy: float = ...,
23
+ thresholdEnergy: float = ...,
24
+ inflectAngle: float = ...,
25
+ n: float = ...,
26
+ label: str = ...,
27
+ ) -> None: ...
28
+ @overload
29
+ def addNeutralParticle(
30
+ self, stickingProbability: float, label: str = ...
31
+ ) -> None: ...
32
+ @overload
33
+ def addNeutralParticle(
34
+ self,
35
+ materialSticking: dict[viennaps3d.viennaps3d.Material, float],
36
+ defaultStickingProbability: float = ...,
37
+ label: str = ...,
38
+ ) -> None: ...
39
+ def setRateFunction(
40
+ self, arg0: Callable[[list[float], viennaps3d.viennaps3d.Material], float]
41
+ ) -> None: ...
42
+
43
+ class Path:
44
+ def __init__(self, arg0: str) -> None: ...
45
+
46
+ class Process:
47
+ @overload
48
+ def __init__(self, context: Context) -> None: ...
49
+ @overload
50
+ def __init__(
51
+ self,
52
+ context: Context,
53
+ domain: viennaps3d.viennaps3d.Domain,
54
+ model: ProcessModel,
55
+ duration: float,
56
+ ) -> None: ...
57
+ def apply(self) -> None: ...
58
+ def calculateFlux(self) -> viennals3d.viennals3d.Mesh: ...
59
+ def disableAdvectionVelocityOutput(self) -> None: ...
60
+ def disableRandomSeeds(self) -> None: ...
61
+ def enableAdvectionVelocityOutput(self) -> None: ...
62
+ def enableRandomSeeds(self) -> None: ...
63
+ def getAdvectionParameters(self) -> viennaps3d.viennaps3d.AdvectionParameters: ...
64
+ def getProcessDuration(self) -> float: ...
65
+ def getRayTracingParameters(self) -> viennaps3d.viennaps3d.RayTracingParameters: ...
66
+ def setAdvectionParameters(
67
+ self, arg0: viennaps3d.viennaps3d.AdvectionParameters
68
+ ) -> None: ...
69
+ def setDomain(self, arg0: viennaps3d.viennaps3d.Domain) -> None: ...
70
+ def setIntegrationScheme(self, arg0) -> None: ...
71
+ def setMaxCoverageInitIterations(self, arg0: int) -> None: ...
72
+ def setNumberOfRaysPerPoint(self, arg0: int) -> None: ...
73
+ def setProcessDuration(self, arg0: float) -> None: ...
74
+ def setProcessModel(self, arg0: ProcessModel) -> None: ...
75
+ def setRayTracingParameters(
76
+ self, arg0: viennaps3d.viennaps3d.RayTracingParameters
77
+ ) -> None: ...
78
+ def setTimeStepRatio(self, arg0: float) -> None: ...
79
+
80
+ class ProcessModel:
81
+ def __init__(self, *args, **kwargs) -> None: ...
82
+
83
+ class SF6O2Etching(viennaps3d.viennaps3d.ProcessModel):
84
+ def __init__(
85
+ self, parameters: viennaps3d.viennaps3d.PlasmaEtchingParameters
86
+ ) -> None: ...
87
+
88
+ class SingleParticleProcess(ProcessModel):
89
+ @overload
90
+ def __init__(
91
+ self,
92
+ rate: float = ...,
93
+ stickingProbability: float = ...,
94
+ sourceExponent: float = ...,
95
+ maskMaterial: viennaps3d.viennaps3d.Material = ...,
96
+ ) -> None: ...
97
+ @overload
98
+ def __init__(
99
+ self,
100
+ rate: float,
101
+ stickingProbability: float,
102
+ sourceExponent: float,
103
+ maskMaterials: list[viennaps3d.viennaps3d.Material],
104
+ ) -> None: ...
105
+ @overload
106
+ def __init__(
107
+ self,
108
+ materialRates: dict[viennaps3d.viennaps3d.Material, float],
109
+ stickingProbability: float,
110
+ sourceExponent: float,
111
+ ) -> None: ...