ViennaPS 3.7.1__cp312-cp312-win_amd64.whl → 4.0.0__cp312-cp312-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 (71) hide show
  1. viennaps/__init__.py +126 -0
  2. viennaps/__init__.pyi +239 -0
  3. viennaps/_core/__init__.pyi +1110 -0
  4. viennaps/_core/constants.pyi +46 -0
  5. viennaps/_core/gpu.pyi +74 -0
  6. viennaps/_core/util.pyi +13 -0
  7. viennaps/_core.cp312-win_amd64.pyd +0 -0
  8. viennaps/d2/__init__.pyi +1449 -0
  9. viennaps/d2/gpu.pyi +85 -0
  10. viennaps/d3/__init__.pyi +1454 -0
  11. viennaps/d3/gpu.pyi +85 -0
  12. {viennaps-3.7.1.dist-info → viennaps-4.0.0.dist-info}/METADATA +28 -23
  13. viennaps-4.0.0.dist-info/RECORD +55 -0
  14. {viennaps-3.7.1.dist-info → viennaps-4.0.0.dist-info}/WHEEL +1 -1
  15. viennaps.libs/embree4.dll +0 -0
  16. viennaps.libs/embree4.exp +0 -0
  17. viennaps.libs/embree4.lib +0 -0
  18. viennaps.libs/embree_avx.lib +0 -0
  19. viennaps.libs/embree_avx2.lib +0 -0
  20. viennaps.libs/embree_sse42.lib +0 -0
  21. viennaps.libs/lexers.lib +0 -0
  22. viennaps.libs/math.lib +0 -0
  23. viennaps.libs/simd.lib +0 -0
  24. viennaps.libs/sys.lib +0 -0
  25. viennaps.libs/tasking.lib +0 -0
  26. viennaps.libs/tbb12.dll +0 -0
  27. viennaps.libs/tbb12.exp +0 -0
  28. viennaps.libs/tbb12.lib +0 -0
  29. viennaps.libs/vtkCommonComputationalGeometry-9.3.dll +0 -0
  30. viennaps.libs/vtkCommonCore-9.3.dll +0 -0
  31. viennaps.libs/vtkCommonDataModel-9.3.dll +0 -0
  32. viennaps.libs/vtkCommonExecutionModel-9.3.dll +0 -0
  33. viennaps.libs/vtkCommonMath-9.3.dll +0 -0
  34. viennaps.libs/vtkCommonMisc-9.3.dll +0 -0
  35. viennaps.libs/vtkCommonSystem-9.3.dll +0 -0
  36. viennaps.libs/vtkCommonTransforms-9.3.dll +0 -0
  37. viennaps.libs/vtkFiltersCore-9.3.dll +0 -0
  38. viennaps.libs/vtkFiltersGeneral-9.3.dll +0 -0
  39. viennaps.libs/vtkFiltersGeometry-9.3.dll +0 -0
  40. viennaps.libs/vtkFiltersVerdict-9.3.dll +0 -0
  41. viennaps.libs/vtkIOCore-9.3.dll +0 -0
  42. viennaps.libs/vtkIOXML-9.3.dll +0 -0
  43. viennaps.libs/vtkIOXMLParser-9.3.dll +0 -0
  44. viennaps.libs/vtkdoubleconversion-9.3.dll +0 -0
  45. viennaps.libs/vtkexpat-9.3.dll +0 -0
  46. viennaps.libs/vtkfmt-9.3.dll +0 -0
  47. viennaps.libs/vtkkissfft-9.3.dll +0 -0
  48. viennaps.libs/vtkloguru-9.3.dll +0 -0
  49. viennaps.libs/vtklz4-9.3.dll +0 -0
  50. viennaps.libs/vtklzma-9.3.dll +0 -0
  51. viennaps.libs/vtkpugixml-9.3.dll +0 -0
  52. viennaps.libs/vtksys-9.3.dll +0 -0
  53. viennaps.libs/vtkverdict-9.3.dll +0 -0
  54. viennaps.libs/vtkzlib-9.3.dll +0 -0
  55. viennaps-3.7.1.dist-info/RECORD +0 -59
  56. viennaps2d/Release/viennaps2d.cp310-win_amd64.pyd +0 -0
  57. viennaps2d/Release/viennaps2d.cp311-win_amd64.pyd +0 -0
  58. viennaps2d/Release/viennaps2d.cp312-win_amd64.pyd +0 -0
  59. viennaps2d/__init__.py +0 -80
  60. viennaps2d/__init__.pyi +0 -6
  61. viennaps2d/viennaps2d.cp312-win_amd64.pyd +0 -0
  62. viennaps2d/viennaps2d.pyi +0 -1423
  63. viennaps3d/Release/viennaps3d.cp310-win_amd64.pyd +0 -0
  64. viennaps3d/Release/viennaps3d.cp311-win_amd64.pyd +0 -0
  65. viennaps3d/Release/viennaps3d.cp312-win_amd64.pyd +0 -0
  66. viennaps3d/__init__.py +0 -80
  67. viennaps3d/__init__.pyi +0 -6
  68. viennaps3d/gpu.pyi +0 -147
  69. viennaps3d/viennaps3d.cp312-win_amd64.pyd +0 -0
  70. viennaps3d/viennaps3d.pyi +0 -1348
  71. {viennaps-3.7.1.dist-info → viennaps-4.0.0.dist-info}/licenses/LICENSE +0 -0
@@ -0,0 +1,1454 @@
1
+ """
2
+ 3D bindings
3
+ """
4
+
5
+ from __future__ import annotations
6
+ import collections.abc
7
+ import enum
8
+ import typing
9
+ import viennals._core
10
+ import viennals.d3
11
+ import viennaps._core
12
+ from . import gpu
13
+
14
+ __all__: list[str] = [
15
+ "AdvectionCallback",
16
+ "BoxDistribution",
17
+ "CF4O2Etching",
18
+ "CSVFileProcess",
19
+ "DenseCellSet",
20
+ "DirectionalProcess",
21
+ "Domain",
22
+ "DomainSetup",
23
+ "FaradayCageEtching",
24
+ "FluorocarbonEtching",
25
+ "GDSGeometry",
26
+ "GDSReader",
27
+ "GeometricTrenchDeposition",
28
+ "GeometryFactory",
29
+ "HBrO2Etching",
30
+ "Interpolation",
31
+ "IonBeamEtching",
32
+ "IsotropicProcess",
33
+ "MakeFin",
34
+ "MakeHole",
35
+ "MakePlane",
36
+ "MakeStack",
37
+ "MakeTrench",
38
+ "MultiParticleProcess",
39
+ "OxideRegrowth",
40
+ "Planarize",
41
+ "Process",
42
+ "ProcessModel",
43
+ "ProcessModelBase",
44
+ "RateGrid",
45
+ "Reader",
46
+ "SF6C4F8Etching",
47
+ "SF6O2Etching",
48
+ "SelectiveEpitaxy",
49
+ "SingleParticleALD",
50
+ "SingleParticleProcess",
51
+ "SphereDistribution",
52
+ "StencilLocalLaxFriedrichsScalar",
53
+ "TEOSDeposition",
54
+ "TEOSPECVD",
55
+ "ToDiskMesh",
56
+ "WetEtching",
57
+ "Writer",
58
+ "gpu",
59
+ ]
60
+
61
+ class AdvectionCallback:
62
+ domain: Domain
63
+ def __init__(self) -> None: ...
64
+ def applyPostAdvect(self, arg0: typing.SupportsFloat) -> bool: ...
65
+ def applyPreAdvect(self, arg0: typing.SupportsFloat) -> bool: ...
66
+
67
+ class BoxDistribution(ProcessModel):
68
+ @typing.overload
69
+ def __init__(
70
+ self,
71
+ halfAxes: typing.Annotated[
72
+ collections.abc.Sequence[typing.SupportsFloat], "FixedSize(3)"
73
+ ],
74
+ mask: viennals.d3.Domain,
75
+ ) -> None: ...
76
+ @typing.overload
77
+ def __init__(
78
+ self,
79
+ halfAxes: typing.Annotated[
80
+ collections.abc.Sequence[typing.SupportsFloat], "FixedSize(3)"
81
+ ],
82
+ ) -> None: ...
83
+
84
+ class CF4O2Etching(ProcessModel):
85
+ @typing.overload
86
+ def __init__(self) -> None: ...
87
+ @typing.overload
88
+ def __init__(
89
+ self,
90
+ ionFlux: typing.SupportsFloat,
91
+ etchantFlux: typing.SupportsFloat,
92
+ oxygenFlux: typing.SupportsFloat,
93
+ polymerFlux: typing.SupportsFloat,
94
+ meanIonEnergy: typing.SupportsFloat = 100.0,
95
+ sigmaIonEnergy: typing.SupportsFloat = 10.0,
96
+ ionExponent: typing.SupportsFloat = 100.0,
97
+ oxySputterYield: typing.SupportsFloat = 3.0,
98
+ polySputterYield: typing.SupportsFloat = 3.0,
99
+ etchStopDepth: typing.SupportsFloat = -1.7976931348623157e308,
100
+ ) -> None: ...
101
+ @typing.overload
102
+ def __init__(self, parameters: viennaps._core.CF4O2Parameters) -> None: ...
103
+ def getParameters(self) -> viennaps._core.CF4O2Parameters: ...
104
+ def setParameters(self, arg0: viennaps._core.CF4O2Parameters) -> None: ...
105
+
106
+ class CSVFileProcess(ProcessModel):
107
+ def __init__(
108
+ self,
109
+ ratesFile: str,
110
+ direction: typing.Annotated[
111
+ collections.abc.Sequence[typing.SupportsFloat], "FixedSize(3)"
112
+ ],
113
+ offset: typing.Annotated[
114
+ collections.abc.Sequence[typing.SupportsFloat], "FixedSize(2)"
115
+ ],
116
+ isotropicComponent: typing.SupportsFloat = 0.0,
117
+ directionalComponent: typing.SupportsFloat = 1.0,
118
+ maskMaterials: collections.abc.Sequence[viennaps._core.Material] = ...,
119
+ calculateVisibility: bool = True,
120
+ ) -> None: ...
121
+ def setCustomInterpolator(self, function: collections.abc.Callable) -> None: ...
122
+ def setIDWNeighbors(self, k: typing.SupportsInt = 4) -> None: ...
123
+ @typing.overload
124
+ def setInterpolationMode(self, mode: Interpolation) -> None: ...
125
+ @typing.overload
126
+ def setInterpolationMode(self, mode: str) -> None: ...
127
+ def setOffset(
128
+ self,
129
+ offset: typing.Annotated[
130
+ collections.abc.Sequence[typing.SupportsFloat], "FixedSize(2)"
131
+ ],
132
+ ) -> None: ...
133
+
134
+ class DenseCellSet:
135
+ def __init__(self) -> None: ...
136
+ @typing.overload
137
+ def addFillingFraction(
138
+ self, arg0: typing.SupportsInt, arg1: typing.SupportsFloat
139
+ ) -> bool:
140
+ """
141
+ Add to the filling fraction at given cell index.
142
+ """
143
+
144
+ @typing.overload
145
+ def addFillingFraction(
146
+ self,
147
+ arg0: typing.Annotated[
148
+ collections.abc.Sequence[typing.SupportsFloat], "FixedSize(3)"
149
+ ],
150
+ arg1: typing.SupportsFloat,
151
+ ) -> bool:
152
+ """
153
+ Add to the filling fraction for cell which contains given point.
154
+ """
155
+
156
+ def addFillingFractionInMaterial(
157
+ self,
158
+ arg0: typing.Annotated[
159
+ collections.abc.Sequence[typing.SupportsFloat], "FixedSize(3)"
160
+ ],
161
+ arg1: typing.SupportsFloat,
162
+ arg2: typing.SupportsInt,
163
+ ) -> bool:
164
+ """
165
+ Add to the filling fraction for cell which contains given point only if the cell has the specified material ID.
166
+ """
167
+
168
+ def addScalarData(self, arg0: str, arg1: typing.SupportsFloat) -> None:
169
+ """
170
+ Add a scalar value to be stored and modified in each cell.
171
+ """
172
+
173
+ def buildNeighborhood(self, forceRebuild: bool = False) -> None:
174
+ """
175
+ Generate fast neighbor access for each cell.
176
+ """
177
+
178
+ def clear(self) -> None:
179
+ """
180
+ Clear the filling fractions.
181
+ """
182
+
183
+ def fromLevelSets(
184
+ self,
185
+ levelSets: collections.abc.Sequence[viennals.d3.Domain],
186
+ materialMap: viennals._core.MaterialMap = None,
187
+ depth: typing.SupportsFloat = 0.0,
188
+ ) -> None: ...
189
+ def getAverageFillingFraction(
190
+ self,
191
+ arg0: typing.Annotated[
192
+ collections.abc.Sequence[typing.SupportsFloat], "FixedSize(3)"
193
+ ],
194
+ arg1: typing.SupportsFloat,
195
+ ) -> float:
196
+ """
197
+ Get the average filling at a point in some radius.
198
+ """
199
+
200
+ def getBoundingBox(
201
+ self,
202
+ ) -> typing.Annotated[
203
+ list[typing.Annotated[list[float], "FixedSize(3)"]], "FixedSize(2)"
204
+ ]: ...
205
+ def getCellCenter(
206
+ self, arg0: typing.SupportsInt
207
+ ) -> typing.Annotated[list[float], "FixedSize(3)"]:
208
+ """
209
+ Get the center of a cell with given index
210
+ """
211
+
212
+ def getCellGrid(self) -> viennals._core.Mesh:
213
+ """
214
+ Get the underlying mesh of the cell set.
215
+ """
216
+
217
+ def getDepth(self) -> float:
218
+ """
219
+ Get the depth of the cell set.
220
+ """
221
+
222
+ def getElement(
223
+ self, arg0: typing.SupportsInt
224
+ ) -> typing.Annotated[list[int], "FixedSize(8)"]:
225
+ """
226
+ Get the element at the given index.
227
+ """
228
+
229
+ def getElements(self) -> list[typing.Annotated[list[int], "FixedSize(8)"]]:
230
+ """
231
+ Get elements (cells). The indicies in the elements correspond to the corner nodes.
232
+ """
233
+
234
+ def getFillingFraction(
235
+ self,
236
+ arg0: typing.Annotated[
237
+ collections.abc.Sequence[typing.SupportsFloat], "FixedSize(3)"
238
+ ],
239
+ ) -> float:
240
+ """
241
+ Get the filling fraction of the cell containing the point.
242
+ """
243
+
244
+ def getFillingFractions(self) -> list[float]:
245
+ """
246
+ Get the filling fractions of all cells.
247
+ """
248
+
249
+ def getGridDelta(self) -> float:
250
+ """
251
+ Get the cell size.
252
+ """
253
+
254
+ def getIndex(
255
+ self,
256
+ arg0: typing.Annotated[
257
+ collections.abc.Sequence[typing.SupportsFloat], "FixedSize(3)"
258
+ ],
259
+ ) -> int:
260
+ """
261
+ Get the index of the cell containing the given point.
262
+ """
263
+
264
+ def getNeighbors(
265
+ self, arg0: typing.SupportsInt
266
+ ) -> typing.Annotated[list[int], "FixedSize(6)"]:
267
+ """
268
+ Get the neighbor indices for a cell.
269
+ """
270
+
271
+ def getNode(
272
+ self, arg0: typing.SupportsInt
273
+ ) -> typing.Annotated[list[float], "FixedSize(3)"]:
274
+ """
275
+ Get the node at the given index.
276
+ """
277
+
278
+ def getNodes(self) -> list[typing.Annotated[list[float], "FixedSize(3)"]]:
279
+ """
280
+ Get the nodes of the cell set which correspond to the corner points of the cells.
281
+ """
282
+
283
+ def getNumberOfCells(self) -> int:
284
+ """
285
+ Get the number of cells.
286
+ """
287
+
288
+ def getScalarData(self, arg0: str) -> list[float]:
289
+ """
290
+ Get the data stored at each cell. WARNING: This function only returns a copy of the data
291
+ """
292
+
293
+ def getScalarDataLabels(self) -> list[str]:
294
+ """
295
+ Get the labels of the scalar data stored in the cell set.
296
+ """
297
+
298
+ def getSurface(self) -> viennals.d3.Domain:
299
+ """
300
+ Get the surface level-set.
301
+ """
302
+
303
+ def readCellSetData(self, arg0: str) -> None:
304
+ """
305
+ Read cell set data from text.
306
+ """
307
+
308
+ def setCellSetPosition(self, arg0: bool) -> None:
309
+ """
310
+ Set whether the cell set should be created below (false) or above (true) the surface.
311
+ """
312
+
313
+ def setCoverMaterial(self, arg0: typing.SupportsInt) -> None:
314
+ """
315
+ Set the material of the cells which are above or below the surface.
316
+ """
317
+
318
+ @typing.overload
319
+ def setFillingFraction(
320
+ self, arg0: typing.SupportsInt, arg1: typing.SupportsFloat
321
+ ) -> bool:
322
+ """
323
+ Sets the filling fraction at given cell index.
324
+ """
325
+
326
+ @typing.overload
327
+ def setFillingFraction(
328
+ self,
329
+ arg0: typing.Annotated[
330
+ collections.abc.Sequence[typing.SupportsFloat], "FixedSize(3)"
331
+ ],
332
+ arg1: typing.SupportsFloat,
333
+ ) -> bool:
334
+ """
335
+ Sets the filling fraction for cell which contains given point.
336
+ """
337
+
338
+ def setPeriodicBoundary(
339
+ self, arg0: typing.Annotated[collections.abc.Sequence[bool], "FixedSize(3)"]
340
+ ) -> None:
341
+ """
342
+ Enable periodic boundary conditions in specified dimensions.
343
+ """
344
+
345
+ def updateMaterials(self) -> None:
346
+ """
347
+ Update the material IDs of the cell set. This function should be called if the level sets, the cell set is made out of, have changed. This does not work if the surface of the volume has changed. In this case, call the function 'updateSurface' first.
348
+ """
349
+
350
+ def updateSurface(self) -> None:
351
+ """
352
+ Updates the surface of the cell set. The new surface should be below the old surface as this function can only remove cells from the cell set.
353
+ """
354
+
355
+ def writeCellSetData(self, arg0: str) -> None:
356
+ """
357
+ Save cell set data in simple text format.
358
+ """
359
+
360
+ def writeVTU(self, arg0: str) -> None:
361
+ """
362
+ Write the cell set as .vtu file
363
+ """
364
+
365
+ class DirectionalProcess(ProcessModel):
366
+ @typing.overload
367
+ def __init__(
368
+ self,
369
+ direction: typing.Annotated[
370
+ collections.abc.Sequence[typing.SupportsFloat], "FixedSize(3)"
371
+ ],
372
+ directionalVelocity: typing.SupportsFloat,
373
+ isotropicVelocity: typing.SupportsFloat = 0.0,
374
+ maskMaterial: viennaps._core.Material = ...,
375
+ calculateVisibility: bool = True,
376
+ ) -> None: ...
377
+ @typing.overload
378
+ def __init__(
379
+ self,
380
+ direction: typing.Annotated[
381
+ collections.abc.Sequence[typing.SupportsFloat], "FixedSize(3)"
382
+ ],
383
+ directionalVelocity: typing.SupportsFloat,
384
+ isotropicVelocity: typing.SupportsFloat,
385
+ maskMaterial: collections.abc.Sequence[viennaps._core.Material],
386
+ calculateVisibility: bool = True,
387
+ ) -> None: ...
388
+ @typing.overload
389
+ def __init__(
390
+ self, rateSets: collections.abc.Sequence[viennaps._core.RateSet]
391
+ ) -> None: ...
392
+ @typing.overload
393
+ def __init__(self, rateSet: viennaps._core.RateSet) -> None: ...
394
+
395
+ class Domain:
396
+ @typing.overload
397
+ def __init__(self) -> None: ...
398
+ @typing.overload
399
+ def __init__(self, domain: Domain) -> None:
400
+ """
401
+ Deep copy constructor.
402
+ """
403
+
404
+ @typing.overload
405
+ def __init__(
406
+ self,
407
+ gridDelta: typing.SupportsFloat,
408
+ xExtent: typing.SupportsFloat,
409
+ yExtent: typing.SupportsFloat,
410
+ boundary: viennals._core.BoundaryConditionEnum = ...,
411
+ ) -> None: ...
412
+ @typing.overload
413
+ def __init__(
414
+ self,
415
+ gridDelta: typing.SupportsFloat,
416
+ xExtent: typing.SupportsFloat,
417
+ boundary: viennals._core.BoundaryConditionEnum = ...,
418
+ ) -> None: ...
419
+ @typing.overload
420
+ def __init__(
421
+ self,
422
+ bounds: typing.Annotated[
423
+ collections.abc.Sequence[typing.SupportsFloat], "FixedSize(6)"
424
+ ],
425
+ boundaryConditions: typing.Annotated[
426
+ collections.abc.Sequence[viennals._core.BoundaryConditionEnum],
427
+ "FixedSize(3)",
428
+ ],
429
+ gridDelta: typing.SupportsFloat = 1.0,
430
+ ) -> None: ...
431
+ @typing.overload
432
+ def __init__(self, setup: DomainSetup) -> None: ...
433
+ @typing.overload
434
+ def addMetaData(self, arg0: str, arg1: typing.SupportsFloat) -> None:
435
+ """
436
+ Add a single metadata entry to the domain.
437
+ """
438
+
439
+ @typing.overload
440
+ def addMetaData(
441
+ self, arg0: str, arg1: collections.abc.Sequence[typing.SupportsFloat]
442
+ ) -> None:
443
+ """
444
+ Add a single metadata entry to the domain.
445
+ """
446
+
447
+ @typing.overload
448
+ def addMetaData(
449
+ self,
450
+ arg0: collections.abc.Mapping[
451
+ str, collections.abc.Sequence[typing.SupportsFloat]
452
+ ],
453
+ ) -> None:
454
+ """
455
+ Add metadata to the domain.
456
+ """
457
+
458
+ def applyBooleanOperation(
459
+ self, arg0: viennals.d3.Domain, arg1: viennals._core.BooleanOperationEnum
460
+ ) -> None: ...
461
+ def clear(self) -> None: ...
462
+ def clearMetaData(self, clearDomainData: bool = False) -> None:
463
+ """
464
+ Clear meta data from domain.
465
+ """
466
+
467
+ def deepCopy(self, arg0: Domain) -> None: ...
468
+ def disableMetaData(self) -> None:
469
+ """
470
+ Disable adding meta data to domain.
471
+ """
472
+
473
+ def duplicateTopLevelSet(self, arg0: viennaps._core.Material) -> None:
474
+ """
475
+ Duplicate the top level set. Should be used before a deposition process.
476
+ """
477
+
478
+ def enableMetaData(self, level: viennaps._core.MetaDataLevel = ...) -> None:
479
+ """
480
+ Enable adding meta data from processes to domain.
481
+ """
482
+
483
+ def generateCellSet(
484
+ self, arg0: typing.SupportsFloat, arg1: viennaps._core.Material, arg2: bool
485
+ ) -> None:
486
+ """
487
+ Generate the cell set.
488
+ """
489
+
490
+ def getBoundaryConditions(
491
+ self,
492
+ ) -> typing.Annotated[list[viennals._core.BoundaryConditionEnum], "FixedSize(3)"]:
493
+ """
494
+ Get the boundary conditions of the domain.
495
+ """
496
+
497
+ def getBoundingBox(
498
+ self,
499
+ ) -> typing.Annotated[
500
+ list[typing.Annotated[list[float], "FixedSize(3)"]], "FixedSize(2)"
501
+ ]:
502
+ """
503
+ Get the bounding box of the domain.
504
+ """
505
+
506
+ def getCellSet(self) -> DenseCellSet:
507
+ """
508
+ Get the cell set.
509
+ """
510
+
511
+ def getGrid(self) -> viennals.d3.hrleGrid:
512
+ """
513
+ Get the grid
514
+ """
515
+
516
+ def getGridDelta(self) -> float:
517
+ """
518
+ Get the grid delta.
519
+ """
520
+
521
+ def getLevelSetMesh(
522
+ self, width: typing.SupportsInt = 1
523
+ ) -> list[viennals._core.Mesh]:
524
+ """
525
+ Get the level set grids of layers in the domain.
526
+ """
527
+
528
+ def getLevelSets(self) -> list[viennals.d3.Domain]: ...
529
+ def getMaterialMap(self) -> viennaps._core.MaterialMap: ...
530
+ def getMetaData(self) -> dict[str, list[float]]:
531
+ """
532
+ Get meta data (e.g. process data) stored in the domain
533
+ """
534
+
535
+ def getMetaDataLevel(self) -> viennaps._core.MetaDataLevel:
536
+ """
537
+ Get the current meta data level of the domain.
538
+ """
539
+
540
+ def getSetup(self) -> DomainSetup:
541
+ """
542
+ Get the domain setup.
543
+ """
544
+
545
+ def getSurfaceMesh(
546
+ self,
547
+ addInterfaces: bool = False,
548
+ wrappingLayerEpsilon: typing.SupportsFloat = 0.01,
549
+ boolMaterials: bool = False,
550
+ ) -> viennals._core.Mesh:
551
+ """
552
+ Get the surface mesh of the domain
553
+ """
554
+
555
+ def insertNextLevelSet(
556
+ self, levelset: viennals.d3.Domain, wrapLowerLevelSet: bool = True
557
+ ) -> None:
558
+ """
559
+ Insert a level set to domain.
560
+ """
561
+
562
+ def insertNextLevelSetAsMaterial(
563
+ self,
564
+ levelSet: viennals.d3.Domain,
565
+ material: viennaps._core.Material,
566
+ wrapLowerLevelSet: bool = True,
567
+ ) -> None:
568
+ """
569
+ Insert a level set to domain as a material.
570
+ """
571
+
572
+ def print(self, hrleInfo: bool = False) -> None:
573
+ """
574
+ Print the domain information.
575
+ """
576
+
577
+ def removeLevelSet(self, arg0: typing.SupportsInt, arg1: bool) -> None: ...
578
+ def removeMaterial(self, arg0: viennaps._core.Material) -> None: ...
579
+ def removeTopLevelSet(self) -> None: ...
580
+ def saveHullMesh(
581
+ self, filename: str, wrappingLayerEpsilon: typing.SupportsFloat = 0.01
582
+ ) -> None:
583
+ """
584
+ Save the hull of the domain.
585
+ """
586
+
587
+ def saveLevelSetMesh(self, filename: str, width: typing.SupportsInt = 1) -> None:
588
+ """
589
+ Save the level set grids of layers in the domain.
590
+ """
591
+
592
+ def saveLevelSets(self, filename: str) -> None: ...
593
+ def saveSurfaceMesh(
594
+ self,
595
+ filename: str,
596
+ addInterfaces: bool = False,
597
+ wrappingLayerEpsilon: typing.SupportsFloat = 0.01,
598
+ boolMaterials: bool = False,
599
+ ) -> None:
600
+ """
601
+ Save the surface of the domain.
602
+ """
603
+
604
+ def saveVolumeMesh(
605
+ self, filename: str, wrappingLayerEpsilon: typing.SupportsFloat = 0.01
606
+ ) -> None:
607
+ """
608
+ Save the volume representation of the domain.
609
+ """
610
+
611
+ def setMaterialMap(self, arg0: viennaps._core.MaterialMap) -> None: ...
612
+ @typing.overload
613
+ def setup(self, arg0: DomainSetup) -> None:
614
+ """
615
+ Setup the domain.
616
+ """
617
+
618
+ @typing.overload
619
+ def setup(
620
+ self,
621
+ gridDelta: typing.SupportsFloat,
622
+ xExtent: typing.SupportsFloat,
623
+ yExtent: typing.SupportsFloat = 0.0,
624
+ boundary: viennals._core.BoundaryConditionEnum = ...,
625
+ ) -> None:
626
+ """
627
+ Setup the domain.
628
+ """
629
+
630
+ class DomainSetup:
631
+ @typing.overload
632
+ def __init__(self) -> None: ...
633
+ @typing.overload
634
+ def __init__(
635
+ self,
636
+ gridDelta: typing.SupportsFloat,
637
+ xExtent: typing.SupportsFloat,
638
+ yExtent: typing.SupportsFloat,
639
+ boundary: viennals._core.BoundaryConditionEnum = ...,
640
+ ) -> None: ...
641
+ def boundaryCons(
642
+ self,
643
+ ) -> typing.Annotated[
644
+ list[viennals._core.BoundaryConditionEnum], "FixedSize(3)"
645
+ ]: ...
646
+ def bounds(self) -> typing.Annotated[list[float], "FixedSize(6)"]: ...
647
+ def check(self) -> None: ...
648
+ def grid(self) -> viennals.d3.hrleGrid: ...
649
+ def gridDelta(self) -> float: ...
650
+ def halveXAxis(self) -> None: ...
651
+ def halveYAxis(self) -> None: ...
652
+ def hasPeriodicBoundary(self) -> bool: ...
653
+ def isValid(self) -> bool: ...
654
+ def print(self) -> None: ...
655
+ def xExtent(self) -> float: ...
656
+ def yExtent(self) -> float: ...
657
+
658
+ class FaradayCageEtching(ProcessModel):
659
+ @typing.overload
660
+ def __init__(self) -> None: ...
661
+ @typing.overload
662
+ def __init__(
663
+ self, maskMaterials: collections.abc.Sequence[viennaps._core.Material]
664
+ ) -> None: ...
665
+ @typing.overload
666
+ def __init__(
667
+ self,
668
+ maskMaterials: collections.abc.Sequence[viennaps._core.Material],
669
+ parameters: viennaps._core.FaradayCageParameters,
670
+ ) -> None: ...
671
+ def getParameters(self) -> viennaps._core.FaradayCageParameters: ...
672
+ def setParameters(self, arg0: viennaps._core.FaradayCageParameters) -> None: ...
673
+
674
+ class FluorocarbonEtching(ProcessModel):
675
+ def __init__(self, parameters: viennaps._core.FluorocarbonParameters) -> None: ...
676
+ def setParameters(self, arg0: viennaps._core.FluorocarbonParameters) -> None: ...
677
+
678
+ class GDSGeometry:
679
+ @typing.overload
680
+ def __init__(self) -> None: ...
681
+ @typing.overload
682
+ def __init__(self, gridDelta: typing.SupportsFloat) -> None: ...
683
+ @typing.overload
684
+ def __init__(
685
+ self,
686
+ gridDelta: typing.SupportsFloat,
687
+ boundaryConditions: typing.Annotated[
688
+ collections.abc.Sequence[viennals._core.BoundaryConditionEnum],
689
+ "FixedSize(3)",
690
+ ],
691
+ ) -> None: ...
692
+ def addBlur(
693
+ self,
694
+ sigmas: collections.abc.Sequence[typing.SupportsFloat],
695
+ weights: collections.abc.Sequence[typing.SupportsFloat],
696
+ threshold: typing.SupportsFloat = 0.5,
697
+ delta: typing.SupportsFloat = 0.0,
698
+ gridRefinement: typing.SupportsInt = 4,
699
+ ) -> None:
700
+ """
701
+ Set parameters for applying mask blurring.
702
+ """
703
+
704
+ def getAllLayers(self) -> set[int]:
705
+ """
706
+ Return a set of all layers found in the GDS file.
707
+ """
708
+
709
+ def getBounds(self) -> typing.Annotated[list[float], "FixedSize(6)"]:
710
+ """
711
+ Get the bounds of the geometry.
712
+ """
713
+
714
+ def getNumberOfStructures(self) -> int:
715
+ """
716
+ Return number of structure definitions.
717
+ """
718
+
719
+ def layerToLevelSet(
720
+ self,
721
+ layer: typing.SupportsInt,
722
+ baseHeight: typing.SupportsFloat = 0.0,
723
+ height: typing.SupportsFloat = 1.0,
724
+ mask: bool = False,
725
+ blurLayer: bool = True,
726
+ ) -> viennals.d3.Domain: ...
727
+ def print(self) -> None:
728
+ """
729
+ Print the geometry contents.
730
+ """
731
+
732
+ def setBoundaryConditions(
733
+ self, arg0: collections.abc.Sequence[viennals._core.BoundaryConditionEnum]
734
+ ) -> None:
735
+ """
736
+ Set the boundary conditions
737
+ """
738
+
739
+ def setBoundaryPadding(
740
+ self, arg0: typing.SupportsFloat, arg1: typing.SupportsFloat
741
+ ) -> None:
742
+ """
743
+ Set padding between the largest point of the geometry and the boundary of the domain.
744
+ """
745
+
746
+ def setGridDelta(self, arg0: typing.SupportsFloat) -> None:
747
+ """
748
+ Set the grid spacing.
749
+ """
750
+
751
+ class GDSReader:
752
+ @typing.overload
753
+ def __init__(self) -> None: ...
754
+ @typing.overload
755
+ def __init__(self, arg0: GDSGeometry, arg1: str) -> None: ...
756
+ def apply(self) -> None:
757
+ """
758
+ Parse the GDS file.
759
+ """
760
+
761
+ def setFileName(self, arg0: str) -> None:
762
+ """
763
+ Set name of the GDS file.
764
+ """
765
+
766
+ def setGeometry(self, arg0: GDSGeometry) -> None:
767
+ """
768
+ Set the domain to be parsed in.
769
+ """
770
+
771
+ class GeometricTrenchDeposition(ProcessModel):
772
+ def __init__(
773
+ self,
774
+ trenchWidth: typing.SupportsFloat,
775
+ trenchDepth: typing.SupportsFloat,
776
+ depositionRate: typing.SupportsFloat,
777
+ bottomMed: typing.SupportsFloat,
778
+ a: typing.SupportsFloat,
779
+ b: typing.SupportsFloat,
780
+ n: typing.SupportsFloat,
781
+ ) -> None: ...
782
+
783
+ class GeometryFactory:
784
+ def __init__(
785
+ self, domainSetup: DomainSetup, name: str = "GeometryFactory"
786
+ ) -> None: ...
787
+ def makeBoxStencil(
788
+ self,
789
+ position: typing.Annotated[
790
+ collections.abc.Sequence[typing.SupportsFloat], "FixedSize(3)"
791
+ ],
792
+ width: typing.SupportsFloat,
793
+ height: typing.SupportsFloat,
794
+ angle: typing.SupportsFloat = 0.0,
795
+ length: typing.SupportsFloat = -1.0,
796
+ ) -> viennals.d3.Domain: ...
797
+ def makeCylinderStencil(
798
+ self,
799
+ position: typing.Annotated[
800
+ collections.abc.Sequence[typing.SupportsFloat], "FixedSize(3)"
801
+ ],
802
+ radius: typing.SupportsFloat,
803
+ height: typing.SupportsFloat,
804
+ angle: typing.SupportsFloat = 0.0,
805
+ ) -> viennals.d3.Domain: ...
806
+ def makeMask(
807
+ self, base: typing.SupportsFloat, height: typing.SupportsFloat
808
+ ) -> viennals.d3.Domain: ...
809
+ def makeSubstrate(self, base: typing.SupportsFloat) -> viennals.d3.Domain: ...
810
+
811
+ class HBrO2Etching(ProcessModel):
812
+ @staticmethod
813
+ def defaultParameters() -> viennaps._core.PlasmaEtchingParameters: ...
814
+ @typing.overload
815
+ def __init__(self) -> None: ...
816
+ @typing.overload
817
+ def __init__(
818
+ self,
819
+ ionFlux: typing.SupportsFloat,
820
+ etchantFlux: typing.SupportsFloat,
821
+ oxygenFlux: typing.SupportsFloat,
822
+ meanIonEnergy: typing.SupportsFloat = 100.0,
823
+ sigmaIonEnergy: typing.SupportsFloat = 10.0,
824
+ ionExponent: typing.SupportsFloat = 100.0,
825
+ oxySputterYield: typing.SupportsFloat = 3.0,
826
+ etchStopDepth: typing.SupportsFloat = -1.7976931348623157e308,
827
+ ) -> None: ...
828
+ @typing.overload
829
+ def __init__(self, parameters: viennaps._core.PlasmaEtchingParameters) -> None: ...
830
+ def getParameters(self) -> viennaps._core.PlasmaEtchingParameters: ...
831
+ def setParameters(self, arg0: viennaps._core.PlasmaEtchingParameters) -> None: ...
832
+
833
+ class Interpolation(enum.IntEnum):
834
+ CUSTOM: typing.ClassVar[Interpolation] # value = <Interpolation.CUSTOM: 2>
835
+ IDW: typing.ClassVar[Interpolation] # value = <Interpolation.IDW: 1>
836
+ LINEAR: typing.ClassVar[Interpolation] # value = <Interpolation.LINEAR: 0>
837
+ @classmethod
838
+ def __new__(cls, value): ...
839
+ def __format__(self, format_spec):
840
+ """
841
+ Convert to a string according to format_spec.
842
+ """
843
+
844
+ class IonBeamEtching(ProcessModel):
845
+ @typing.overload
846
+ def __init__(self) -> None: ...
847
+ @typing.overload
848
+ def __init__(
849
+ self, maskMaterials: collections.abc.Sequence[viennaps._core.Material]
850
+ ) -> None: ...
851
+ @typing.overload
852
+ def __init__(
853
+ self,
854
+ maskMaterials: collections.abc.Sequence[viennaps._core.Material],
855
+ parameters: viennaps._core.IBEParameters,
856
+ ) -> None: ...
857
+ def getParameters(self) -> viennaps._core.IBEParameters: ...
858
+ def setParameters(self, arg0: viennaps._core.IBEParameters) -> None: ...
859
+
860
+ class IsotropicProcess(ProcessModel):
861
+ @typing.overload
862
+ def __init__(
863
+ self,
864
+ rate: typing.SupportsFloat = 1.0,
865
+ maskMaterial: viennaps._core.Material = ...,
866
+ ) -> None: ...
867
+ @typing.overload
868
+ def __init__(
869
+ self,
870
+ rate: typing.SupportsFloat,
871
+ maskMaterial: collections.abc.Sequence[viennaps._core.Material],
872
+ ) -> None: ...
873
+ @typing.overload
874
+ def __init__(
875
+ self,
876
+ materialRates: collections.abc.Mapping[
877
+ viennaps._core.Material, typing.SupportsFloat
878
+ ],
879
+ defaultRate: typing.SupportsFloat = 0.0,
880
+ ) -> None: ...
881
+
882
+ class MakeFin:
883
+ @typing.overload
884
+ def __init__(
885
+ self,
886
+ domain: Domain,
887
+ finWidth: typing.SupportsFloat,
888
+ finHeight: typing.SupportsFloat,
889
+ finTaperAngle: typing.SupportsFloat = 0.0,
890
+ maskHeight: typing.SupportsFloat = 0,
891
+ maskTaperAngle: typing.SupportsFloat = 0,
892
+ halfFin: bool = False,
893
+ material: viennaps._core.Material = ...,
894
+ maskMaterial: viennaps._core.Material = ...,
895
+ ) -> None: ...
896
+ @typing.overload
897
+ def __init__(
898
+ self,
899
+ domain: Domain,
900
+ gridDelta: typing.SupportsFloat,
901
+ xExtent: typing.SupportsFloat,
902
+ yExtent: typing.SupportsFloat,
903
+ finWidth: typing.SupportsFloat,
904
+ finHeight: typing.SupportsFloat,
905
+ taperAngle: typing.SupportsFloat = 0.0,
906
+ baseHeight: typing.SupportsFloat = 0.0,
907
+ periodicBoundary: bool = False,
908
+ makeMask: bool = False,
909
+ material: viennaps._core.Material = ...,
910
+ ) -> None: ...
911
+ def apply(self) -> None:
912
+ """
913
+ Create a fin geometry.
914
+ """
915
+
916
+ class MakeHole:
917
+ @typing.overload
918
+ def __init__(
919
+ self,
920
+ domain: Domain,
921
+ holeRadius: typing.SupportsFloat,
922
+ holeDepth: typing.SupportsFloat,
923
+ holeTaperAngle: typing.SupportsFloat = 0.0,
924
+ maskHeight: typing.SupportsFloat = 0.0,
925
+ maskTaperAngle: typing.SupportsFloat = 0.0,
926
+ holeShape: viennaps._core.HoleShape = ...,
927
+ material: viennaps._core.Material = ...,
928
+ maskMaterial: viennaps._core.Material = ...,
929
+ ) -> None: ...
930
+ @typing.overload
931
+ def __init__(
932
+ self,
933
+ domain: Domain,
934
+ gridDelta: typing.SupportsFloat,
935
+ xExtent: typing.SupportsFloat,
936
+ yExtent: typing.SupportsFloat,
937
+ holeRadius: typing.SupportsFloat,
938
+ holeDepth: typing.SupportsFloat,
939
+ taperingAngle: typing.SupportsFloat = 0.0,
940
+ baseHeight: typing.SupportsFloat = 0.0,
941
+ periodicBoundary: bool = False,
942
+ makeMask: bool = False,
943
+ material: viennaps._core.Material = ...,
944
+ holeShape: viennaps._core.HoleShape = ...,
945
+ ) -> None: ...
946
+ def apply(self) -> None:
947
+ """
948
+ Create a hole geometry.
949
+ """
950
+
951
+ class MakePlane:
952
+ @typing.overload
953
+ def __init__(
954
+ self,
955
+ domain: Domain,
956
+ height: typing.SupportsFloat = 0.0,
957
+ material: viennaps._core.Material = ...,
958
+ addToExisting: bool = False,
959
+ ) -> None: ...
960
+ @typing.overload
961
+ def __init__(
962
+ self,
963
+ domain: Domain,
964
+ gridDelta: typing.SupportsFloat,
965
+ xExtent: typing.SupportsFloat,
966
+ yExtent: typing.SupportsFloat,
967
+ height: typing.SupportsFloat = 0.0,
968
+ periodicBoundary: bool = False,
969
+ material: viennaps._core.Material = ...,
970
+ ) -> None: ...
971
+ def apply(self) -> None:
972
+ """
973
+ Create a plane geometry or add plane to existing geometry.
974
+ """
975
+
976
+ class MakeStack:
977
+ @typing.overload
978
+ def __init__(
979
+ self,
980
+ domain: Domain,
981
+ numLayers: typing.SupportsInt,
982
+ layerHeight: typing.SupportsFloat,
983
+ substrateHeight: typing.SupportsFloat = 0,
984
+ holeRadius: typing.SupportsFloat = 0,
985
+ trenchWidth: typing.SupportsFloat = 0,
986
+ maskHeight: typing.SupportsFloat = 0,
987
+ taperAngle: typing.SupportsFloat = 0,
988
+ halfStack: bool = False,
989
+ maskMaterial: viennaps._core.Material = ...,
990
+ ) -> None: ...
991
+ @typing.overload
992
+ def __init__(
993
+ self,
994
+ domain: Domain,
995
+ gridDelta: typing.SupportsFloat,
996
+ xExtent: typing.SupportsFloat,
997
+ yExtent: typing.SupportsFloat,
998
+ numLayers: typing.SupportsInt,
999
+ layerHeight: typing.SupportsFloat,
1000
+ substrateHeight: typing.SupportsFloat,
1001
+ holeRadius: typing.SupportsFloat,
1002
+ trenchWidth: typing.SupportsFloat,
1003
+ maskHeight: typing.SupportsFloat,
1004
+ periodicBoundary: bool = False,
1005
+ ) -> None: ...
1006
+ def apply(self) -> None:
1007
+ """
1008
+ Create a stack of alternating SiO2 and Si3N4 layers.
1009
+ """
1010
+
1011
+ def getHeight(self) -> float:
1012
+ """
1013
+ Returns the total height of the stack.
1014
+ """
1015
+
1016
+ def getTopLayer(self) -> int:
1017
+ """
1018
+ Returns the number of layers included in the stack
1019
+ """
1020
+
1021
+ class MakeTrench:
1022
+ @typing.overload
1023
+ def __init__(
1024
+ self,
1025
+ domain: Domain,
1026
+ trenchWidth: typing.SupportsFloat,
1027
+ trenchDepth: typing.SupportsFloat,
1028
+ trenchTaperAngle: typing.SupportsFloat = 0,
1029
+ maskHeight: typing.SupportsFloat = 0,
1030
+ maskTaperAngle: typing.SupportsFloat = 0,
1031
+ halfTrench: bool = False,
1032
+ material: viennaps._core.Material = ...,
1033
+ maskMaterial: viennaps._core.Material = ...,
1034
+ ) -> None: ...
1035
+ @typing.overload
1036
+ def __init__(
1037
+ self,
1038
+ domain: Domain,
1039
+ gridDelta: typing.SupportsFloat,
1040
+ xExtent: typing.SupportsFloat,
1041
+ yExtent: typing.SupportsFloat,
1042
+ trenchWidth: typing.SupportsFloat,
1043
+ trenchDepth: typing.SupportsFloat,
1044
+ taperingAngle: typing.SupportsFloat = 0.0,
1045
+ baseHeight: typing.SupportsFloat = 0.0,
1046
+ periodicBoundary: bool = False,
1047
+ makeMask: bool = False,
1048
+ material: viennaps._core.Material = ...,
1049
+ ) -> None: ...
1050
+ def apply(self) -> None:
1051
+ """
1052
+ Create a trench geometry.
1053
+ """
1054
+
1055
+ class MultiParticleProcess(ProcessModel):
1056
+ def __init__(self) -> None: ...
1057
+ def addIonParticle(
1058
+ self,
1059
+ sourcePower: typing.SupportsFloat,
1060
+ thetaRMin: typing.SupportsFloat = 0.0,
1061
+ thetaRMax: typing.SupportsFloat = 90.0,
1062
+ minAngle: typing.SupportsFloat = 0.0,
1063
+ B_sp: typing.SupportsFloat = -1.0,
1064
+ meanEnergy: typing.SupportsFloat = 0.0,
1065
+ sigmaEnergy: typing.SupportsFloat = 0.0,
1066
+ thresholdEnergy: typing.SupportsFloat = 0.0,
1067
+ inflectAngle: typing.SupportsFloat = 0.0,
1068
+ n: typing.SupportsFloat = 1,
1069
+ label: str = "ionFlux",
1070
+ ) -> None: ...
1071
+ @typing.overload
1072
+ def addNeutralParticle(
1073
+ self, stickingProbability: typing.SupportsFloat, label: str = "neutralFlux"
1074
+ ) -> None: ...
1075
+ @typing.overload
1076
+ def addNeutralParticle(
1077
+ self,
1078
+ materialSticking: collections.abc.Mapping[
1079
+ viennaps._core.Material, typing.SupportsFloat
1080
+ ],
1081
+ defaultStickingProbability: typing.SupportsFloat = 1.0,
1082
+ label: str = "neutralFlux",
1083
+ ) -> None: ...
1084
+ def setRateFunction(
1085
+ self,
1086
+ arg0: collections.abc.Callable[
1087
+ [collections.abc.Sequence[typing.SupportsFloat], viennaps._core.Material],
1088
+ float,
1089
+ ],
1090
+ ) -> None: ...
1091
+
1092
+ class OxideRegrowth(ProcessModel):
1093
+ def __init__(
1094
+ self,
1095
+ nitrideEtchRate: typing.SupportsFloat,
1096
+ oxideEtchRate: typing.SupportsFloat,
1097
+ redepositionRate: typing.SupportsFloat,
1098
+ redepositionThreshold: typing.SupportsFloat,
1099
+ redepositionTimeInt: typing.SupportsFloat,
1100
+ diffusionCoefficient: typing.SupportsFloat,
1101
+ sinkStrength: typing.SupportsFloat,
1102
+ scallopVelocity: typing.SupportsFloat,
1103
+ centerVelocity: typing.SupportsFloat,
1104
+ topHeight: typing.SupportsFloat,
1105
+ centerWidth: typing.SupportsFloat,
1106
+ stabilityFactor: typing.SupportsFloat,
1107
+ ) -> None: ...
1108
+
1109
+ class Planarize:
1110
+ @typing.overload
1111
+ def __init__(self) -> None: ...
1112
+ @typing.overload
1113
+ def __init__(
1114
+ self, geometry: Domain, cutoffHeight: typing.SupportsFloat = 0.0
1115
+ ) -> None: ...
1116
+ def apply(self) -> None:
1117
+ """
1118
+ Apply the planarization.
1119
+ """
1120
+
1121
+ def setCutoffPosition(self, arg0: typing.SupportsFloat) -> None:
1122
+ """
1123
+ Set the cutoff height for the planarization.
1124
+ """
1125
+
1126
+ def setDomain(self, arg0: Domain) -> None:
1127
+ """
1128
+ Set the domain in the planarization.
1129
+ """
1130
+
1131
+ class Process:
1132
+ @typing.overload
1133
+ def __init__(self) -> None: ...
1134
+ @typing.overload
1135
+ def __init__(self, domain: Domain) -> None: ...
1136
+ @typing.overload
1137
+ def __init__(
1138
+ self,
1139
+ domain: Domain,
1140
+ model: ProcessModelBase,
1141
+ duration: typing.SupportsFloat = 0.0,
1142
+ ) -> None: ...
1143
+ def apply(self) -> None:
1144
+ """
1145
+ Run the process.
1146
+ """
1147
+
1148
+ def calculateFlux(self) -> viennals._core.Mesh:
1149
+ """
1150
+ Perform a single-pass flux calculation.
1151
+ """
1152
+
1153
+ def setDomain(self, arg0: Domain) -> None:
1154
+ """
1155
+ Set the process domain.
1156
+ """
1157
+
1158
+ def setFluxEngineType(self, arg0: viennaps._core.FluxEngineType) -> None:
1159
+ """
1160
+ Set the flux engine type (CPU or GPU).
1161
+ """
1162
+
1163
+ @typing.overload
1164
+ def setParameters(self, parameters: viennaps._core.AdvectionParameters) -> None:
1165
+ """
1166
+ Set the advection parameters for the process.
1167
+ """
1168
+
1169
+ @typing.overload
1170
+ def setParameters(self, parameters: viennaps._core.RayTracingParameters) -> None:
1171
+ """
1172
+ Set the ray tracing parameters for the process.
1173
+ """
1174
+
1175
+ @typing.overload
1176
+ def setParameters(self, parameters: viennaps._core.CoverageParameters) -> None:
1177
+ """
1178
+ Set the coverage parameters for the process.
1179
+ """
1180
+
1181
+ @typing.overload
1182
+ def setParameters(
1183
+ self, parameters: viennaps._core.AtomicLayerProcessParameters
1184
+ ) -> None:
1185
+ """
1186
+ Set the atomic layer parameters for the process.
1187
+ """
1188
+
1189
+ def setProcessDuration(self, arg0: typing.SupportsFloat) -> None:
1190
+ """
1191
+ Set the process duration.
1192
+ """
1193
+
1194
+ def setProcessModel(self, arg0: ProcessModelBase) -> None:
1195
+ """
1196
+ Set the process model. This has to be a pre-configured process model.
1197
+ """
1198
+
1199
+ class ProcessModel(ProcessModelBase):
1200
+ @staticmethod
1201
+ def setAdvectionCallback(*args, **kwargs) -> None: ...
1202
+ @staticmethod
1203
+ def setGeometricModel(*args, **kwargs) -> None: ...
1204
+ @staticmethod
1205
+ def setVelocityField(*args, **kwargs) -> None: ...
1206
+ def __init__(self) -> None: ...
1207
+ def getAdvectionCallback(self) -> ...: ...
1208
+ def getGeometricModel(self) -> ...: ...
1209
+ def getPrimaryDirection(
1210
+ self,
1211
+ ) -> typing.Annotated[list[float], "FixedSize(3)"] | None: ...
1212
+ def getProcessName(self) -> str | None: ...
1213
+ def getSurfaceModel(self) -> ...: ...
1214
+ def getVelocityField(self) -> ...: ...
1215
+ def setPrimaryDirection(
1216
+ self,
1217
+ arg0: typing.Annotated[
1218
+ collections.abc.Sequence[typing.SupportsFloat], "FixedSize(3)"
1219
+ ],
1220
+ ) -> None: ...
1221
+ def setProcessName(self, arg0: str) -> None: ...
1222
+ def setSurfaceModel(self, arg0: ...) -> None: ...
1223
+
1224
+ class ProcessModelBase:
1225
+ pass
1226
+
1227
+ class RateGrid:
1228
+ def __init__(self) -> None: ...
1229
+ def interpolate(
1230
+ self,
1231
+ coord: typing.Annotated[
1232
+ collections.abc.Sequence[typing.SupportsFloat], "FixedSize(3)"
1233
+ ],
1234
+ ) -> float: ...
1235
+ def loadFromCSV(self, filename: str) -> bool: ...
1236
+ def setCustomInterpolator(self, function: collections.abc.Callable) -> None: ...
1237
+ def setIDWNeighbors(self, k: typing.SupportsInt) -> None: ...
1238
+ @typing.overload
1239
+ def setInterpolationMode(self, mode: Interpolation) -> None: ...
1240
+ @typing.overload
1241
+ def setInterpolationMode(self, mode: str) -> None: ...
1242
+ def setOffset(
1243
+ self,
1244
+ offset: typing.Annotated[
1245
+ collections.abc.Sequence[typing.SupportsFloat], "FixedSize(2)"
1246
+ ],
1247
+ ) -> None: ...
1248
+
1249
+ class Reader:
1250
+ @typing.overload
1251
+ def __init__(self) -> None: ...
1252
+ @typing.overload
1253
+ def __init__(self, fileName: str) -> None: ...
1254
+ def apply(self) -> None:
1255
+ """
1256
+ Read the domain from the specified file.
1257
+ """
1258
+
1259
+ def setFileName(self, arg0: str) -> None:
1260
+ """
1261
+ Set the input file name to read (should end with .vpsd).
1262
+ """
1263
+
1264
+ class SF6C4F8Etching(ProcessModel):
1265
+ @staticmethod
1266
+ def defaultParameters() -> viennaps._core.PlasmaEtchingParameters: ...
1267
+ @typing.overload
1268
+ def __init__(self) -> None: ...
1269
+ @typing.overload
1270
+ def __init__(
1271
+ self,
1272
+ ionFlux: typing.SupportsFloat,
1273
+ etchantFlux: typing.SupportsFloat,
1274
+ meanEnergy: typing.SupportsFloat,
1275
+ sigmaEnergy: typing.SupportsFloat,
1276
+ ionExponent: typing.SupportsFloat = 300.0,
1277
+ etchStopDepth: typing.SupportsFloat = -1.7976931348623157e308,
1278
+ ) -> None: ...
1279
+ @typing.overload
1280
+ def __init__(self, parameters: viennaps._core.PlasmaEtchingParameters) -> None: ...
1281
+ def getParameters(self) -> viennaps._core.PlasmaEtchingParameters: ...
1282
+ def setParameters(self, arg0: viennaps._core.PlasmaEtchingParameters) -> None: ...
1283
+
1284
+ class SF6O2Etching(ProcessModel):
1285
+ @staticmethod
1286
+ def defaultParameters() -> viennaps._core.PlasmaEtchingParameters: ...
1287
+ @typing.overload
1288
+ def __init__(self) -> None: ...
1289
+ @typing.overload
1290
+ def __init__(
1291
+ self,
1292
+ ionFlux: typing.SupportsFloat,
1293
+ etchantFlux: typing.SupportsFloat,
1294
+ oxygenFlux: typing.SupportsFloat,
1295
+ meanIonEnergy: typing.SupportsFloat = 100.0,
1296
+ sigmaIonEnergy: typing.SupportsFloat = 10.0,
1297
+ ionExponent: typing.SupportsFloat = 100.0,
1298
+ oxySputterYield: typing.SupportsFloat = 3.0,
1299
+ etchStopDepth: typing.SupportsFloat = -1.7976931348623157e308,
1300
+ ) -> None: ...
1301
+ @typing.overload
1302
+ def __init__(self, parameters: viennaps._core.PlasmaEtchingParameters) -> None: ...
1303
+ def getParameters(self) -> viennaps._core.PlasmaEtchingParameters: ...
1304
+ def setParameters(self, arg0: viennaps._core.PlasmaEtchingParameters) -> None: ...
1305
+
1306
+ class SelectiveEpitaxy(ProcessModel):
1307
+ def __init__(
1308
+ self,
1309
+ materialRates: collections.abc.Sequence[
1310
+ tuple[viennaps._core.Material, typing.SupportsFloat]
1311
+ ],
1312
+ rate111: typing.SupportsFloat = 0.5,
1313
+ rate100: typing.SupportsFloat = 1.0,
1314
+ ) -> None: ...
1315
+
1316
+ class SingleParticleALD(ProcessModel):
1317
+ def __init__(
1318
+ self,
1319
+ stickingProbability: typing.SupportsFloat,
1320
+ numCycles: typing.SupportsInt,
1321
+ growthPerCycle: typing.SupportsFloat,
1322
+ totalCycles: typing.SupportsInt,
1323
+ coverageTimeStep: typing.SupportsFloat,
1324
+ evFlux: typing.SupportsFloat,
1325
+ inFlux: typing.SupportsFloat,
1326
+ s0: typing.SupportsFloat,
1327
+ gasMFP: typing.SupportsFloat,
1328
+ ) -> None: ...
1329
+
1330
+ class SingleParticleProcess(ProcessModel):
1331
+ @typing.overload
1332
+ def __init__(
1333
+ self,
1334
+ rate: typing.SupportsFloat = 1.0,
1335
+ stickingProbability: typing.SupportsFloat = 1.0,
1336
+ sourceExponent: typing.SupportsFloat = 1.0,
1337
+ maskMaterial: viennaps._core.Material = ...,
1338
+ ) -> None: ...
1339
+ @typing.overload
1340
+ def __init__(
1341
+ self,
1342
+ rate: typing.SupportsFloat,
1343
+ stickingProbability: typing.SupportsFloat,
1344
+ sourceExponent: typing.SupportsFloat,
1345
+ maskMaterials: collections.abc.Sequence[viennaps._core.Material],
1346
+ ) -> None: ...
1347
+ @typing.overload
1348
+ def __init__(
1349
+ self,
1350
+ materialRates: collections.abc.Mapping[
1351
+ viennaps._core.Material, typing.SupportsFloat
1352
+ ],
1353
+ stickingProbability: typing.SupportsFloat,
1354
+ sourceExponent: typing.SupportsFloat,
1355
+ ) -> None: ...
1356
+
1357
+ class SphereDistribution(ProcessModel):
1358
+ @typing.overload
1359
+ def __init__(
1360
+ self, radius: typing.SupportsFloat, mask: viennals.d3.Domain
1361
+ ) -> None: ...
1362
+ @typing.overload
1363
+ def __init__(self, radius: typing.SupportsFloat) -> None: ...
1364
+
1365
+ class StencilLocalLaxFriedrichsScalar:
1366
+ @staticmethod
1367
+ def setMaxDissipation(maxDissipation: typing.SupportsFloat) -> None: ...
1368
+
1369
+ class TEOSDeposition(ProcessModel):
1370
+ def __init__(
1371
+ self,
1372
+ stickingProbabilityP1: typing.SupportsFloat,
1373
+ rateP1: typing.SupportsFloat,
1374
+ orderP1: typing.SupportsFloat,
1375
+ stickingProbabilityP2: typing.SupportsFloat = 0.0,
1376
+ rateP2: typing.SupportsFloat = 0.0,
1377
+ orderP2: typing.SupportsFloat = 0.0,
1378
+ ) -> None: ...
1379
+
1380
+ class TEOSPECVD(ProcessModel):
1381
+ def __init__(
1382
+ self,
1383
+ stickingProbabilityRadical: typing.SupportsFloat,
1384
+ depositionRateRadical: typing.SupportsFloat,
1385
+ depositionRateIon: typing.SupportsFloat,
1386
+ exponentIon: typing.SupportsFloat,
1387
+ stickingProbabilityIon: typing.SupportsFloat = 1.0,
1388
+ reactionOrderRadical: typing.SupportsFloat = 1.0,
1389
+ reactionOrderIon: typing.SupportsFloat = 1.0,
1390
+ minAngleIon: typing.SupportsFloat = 0.0,
1391
+ ) -> None: ...
1392
+
1393
+ class ToDiskMesh:
1394
+ @typing.overload
1395
+ def __init__(self, domain: Domain, mesh: viennals._core.Mesh) -> None: ...
1396
+ @typing.overload
1397
+ def __init__(self) -> None: ...
1398
+ def setDomain(self, arg0: Domain) -> None:
1399
+ """
1400
+ Set the domain in the mesh converter.
1401
+ """
1402
+
1403
+ def setMesh(self, arg0: viennals._core.Mesh) -> None:
1404
+ """
1405
+ Set the mesh in the mesh converter
1406
+ """
1407
+
1408
+ class WetEtching(ProcessModel):
1409
+ @typing.overload
1410
+ def __init__(
1411
+ self,
1412
+ materialRates: collections.abc.Sequence[
1413
+ tuple[viennaps._core.Material, typing.SupportsFloat]
1414
+ ],
1415
+ ) -> None: ...
1416
+ @typing.overload
1417
+ def __init__(
1418
+ self,
1419
+ direction100: typing.Annotated[
1420
+ collections.abc.Sequence[typing.SupportsFloat], "FixedSize(3)"
1421
+ ],
1422
+ direction010: typing.Annotated[
1423
+ collections.abc.Sequence[typing.SupportsFloat], "FixedSize(3)"
1424
+ ],
1425
+ rate100: typing.SupportsFloat,
1426
+ rate110: typing.SupportsFloat,
1427
+ rate111: typing.SupportsFloat,
1428
+ rate311: typing.SupportsFloat,
1429
+ materialRates: collections.abc.Sequence[
1430
+ tuple[viennaps._core.Material, typing.SupportsFloat]
1431
+ ],
1432
+ ) -> None: ...
1433
+
1434
+ class Writer:
1435
+ @typing.overload
1436
+ def __init__(self) -> None: ...
1437
+ @typing.overload
1438
+ def __init__(self, domain: Domain) -> None: ...
1439
+ @typing.overload
1440
+ def __init__(self, domain: Domain, fileName: str) -> None: ...
1441
+ def apply(self) -> None:
1442
+ """
1443
+ Write the domain to the specified file.
1444
+ """
1445
+
1446
+ def setDomain(self, arg0: Domain) -> None:
1447
+ """
1448
+ Set the domain to be written to a file.
1449
+ """
1450
+
1451
+ def setFileName(self, arg0: str) -> None:
1452
+ """
1453
+ Set the output file name (should end with .vpsd).
1454
+ """