ViennaPS 3.7.0__cp311-cp311-macosx_11_0_arm64.whl → 3.7.2__cp311-cp311-macosx_11_0_arm64.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 (36) hide show
  1. {viennaps-3.7.0.dist-info → viennaps-3.7.2.dist-info}/METADATA +31 -17
  2. {viennaps-3.7.0.dist-info → viennaps-3.7.2.dist-info}/RECORD +33 -27
  3. viennaps.libs/cmake_install.cmake +1 -1
  4. viennaps.libs/common/cmake_install.cmake +1 -1
  5. viennaps.libs/common/lexers/cmake_install.cmake +1 -1
  6. viennaps.libs/common/math/cmake_install.cmake +1 -1
  7. viennaps.libs/common/simd/cmake_install.cmake +1 -1
  8. viennaps.libs/common/sys/cmake_install.cmake +1 -1
  9. viennaps.libs/common/tasking/cmake_install.cmake +1 -1
  10. viennaps.libs/kernels/cmake_install.cmake +1 -1
  11. viennaps.libs/libembree_avx2.a +0 -0
  12. viennaps.libs/liblexers.a +0 -0
  13. viennaps.libs/libmath.a +0 -0
  14. viennaps.libs/libsimd.a +0 -0
  15. viennaps.libs/libsys.a +0 -0
  16. viennaps.libs/libtasking.a +0 -0
  17. viennaps.libs/tests/cmake_install.cmake +1 -1
  18. viennaps2d/.dylibs/libomp.dylib +0 -0
  19. viennaps2d/__init__.pyi +216 -4
  20. viennaps2d/viennaps2d/__init__.pyi +2656 -0
  21. viennaps2d/viennaps2d/constants.pyi +26 -0
  22. viennaps2d/viennaps2d/ray.pyi +34 -0
  23. viennaps2d/viennaps2d/util.pyi +10 -0
  24. viennaps2d/viennaps2d.cpython-311-darwin.so +0 -0
  25. viennaps3d/__init__.pyi +216 -4
  26. viennaps3d/viennaps3d/__init__.pyi +2518 -0
  27. viennaps3d/viennaps3d/constants.pyi +26 -0
  28. viennaps3d/viennaps3d/gpu.pyi +164 -0
  29. viennaps3d/viennaps3d/ray.pyi +34 -0
  30. viennaps3d/viennaps3d/util.pyi +10 -0
  31. viennaps3d/viennaps3d.cpython-311-darwin.so +0 -0
  32. viennaps2d/viennaps2d.pyi +0 -1423
  33. viennaps3d/gpu.pyi +0 -147
  34. viennaps3d/viennaps3d.pyi +0 -1348
  35. {viennaps-3.7.0.dist-info → viennaps-3.7.2.dist-info}/WHEEL +0 -0
  36. {viennaps-3.7.0.dist-info → viennaps-3.7.2.dist-info}/licenses/LICENSE +0 -0
@@ -0,0 +1,2518 @@
1
+ """
2
+ ViennaPS is a header-only C++ process simulation library which includes surface and volume representations, a ray tracer, and physical models for the simulation of microelectronic fabrication processes. The main design goals are simplicity and efficiency, tailored towards scientific simulations.
3
+ """
4
+
5
+ from __future__ import annotations
6
+ import collections.abc
7
+ import enum
8
+ import typing
9
+ import viennals3d.viennals3d
10
+ from . import constants
11
+ from . import gpu
12
+ from . import ray
13
+ from . import util
14
+
15
+ __all__: list[str] = [
16
+ "AdvectionCallback",
17
+ "AdvectionParameters",
18
+ "AtomicLayerProcess",
19
+ "BoxDistribution",
20
+ "CF4O2Etching",
21
+ "CF4O2Parameters",
22
+ "CF4O2ParametersIons",
23
+ "CF4O2ParametersMask",
24
+ "CF4O2ParametersPassivation",
25
+ "CF4O2ParametersSi",
26
+ "CF4O2ParametersSiGe",
27
+ "CSVFileProcess",
28
+ "D",
29
+ "DenseCellSet",
30
+ "DirectionalProcess",
31
+ "Domain",
32
+ "DomainSetup",
33
+ "FaradayCageEtching",
34
+ "FaradayCageParameters",
35
+ "FluorocarbonEtching",
36
+ "FluorocarbonParameters",
37
+ "FluorocarbonParametersIons",
38
+ "FluorocarbonParametersMask",
39
+ "FluorocarbonParametersPolymer",
40
+ "FluorocarbonParametersSi",
41
+ "FluorocarbonParametersSi3N4",
42
+ "FluorocarbonParametersSiO2",
43
+ "GDSGeometry",
44
+ "GDSReader",
45
+ "GeometryFactory",
46
+ "HBrO2Etching",
47
+ "HoleShape",
48
+ "IBEParameters",
49
+ "Interpolation",
50
+ "IonBeamEtching",
51
+ "IsotropicProcess",
52
+ "Length",
53
+ "LengthUnit",
54
+ "LogLevel",
55
+ "Logger",
56
+ "MakeFin",
57
+ "MakeHole",
58
+ "MakePlane",
59
+ "MakeStack",
60
+ "MakeTrench",
61
+ "Material",
62
+ "MaterialMap",
63
+ "MetaDataLevel",
64
+ "MultiParticleProcess",
65
+ "NormalizationType",
66
+ "OxideRegrowth",
67
+ "Planarize",
68
+ "PlasmaEtchingParameters",
69
+ "PlasmaEtchingParametersIons",
70
+ "PlasmaEtchingParametersMask",
71
+ "PlasmaEtchingParametersPassivation",
72
+ "PlasmaEtchingParametersPolymer",
73
+ "PlasmaEtchingParametersSubstrate",
74
+ "Process",
75
+ "ProcessModel",
76
+ "ProcessParams",
77
+ "RateGrid",
78
+ "RateSet",
79
+ "RayTracingParameters",
80
+ "Reader",
81
+ "SF6C4F8Etching",
82
+ "SF6O2Etching",
83
+ "SelectiveEpitaxy",
84
+ "SingleParticleALD",
85
+ "SingleParticleProcess",
86
+ "SphereDistribution",
87
+ "StencilLocalLaxFriedrichsScalar",
88
+ "TEOSDeposition",
89
+ "TEOSPECVD",
90
+ "Time",
91
+ "TimeUnit",
92
+ "ToDiskMesh",
93
+ "WetEtching",
94
+ "Writer",
95
+ "constants",
96
+ "gpu",
97
+ "ray",
98
+ "setNumThreads",
99
+ "util",
100
+ "version",
101
+ ]
102
+
103
+ class AdvectionCallback:
104
+ domain: Domain
105
+ def __init__(self) -> None: ...
106
+ def applyPostAdvect(self, arg0: typing.SupportsFloat) -> bool: ...
107
+ def applyPreAdvect(self, arg0: typing.SupportsFloat) -> bool: ...
108
+
109
+ class AdvectionParameters:
110
+ checkDissipation: bool
111
+ ignoreVoids: bool
112
+ integrationScheme: viennals3d.viennals3d.IntegrationSchemeEnum
113
+ velocityOutput: bool
114
+ def __init__(self) -> None: ...
115
+ def toMetaData(self) -> dict[str, list[float]]:
116
+ """
117
+ Convert the advection parameters to a metadata dict.
118
+ """
119
+
120
+ def toMetaDataString(self) -> str:
121
+ """
122
+ Convert the advection parameters to a metadata string.
123
+ """
124
+
125
+ @property
126
+ def dissipationAlpha(self) -> float: ...
127
+ @dissipationAlpha.setter
128
+ def dissipationAlpha(self, arg0: typing.SupportsFloat) -> None: ...
129
+ @property
130
+ def timeStepRatio(self) -> float: ...
131
+ @timeStepRatio.setter
132
+ def timeStepRatio(self, arg0: typing.SupportsFloat) -> None: ...
133
+
134
+ class AtomicLayerProcess:
135
+ @typing.overload
136
+ def __init__(self) -> None: ...
137
+ @typing.overload
138
+ def __init__(self, domain: Domain) -> None: ...
139
+ @typing.overload
140
+ def __init__(self, domain: Domain, model: ProcessModel) -> None: ...
141
+ def apply(self) -> None:
142
+ """
143
+ Run the process.
144
+ """
145
+
146
+ def disableRandomSeeds(self) -> None:
147
+ """
148
+ Disable random seeds for the ray tracer. This will make the process results deterministic.
149
+ """
150
+
151
+ def enableRandomSeeds(self) -> None:
152
+ """
153
+ Enable random seeds for the ray tracer. This will make the process results non-deterministic.
154
+ """
155
+
156
+ def setCoverageTimeStep(self, arg0: typing.SupportsFloat) -> None:
157
+ """
158
+ Set the time step for the coverage calculation.
159
+ """
160
+
161
+ def setDesorptionRates(
162
+ self, arg0: collections.abc.Sequence[typing.SupportsFloat]
163
+ ) -> None:
164
+ """
165
+ Set the desorption rate for each surface point.
166
+ """
167
+
168
+ def setDomain(self, arg0: Domain) -> None:
169
+ """
170
+ Set the process domain.
171
+ """
172
+
173
+ def setIntegrationScheme(
174
+ self, arg0: viennals3d.viennals3d.IntegrationSchemeEnum
175
+ ) -> None:
176
+ """
177
+ Set the integration scheme for solving the level-set equation. Possible integration schemes are specified in lsIntegrationSchemeEnum.
178
+ """
179
+
180
+ def setNumCycles(self, arg0: typing.SupportsInt) -> None:
181
+ """
182
+ Set the number of cycles for the process.
183
+ """
184
+
185
+ def setNumberOfRaysPerPoint(self, arg0: typing.SupportsInt) -> None:
186
+ """
187
+ Set the number of rays to traced for each particle in the process. The number is per point in the process geometry.
188
+ """
189
+
190
+ def setProcessModel(self, arg0: ProcessModel) -> None:
191
+ """
192
+ Set the process model. This has to be a pre-configured process model.
193
+ """
194
+
195
+ def setPulseTime(self, arg0: typing.SupportsFloat) -> None:
196
+ """
197
+ Set the pulse time.
198
+ """
199
+
200
+ def setSourceDirection(self, arg0: ...) -> None:
201
+ """
202
+ Set source direction of the process.
203
+ """
204
+
205
+ class BoxDistribution(ProcessModel):
206
+ @typing.overload
207
+ def __init__(
208
+ self,
209
+ halfAxes: typing.Annotated[
210
+ collections.abc.Sequence[typing.SupportsFloat], "FixedSize(3)"
211
+ ],
212
+ gridDelta: typing.SupportsFloat,
213
+ mask: viennals3d.viennals3d.Domain,
214
+ ) -> None: ...
215
+ @typing.overload
216
+ def __init__(
217
+ self,
218
+ halfAxes: typing.Annotated[
219
+ collections.abc.Sequence[typing.SupportsFloat], "FixedSize(3)"
220
+ ],
221
+ gridDelta: typing.SupportsFloat,
222
+ ) -> None: ...
223
+
224
+ class CF4O2Etching(ProcessModel):
225
+ @typing.overload
226
+ def __init__(self) -> None: ...
227
+ @typing.overload
228
+ def __init__(
229
+ self,
230
+ ionFlux: typing.SupportsFloat,
231
+ etchantFlux: typing.SupportsFloat,
232
+ oxygenFlux: typing.SupportsFloat,
233
+ polymerFlux: typing.SupportsFloat,
234
+ meanIonEnergy: typing.SupportsFloat = 100.0,
235
+ sigmaIonEnergy: typing.SupportsFloat = 10.0,
236
+ ionExponent: typing.SupportsFloat = 100.0,
237
+ oxySputterYield: typing.SupportsFloat = 3.0,
238
+ polySputterYield: typing.SupportsFloat = 3.0,
239
+ etchStopDepth: typing.SupportsFloat = -1.7976931348623157e308,
240
+ ) -> None: ...
241
+ @typing.overload
242
+ def __init__(self, parameters: CF4O2Parameters) -> None: ...
243
+ def getParameters(self) -> CF4O2Parameters: ...
244
+ def setParameters(self, arg0: CF4O2Parameters) -> None: ...
245
+
246
+ class CF4O2Parameters:
247
+ Ions: CF4O2ParametersIons
248
+ Mask: CF4O2ParametersMask
249
+ Passivation: CF4O2ParametersPassivation
250
+ Si: CF4O2ParametersSi
251
+ SiGe: CF4O2ParametersSiGe
252
+ fluxIncludeSticking: bool
253
+ def __init__(self) -> None: ...
254
+ @property
255
+ def etchStopDepth(self) -> float: ...
256
+ @etchStopDepth.setter
257
+ def etchStopDepth(self, arg0: typing.SupportsFloat) -> None: ...
258
+ @property
259
+ def etchantFlux(self) -> float: ...
260
+ @etchantFlux.setter
261
+ def etchantFlux(self, arg0: typing.SupportsFloat) -> None: ...
262
+ @property
263
+ def gamma_C(self) -> dict[Material, float]: ...
264
+ @gamma_C.setter
265
+ def gamma_C(
266
+ self, arg0: collections.abc.Mapping[Material, typing.SupportsFloat]
267
+ ) -> None: ...
268
+ @property
269
+ def gamma_C_oxidized(self) -> dict[Material, float]: ...
270
+ @gamma_C_oxidized.setter
271
+ def gamma_C_oxidized(
272
+ self, arg0: collections.abc.Mapping[Material, typing.SupportsFloat]
273
+ ) -> None: ...
274
+ @property
275
+ def gamma_F(self) -> dict[Material, float]: ...
276
+ @gamma_F.setter
277
+ def gamma_F(
278
+ self, arg0: collections.abc.Mapping[Material, typing.SupportsFloat]
279
+ ) -> None: ...
280
+ @property
281
+ def gamma_F_oxidized(self) -> dict[Material, float]: ...
282
+ @gamma_F_oxidized.setter
283
+ def gamma_F_oxidized(
284
+ self, arg0: collections.abc.Mapping[Material, typing.SupportsFloat]
285
+ ) -> None: ...
286
+ @property
287
+ def gamma_O(self) -> dict[Material, float]: ...
288
+ @gamma_O.setter
289
+ def gamma_O(
290
+ self, arg0: collections.abc.Mapping[Material, typing.SupportsFloat]
291
+ ) -> None: ...
292
+ @property
293
+ def gamma_O_passivated(self) -> dict[Material, float]: ...
294
+ @gamma_O_passivated.setter
295
+ def gamma_O_passivated(
296
+ self, arg0: collections.abc.Mapping[Material, typing.SupportsFloat]
297
+ ) -> None: ...
298
+ @property
299
+ def ionFlux(self) -> float: ...
300
+ @ionFlux.setter
301
+ def ionFlux(self, arg0: typing.SupportsFloat) -> None: ...
302
+ @property
303
+ def oxygenFlux(self) -> float: ...
304
+ @oxygenFlux.setter
305
+ def oxygenFlux(self, arg0: typing.SupportsFloat) -> None: ...
306
+ @property
307
+ def polymerFlux(self) -> float: ...
308
+ @polymerFlux.setter
309
+ def polymerFlux(self, arg0: typing.SupportsFloat) -> None: ...
310
+
311
+ class CF4O2ParametersIons:
312
+ def __init__(self) -> None: ...
313
+ @property
314
+ def exponent(self) -> float: ...
315
+ @exponent.setter
316
+ def exponent(self, arg0: typing.SupportsFloat) -> None: ...
317
+ @property
318
+ def inflectAngle(self) -> float: ...
319
+ @inflectAngle.setter
320
+ def inflectAngle(self, arg0: typing.SupportsFloat) -> None: ...
321
+ @property
322
+ def meanEnergy(self) -> float: ...
323
+ @meanEnergy.setter
324
+ def meanEnergy(self, arg0: typing.SupportsFloat) -> None: ...
325
+ @property
326
+ def minAngle(self) -> float: ...
327
+ @minAngle.setter
328
+ def minAngle(self, arg0: typing.SupportsFloat) -> None: ...
329
+ @property
330
+ def n_l(self) -> float: ...
331
+ @n_l.setter
332
+ def n_l(self, arg0: typing.SupportsFloat) -> None: ...
333
+ @property
334
+ def sigmaEnergy(self) -> float: ...
335
+ @sigmaEnergy.setter
336
+ def sigmaEnergy(self, arg0: typing.SupportsFloat) -> None: ...
337
+
338
+ class CF4O2ParametersMask:
339
+ def __init__(self) -> None: ...
340
+ @property
341
+ def A_sp(self) -> float: ...
342
+ @A_sp.setter
343
+ def A_sp(self, arg0: typing.SupportsFloat) -> None: ...
344
+ @property
345
+ def Eth_sp(self) -> float: ...
346
+ @Eth_sp.setter
347
+ def Eth_sp(self, arg0: typing.SupportsFloat) -> None: ...
348
+ @property
349
+ def rho(self) -> float: ...
350
+ @rho.setter
351
+ def rho(self, arg0: typing.SupportsFloat) -> None: ...
352
+
353
+ class CF4O2ParametersPassivation:
354
+ def __init__(self) -> None: ...
355
+ @property
356
+ def A_C_ie(self) -> float: ...
357
+ @A_C_ie.setter
358
+ def A_C_ie(self, arg0: typing.SupportsFloat) -> None: ...
359
+ @property
360
+ def A_O_ie(self) -> float: ...
361
+ @A_O_ie.setter
362
+ def A_O_ie(self, arg0: typing.SupportsFloat) -> None: ...
363
+ @property
364
+ def Eth_C_ie(self) -> float: ...
365
+ @Eth_C_ie.setter
366
+ def Eth_C_ie(self, arg0: typing.SupportsFloat) -> None: ...
367
+ @property
368
+ def Eth_O_ie(self) -> float: ...
369
+ @Eth_O_ie.setter
370
+ def Eth_O_ie(self, arg0: typing.SupportsFloat) -> None: ...
371
+
372
+ class CF4O2ParametersSi:
373
+ def __init__(self) -> None: ...
374
+ @property
375
+ def A_ie(self) -> float: ...
376
+ @A_ie.setter
377
+ def A_ie(self, arg0: typing.SupportsFloat) -> None: ...
378
+ @property
379
+ def A_sp(self) -> float: ...
380
+ @A_sp.setter
381
+ def A_sp(self, arg0: typing.SupportsFloat) -> None: ...
382
+ @property
383
+ def Eth_ie(self) -> float: ...
384
+ @Eth_ie.setter
385
+ def Eth_ie(self, arg0: typing.SupportsFloat) -> None: ...
386
+ @property
387
+ def Eth_sp(self) -> float: ...
388
+ @Eth_sp.setter
389
+ def Eth_sp(self, arg0: typing.SupportsFloat) -> None: ...
390
+ @property
391
+ def beta_sigma(self) -> float: ...
392
+ @beta_sigma.setter
393
+ def beta_sigma(self, arg0: typing.SupportsFloat) -> None: ...
394
+ @property
395
+ def k_sigma(self) -> float: ...
396
+ @k_sigma.setter
397
+ def k_sigma(self, arg0: typing.SupportsFloat) -> None: ...
398
+ @property
399
+ def rho(self) -> float: ...
400
+ @rho.setter
401
+ def rho(self, arg0: typing.SupportsFloat) -> None: ...
402
+
403
+ class CF4O2ParametersSiGe:
404
+ def __init__(self) -> None: ...
405
+ def k_sigma_SiGe(self, arg0: typing.SupportsFloat) -> float: ...
406
+ @property
407
+ def A_ie(self) -> float: ...
408
+ @A_ie.setter
409
+ def A_ie(self, arg0: typing.SupportsFloat) -> None: ...
410
+ @property
411
+ def A_sp(self) -> float: ...
412
+ @A_sp.setter
413
+ def A_sp(self, arg0: typing.SupportsFloat) -> None: ...
414
+ @property
415
+ def Eth_ie(self) -> float: ...
416
+ @Eth_ie.setter
417
+ def Eth_ie(self, arg0: typing.SupportsFloat) -> None: ...
418
+ @property
419
+ def Eth_sp(self) -> float: ...
420
+ @Eth_sp.setter
421
+ def Eth_sp(self, arg0: typing.SupportsFloat) -> None: ...
422
+ @property
423
+ def beta_sigma(self) -> float: ...
424
+ @beta_sigma.setter
425
+ def beta_sigma(self, arg0: typing.SupportsFloat) -> None: ...
426
+ @property
427
+ def k_sigma(self) -> float: ...
428
+ @k_sigma.setter
429
+ def k_sigma(self, arg0: typing.SupportsFloat) -> None: ...
430
+ @property
431
+ def rho(self) -> float: ...
432
+ @rho.setter
433
+ def rho(self, arg0: typing.SupportsFloat) -> None: ...
434
+ @property
435
+ def x(self) -> float: ...
436
+ @x.setter
437
+ def x(self, arg0: typing.SupportsFloat) -> None: ...
438
+
439
+ class CSVFileProcess(ProcessModel):
440
+ def __init__(
441
+ self,
442
+ ratesFile: str,
443
+ direction: typing.Annotated[
444
+ collections.abc.Sequence[typing.SupportsFloat], "FixedSize(3)"
445
+ ],
446
+ offset: typing.Annotated[
447
+ collections.abc.Sequence[typing.SupportsFloat], "FixedSize(2)"
448
+ ],
449
+ isotropicComponent: typing.SupportsFloat = 0.0,
450
+ directionalComponent: typing.SupportsFloat = 1.0,
451
+ maskMaterials: collections.abc.Sequence[Material] = ...,
452
+ calculateVisibility: bool = True,
453
+ ) -> None: ...
454
+ def setCustomInterpolator(self, function: collections.abc.Callable) -> None: ...
455
+ def setIDWNeighbors(self, k: typing.SupportsInt = 4) -> None: ...
456
+ @typing.overload
457
+ def setInterpolationMode(self, mode: Interpolation) -> None: ...
458
+ @typing.overload
459
+ def setInterpolationMode(self, mode: str) -> None: ...
460
+ def setOffset(
461
+ self,
462
+ offset: typing.Annotated[
463
+ collections.abc.Sequence[typing.SupportsFloat], "FixedSize(2)"
464
+ ],
465
+ ) -> None: ...
466
+
467
+ class DenseCellSet:
468
+ def __init__(self) -> None: ...
469
+ @typing.overload
470
+ def addFillingFraction(
471
+ self, arg0: typing.SupportsInt, arg1: typing.SupportsFloat
472
+ ) -> bool:
473
+ """
474
+ Add to the filling fraction at given cell index.
475
+ """
476
+
477
+ @typing.overload
478
+ def addFillingFraction(
479
+ self,
480
+ arg0: typing.Annotated[
481
+ collections.abc.Sequence[typing.SupportsFloat], "FixedSize(3)"
482
+ ],
483
+ arg1: typing.SupportsFloat,
484
+ ) -> bool:
485
+ """
486
+ Add to the filling fraction for cell which contains given point.
487
+ """
488
+
489
+ def addFillingFractionInMaterial(
490
+ self,
491
+ arg0: typing.Annotated[
492
+ collections.abc.Sequence[typing.SupportsFloat], "FixedSize(3)"
493
+ ],
494
+ arg1: typing.SupportsFloat,
495
+ arg2: typing.SupportsInt,
496
+ ) -> bool:
497
+ """
498
+ Add to the filling fraction for cell which contains given point only if the cell has the specified material ID.
499
+ """
500
+
501
+ def addScalarData(self, arg0: str, arg1: typing.SupportsFloat) -> None:
502
+ """
503
+ Add a scalar value to be stored and modified in each cell.
504
+ """
505
+
506
+ def buildNeighborhood(self, forceRebuild: bool = False) -> None:
507
+ """
508
+ Generate fast neighbor access for each cell.
509
+ """
510
+
511
+ def clear(self) -> None:
512
+ """
513
+ Clear the filling fractions.
514
+ """
515
+
516
+ def fromLevelSets(
517
+ self,
518
+ levelSets: collections.abc.Sequence[viennals3d.viennals3d.Domain],
519
+ materialMap: viennals3d.viennals3d.MaterialMap = None,
520
+ depth: typing.SupportsFloat = 0.0,
521
+ ) -> None: ...
522
+ def getAverageFillingFraction(
523
+ self,
524
+ arg0: typing.Annotated[
525
+ collections.abc.Sequence[typing.SupportsFloat], "FixedSize(3)"
526
+ ],
527
+ arg1: typing.SupportsFloat,
528
+ ) -> float:
529
+ """
530
+ Get the average filling at a point in some radius.
531
+ """
532
+
533
+ def getBoundingBox(
534
+ self,
535
+ ) -> typing.Annotated[
536
+ list[typing.Annotated[list[float], "FixedSize(3)"]], "FixedSize(2)"
537
+ ]: ...
538
+ def getCellCenter(
539
+ self, arg0: typing.SupportsInt
540
+ ) -> typing.Annotated[list[float], "FixedSize(3)"]:
541
+ """
542
+ Get the center of a cell with given index
543
+ """
544
+
545
+ def getCellGrid(self) -> viennals3d.viennals3d.Mesh:
546
+ """
547
+ Get the underlying mesh of the cell set.
548
+ """
549
+
550
+ def getDepth(self) -> float:
551
+ """
552
+ Get the depth of the cell set.
553
+ """
554
+
555
+ def getElement(
556
+ self, arg0: typing.SupportsInt
557
+ ) -> typing.Annotated[list[int], "FixedSize(8)"]:
558
+ """
559
+ Get the element at the given index.
560
+ """
561
+
562
+ def getElements(self) -> list[typing.Annotated[list[int], "FixedSize(8)"]]:
563
+ """
564
+ Get elements (cells). The indicies in the elements correspond to the corner nodes.
565
+ """
566
+
567
+ def getFillingFraction(
568
+ self,
569
+ arg0: typing.Annotated[
570
+ collections.abc.Sequence[typing.SupportsFloat], "FixedSize(3)"
571
+ ],
572
+ ) -> float:
573
+ """
574
+ Get the filling fraction of the cell containing the point.
575
+ """
576
+
577
+ def getFillingFractions(self) -> list[float]:
578
+ """
579
+ Get the filling fractions of all cells.
580
+ """
581
+
582
+ def getGridDelta(self) -> float:
583
+ """
584
+ Get the cell size.
585
+ """
586
+
587
+ def getIndex(
588
+ self,
589
+ arg0: typing.Annotated[
590
+ collections.abc.Sequence[typing.SupportsFloat], "FixedSize(3)"
591
+ ],
592
+ ) -> int:
593
+ """
594
+ Get the index of the cell containing the given point.
595
+ """
596
+
597
+ def getNeighbors(
598
+ self, arg0: typing.SupportsInt
599
+ ) -> typing.Annotated[list[int], "FixedSize(6)"]:
600
+ """
601
+ Get the neighbor indices for a cell.
602
+ """
603
+
604
+ def getNode(
605
+ self, arg0: typing.SupportsInt
606
+ ) -> typing.Annotated[list[float], "FixedSize(3)"]:
607
+ """
608
+ Get the node at the given index.
609
+ """
610
+
611
+ def getNodes(self) -> list[typing.Annotated[list[float], "FixedSize(3)"]]:
612
+ """
613
+ Get the nodes of the cell set which correspond to the corner points of the cells.
614
+ """
615
+
616
+ def getNumberOfCells(self) -> int:
617
+ """
618
+ Get the number of cells.
619
+ """
620
+
621
+ def getScalarData(self, arg0: str) -> list[float]:
622
+ """
623
+ Get the data stored at each cell. WARNING: This function only returns a copy of the data
624
+ """
625
+
626
+ def getScalarDataLabels(self) -> list[str]:
627
+ """
628
+ Get the labels of the scalar data stored in the cell set.
629
+ """
630
+
631
+ def getSurface(self) -> viennals3d.viennals3d.Domain:
632
+ """
633
+ Get the surface level-set.
634
+ """
635
+
636
+ def readCellSetData(self, arg0: str) -> None:
637
+ """
638
+ Read cell set data from text.
639
+ """
640
+
641
+ def setCellSetPosition(self, arg0: bool) -> None:
642
+ """
643
+ Set whether the cell set should be created below (false) or above (true) the surface.
644
+ """
645
+
646
+ def setCoverMaterial(self, arg0: typing.SupportsInt) -> None:
647
+ """
648
+ Set the material of the cells which are above or below the surface.
649
+ """
650
+
651
+ @typing.overload
652
+ def setFillingFraction(
653
+ self, arg0: typing.SupportsInt, arg1: typing.SupportsFloat
654
+ ) -> bool:
655
+ """
656
+ Sets the filling fraction at given cell index.
657
+ """
658
+
659
+ @typing.overload
660
+ def setFillingFraction(
661
+ self,
662
+ arg0: typing.Annotated[
663
+ collections.abc.Sequence[typing.SupportsFloat], "FixedSize(3)"
664
+ ],
665
+ arg1: typing.SupportsFloat,
666
+ ) -> bool:
667
+ """
668
+ Sets the filling fraction for cell which contains given point.
669
+ """
670
+
671
+ def setPeriodicBoundary(
672
+ self, arg0: typing.Annotated[collections.abc.Sequence[bool], "FixedSize(3)"]
673
+ ) -> None:
674
+ """
675
+ Enable periodic boundary conditions in specified dimensions.
676
+ """
677
+
678
+ def updateMaterials(self) -> None:
679
+ """
680
+ 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.
681
+ """
682
+
683
+ def updateSurface(self) -> None:
684
+ """
685
+ 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.
686
+ """
687
+
688
+ def writeCellSetData(self, arg0: str) -> None:
689
+ """
690
+ Save cell set data in simple text format.
691
+ """
692
+
693
+ def writeVTU(self, arg0: str) -> None:
694
+ """
695
+ Write the cell set as .vtu file
696
+ """
697
+
698
+ class DirectionalProcess(ProcessModel):
699
+ @typing.overload
700
+ def __init__(
701
+ self,
702
+ direction: typing.Annotated[
703
+ collections.abc.Sequence[typing.SupportsFloat], "FixedSize(3)"
704
+ ],
705
+ directionalVelocity: typing.SupportsFloat,
706
+ isotropicVelocity: typing.SupportsFloat = 0.0,
707
+ maskMaterial: Material = ...,
708
+ calculateVisibility: bool = True,
709
+ ) -> None: ...
710
+ @typing.overload
711
+ def __init__(
712
+ self,
713
+ direction: typing.Annotated[
714
+ collections.abc.Sequence[typing.SupportsFloat], "FixedSize(3)"
715
+ ],
716
+ directionalVelocity: typing.SupportsFloat,
717
+ isotropicVelocity: typing.SupportsFloat,
718
+ maskMaterial: collections.abc.Sequence[Material],
719
+ calculateVisibility: bool = True,
720
+ ) -> None: ...
721
+ @typing.overload
722
+ def __init__(self, rateSets: collections.abc.Sequence[RateSet]) -> None: ...
723
+ @typing.overload
724
+ def __init__(self, rateSet: RateSet) -> None: ...
725
+
726
+ class Domain:
727
+ @staticmethod
728
+ def disableMetaData() -> None:
729
+ """
730
+ Disable adding meta data to domain.
731
+ """
732
+
733
+ @staticmethod
734
+ def enableMetaData(level: MetaDataLevel = ...) -> None:
735
+ """
736
+ Enable adding meta data from processes to domain.
737
+ """
738
+
739
+ @typing.overload
740
+ def __init__(self) -> None: ...
741
+ @typing.overload
742
+ def __init__(self, domain: Domain) -> None:
743
+ """
744
+ Deep copy constructor.
745
+ """
746
+
747
+ @typing.overload
748
+ def __init__(
749
+ self,
750
+ gridDelta: typing.SupportsFloat,
751
+ xExtent: typing.SupportsFloat,
752
+ yExtent: typing.SupportsFloat,
753
+ boundary: viennals3d.viennals3d.BoundaryConditionEnum = ...,
754
+ ) -> None: ...
755
+ @typing.overload
756
+ def __init__(
757
+ self,
758
+ bounds: typing.Annotated[
759
+ collections.abc.Sequence[typing.SupportsFloat], "FixedSize(6)"
760
+ ],
761
+ boundaryConditions: typing.Annotated[
762
+ collections.abc.Sequence[viennals3d.viennals3d.BoundaryConditionEnum],
763
+ "FixedSize(3)",
764
+ ],
765
+ gridDelta: typing.SupportsFloat = 1.0,
766
+ ) -> None: ...
767
+ @typing.overload
768
+ def __init__(self, setup: DomainSetup) -> None: ...
769
+ @typing.overload
770
+ def addMetaData(self, arg0: str, arg1: typing.SupportsFloat) -> None:
771
+ """
772
+ Add a single metadata entry to the domain.
773
+ """
774
+
775
+ @typing.overload
776
+ def addMetaData(
777
+ self, arg0: str, arg1: collections.abc.Sequence[typing.SupportsFloat]
778
+ ) -> None:
779
+ """
780
+ Add a single metadata entry to the domain.
781
+ """
782
+
783
+ @typing.overload
784
+ def addMetaData(
785
+ self,
786
+ arg0: collections.abc.Mapping[
787
+ str, collections.abc.Sequence[typing.SupportsFloat]
788
+ ],
789
+ ) -> None:
790
+ """
791
+ Add metadata to the domain.
792
+ """
793
+
794
+ def applyBooleanOperation(
795
+ self, arg0: viennals3d.viennals3d.Domain, arg1: ...
796
+ ) -> None: ...
797
+ def clear(self) -> None: ...
798
+ def clearMetaData(self, clearDomainData: bool = False) -> None:
799
+ """
800
+ Clear meta data from domain.
801
+ """
802
+
803
+ def deepCopy(self, arg0: Domain) -> None: ...
804
+ def duplicateTopLevelSet(self, arg0: Material) -> None:
805
+ """
806
+ Duplicate the top level set. Should be used before a deposition process.
807
+ """
808
+
809
+ def generateCellSet(
810
+ self, arg0: typing.SupportsFloat, arg1: Material, arg2: bool
811
+ ) -> None:
812
+ """
813
+ Generate the cell set.
814
+ """
815
+
816
+ def getBoundaryConditions(
817
+ self,
818
+ ) -> typing.Annotated[
819
+ list[viennals3d.viennals3d.BoundaryConditionEnum], "FixedSize(3)"
820
+ ]:
821
+ """
822
+ Get the boundary conditions of the domain.
823
+ """
824
+
825
+ def getBoundingBox(
826
+ self,
827
+ ) -> typing.Annotated[
828
+ list[typing.Annotated[list[float], "FixedSize(3)"]], "FixedSize(2)"
829
+ ]:
830
+ """
831
+ Get the bounding box of the domain.
832
+ """
833
+
834
+ def getCellSet(self) -> ...:
835
+ """
836
+ Get the cell set.
837
+ """
838
+
839
+ def getGrid(self) -> viennals3d.viennals3d.hrleGrid:
840
+ """
841
+ Get the grid
842
+ """
843
+
844
+ def getGridDelta(self) -> float:
845
+ """
846
+ Get the grid delta.
847
+ """
848
+
849
+ def getLevelSets(self) -> list[viennals3d.viennals3d.Domain]: ...
850
+ def getMaterialMap(self) -> MaterialMap: ...
851
+ def getMetaData(self) -> dict[str, list[float]]:
852
+ """
853
+ Get meta data (e.g. process data) stored in the domain
854
+ """
855
+
856
+ def getSetup(self) -> DomainSetup:
857
+ """
858
+ Get the domain setup.
859
+ """
860
+
861
+ def insertNextLevelSet(
862
+ self, levelset: viennals3d.viennals3d.Domain, wrapLowerLevelSet: bool = True
863
+ ) -> None:
864
+ """
865
+ Insert a level set to domain.
866
+ """
867
+
868
+ def insertNextLevelSetAsMaterial(
869
+ self,
870
+ levelSet: viennals3d.viennals3d.Domain,
871
+ material: Material,
872
+ wrapLowerLevelSet: bool = True,
873
+ ) -> None:
874
+ """
875
+ Insert a level set to domain as a material.
876
+ """
877
+
878
+ def print(self, hrleInfo: bool = False) -> None:
879
+ """
880
+ Print the domain information.
881
+ """
882
+
883
+ def removeLevelSet(self, arg0: typing.SupportsInt, arg1: bool) -> None: ...
884
+ def removeMaterial(self, arg0: Material) -> None: ...
885
+ def removeTopLevelSet(self) -> None: ...
886
+ def saveHullMesh(
887
+ self, filename: str, wrappingLayerEpsilon: typing.SupportsFloat = 0.01
888
+ ) -> None:
889
+ """
890
+ Save the hull of the domain.
891
+ """
892
+
893
+ def saveLevelSetMesh(self, filename: str, width: typing.SupportsInt = 1) -> None:
894
+ """
895
+ Save the level set grids of layers in the domain.
896
+ """
897
+
898
+ def saveLevelSets(self, filename: str) -> None: ...
899
+ def saveSurfaceMesh(self, filename: str, addMaterialIds: bool = False) -> None:
900
+ """
901
+ Save the surface of the domain.
902
+ """
903
+
904
+ def saveVolumeMesh(
905
+ self, filename: str, wrappingLayerEpsilon: typing.SupportsFloat = 0.01
906
+ ) -> None:
907
+ """
908
+ Save the volume representation of the domain.
909
+ """
910
+
911
+ def setMaterialMap(self, arg0: MaterialMap) -> None: ...
912
+ @typing.overload
913
+ def setup(self, arg0: DomainSetup) -> None:
914
+ """
915
+ Setup the domain.
916
+ """
917
+
918
+ @typing.overload
919
+ def setup(
920
+ self,
921
+ gridDelta: typing.SupportsFloat,
922
+ xExtent: typing.SupportsFloat,
923
+ yExtent: typing.SupportsFloat = 0.0,
924
+ boundary: viennals3d.viennals3d.BoundaryConditionEnum = ...,
925
+ ) -> None:
926
+ """
927
+ Setup the domain.
928
+ """
929
+
930
+ class DomainSetup:
931
+ @typing.overload
932
+ def __init__(self) -> None: ...
933
+ @typing.overload
934
+ def __init__(
935
+ self,
936
+ gridDelta: typing.SupportsFloat,
937
+ xExtent: typing.SupportsFloat,
938
+ yExtent: typing.SupportsFloat,
939
+ boundary: viennals3d.viennals3d.BoundaryConditionEnum = ...,
940
+ ) -> None: ...
941
+ def boundaryCons(
942
+ self,
943
+ ) -> typing.Annotated[
944
+ list[viennals3d.viennals3d.BoundaryConditionEnum], "FixedSize(3)"
945
+ ]: ...
946
+ def bounds(self) -> typing.Annotated[list[float], "FixedSize(6)"]: ...
947
+ def check(self) -> None: ...
948
+ def grid(self) -> viennals3d.viennals3d.hrleGrid: ...
949
+ def gridDelta(self) -> float: ...
950
+ def halveXAxis(self) -> None: ...
951
+ def halveYAxis(self) -> None: ...
952
+ def hasPeriodicBoundary(self) -> bool: ...
953
+ def isValid(self) -> bool: ...
954
+ def print(self) -> None: ...
955
+ def xExtent(self) -> float: ...
956
+ def yExtent(self) -> float: ...
957
+
958
+ class FaradayCageEtching(ProcessModel):
959
+ @typing.overload
960
+ def __init__(self) -> None: ...
961
+ @typing.overload
962
+ def __init__(self, maskMaterials: collections.abc.Sequence[Material]) -> None: ...
963
+ @typing.overload
964
+ def __init__(
965
+ self,
966
+ maskMaterials: collections.abc.Sequence[Material],
967
+ parameters: FaradayCageParameters,
968
+ ) -> None: ...
969
+ def getParameters(self) -> FaradayCageParameters: ...
970
+ def setParameters(self, arg0: FaradayCageParameters) -> None: ...
971
+
972
+ class FaradayCageParameters:
973
+ ibeParams: IBEParameters
974
+ def __init__(self) -> None: ...
975
+ @property
976
+ def cageAngle(self) -> float: ...
977
+ @cageAngle.setter
978
+ def cageAngle(self, arg0: typing.SupportsFloat) -> None: ...
979
+
980
+ class FluorocarbonEtching(ProcessModel):
981
+ @typing.overload
982
+ def __init__(self) -> None: ...
983
+ @typing.overload
984
+ def __init__(
985
+ self,
986
+ ionFlux: typing.SupportsFloat,
987
+ etchantFlux: typing.SupportsFloat,
988
+ polyFlux: typing.SupportsFloat,
989
+ meanIonEnergy: typing.SupportsFloat = 100.0,
990
+ sigmaIonEnergy: typing.SupportsFloat = 10.0,
991
+ ionExponent: typing.SupportsFloat = 100.0,
992
+ deltaP: typing.SupportsFloat = 0.0,
993
+ etchStopDepth: typing.SupportsFloat = -1.7976931348623157e308,
994
+ ) -> None: ...
995
+ @typing.overload
996
+ def __init__(self, parameters: FluorocarbonParameters) -> None: ...
997
+ def getParameters(self) -> FluorocarbonParameters: ...
998
+ def setParameters(self, arg0: FluorocarbonParameters) -> None: ...
999
+
1000
+ class FluorocarbonParameters:
1001
+ Ions: FluorocarbonParametersIons
1002
+ Mask: FluorocarbonParametersMask
1003
+ Polymer: FluorocarbonParametersPolymer
1004
+ Si: FluorocarbonParametersSi
1005
+ Si3N4: FluorocarbonParametersSi3N4
1006
+ SiO2: FluorocarbonParametersSiO2
1007
+ def __init__(self) -> None: ...
1008
+ @property
1009
+ def delta_p(self) -> float: ...
1010
+ @delta_p.setter
1011
+ def delta_p(self, arg0: typing.SupportsFloat) -> None: ...
1012
+ @property
1013
+ def etchStopDepth(self) -> float: ...
1014
+ @etchStopDepth.setter
1015
+ def etchStopDepth(self, arg0: typing.SupportsFloat) -> None: ...
1016
+ @property
1017
+ def etchantFlux(self) -> float: ...
1018
+ @etchantFlux.setter
1019
+ def etchantFlux(self, arg0: typing.SupportsFloat) -> None: ...
1020
+ @property
1021
+ def ionFlux(self) -> float: ...
1022
+ @ionFlux.setter
1023
+ def ionFlux(self, arg0: typing.SupportsFloat) -> None: ...
1024
+ @property
1025
+ def polyFlux(self) -> float: ...
1026
+ @polyFlux.setter
1027
+ def polyFlux(self, arg0: typing.SupportsFloat) -> None: ...
1028
+
1029
+ class FluorocarbonParametersIons:
1030
+ def __init__(self) -> None: ...
1031
+ @property
1032
+ def exponent(self) -> float: ...
1033
+ @exponent.setter
1034
+ def exponent(self, arg0: typing.SupportsFloat) -> None: ...
1035
+ @property
1036
+ def inflectAngle(self) -> float: ...
1037
+ @inflectAngle.setter
1038
+ def inflectAngle(self, arg0: typing.SupportsFloat) -> None: ...
1039
+ @property
1040
+ def meanEnergy(self) -> float: ...
1041
+ @meanEnergy.setter
1042
+ def meanEnergy(self, arg0: typing.SupportsFloat) -> None: ...
1043
+ @property
1044
+ def minAngle(self) -> float: ...
1045
+ @minAngle.setter
1046
+ def minAngle(self, arg0: typing.SupportsFloat) -> None: ...
1047
+ @property
1048
+ def n_l(self) -> float: ...
1049
+ @n_l.setter
1050
+ def n_l(self, arg0: typing.SupportsFloat) -> None: ...
1051
+ @property
1052
+ def sigmaEnergy(self) -> float: ...
1053
+ @sigmaEnergy.setter
1054
+ def sigmaEnergy(self, arg0: typing.SupportsFloat) -> None: ...
1055
+
1056
+ class FluorocarbonParametersMask:
1057
+ def __init__(self) -> None: ...
1058
+ @property
1059
+ def A_sp(self) -> float: ...
1060
+ @A_sp.setter
1061
+ def A_sp(self, arg0: typing.SupportsFloat) -> None: ...
1062
+ @property
1063
+ def B_sp(self) -> float: ...
1064
+ @B_sp.setter
1065
+ def B_sp(self, arg0: typing.SupportsFloat) -> None: ...
1066
+ @property
1067
+ def Eth_sp(self) -> float: ...
1068
+ @Eth_sp.setter
1069
+ def Eth_sp(self, arg0: typing.SupportsFloat) -> None: ...
1070
+ @property
1071
+ def beta_e(self) -> float: ...
1072
+ @beta_e.setter
1073
+ def beta_e(self, arg0: typing.SupportsFloat) -> None: ...
1074
+ @property
1075
+ def beta_p(self) -> float: ...
1076
+ @beta_p.setter
1077
+ def beta_p(self, arg0: typing.SupportsFloat) -> None: ...
1078
+ @property
1079
+ def rho(self) -> float: ...
1080
+ @rho.setter
1081
+ def rho(self, arg0: typing.SupportsFloat) -> None: ...
1082
+
1083
+ class FluorocarbonParametersPolymer:
1084
+ def __init__(self) -> None: ...
1085
+ @property
1086
+ def A_ie(self) -> float: ...
1087
+ @A_ie.setter
1088
+ def A_ie(self, arg0: typing.SupportsFloat) -> None: ...
1089
+ @property
1090
+ def Eth_ie(self) -> float: ...
1091
+ @Eth_ie.setter
1092
+ def Eth_ie(self, arg0: typing.SupportsFloat) -> None: ...
1093
+ @property
1094
+ def rho(self) -> float: ...
1095
+ @rho.setter
1096
+ def rho(self, arg0: typing.SupportsFloat) -> None: ...
1097
+
1098
+ class FluorocarbonParametersSi:
1099
+ def __init__(self) -> None: ...
1100
+ @property
1101
+ def A_ie(self) -> float: ...
1102
+ @A_ie.setter
1103
+ def A_ie(self, arg0: typing.SupportsFloat) -> None: ...
1104
+ @property
1105
+ def A_sp(self) -> float: ...
1106
+ @A_sp.setter
1107
+ def A_sp(self, arg0: typing.SupportsFloat) -> None: ...
1108
+ @property
1109
+ def B_sp(self) -> float: ...
1110
+ @B_sp.setter
1111
+ def B_sp(self, arg0: typing.SupportsFloat) -> None: ...
1112
+ @property
1113
+ def E_a(self) -> float: ...
1114
+ @E_a.setter
1115
+ def E_a(self, arg0: typing.SupportsFloat) -> None: ...
1116
+ @property
1117
+ def Eth_ie(self) -> float: ...
1118
+ @Eth_ie.setter
1119
+ def Eth_ie(self, arg0: typing.SupportsFloat) -> None: ...
1120
+ @property
1121
+ def Eth_sp(self) -> float: ...
1122
+ @Eth_sp.setter
1123
+ def Eth_sp(self, arg0: typing.SupportsFloat) -> None: ...
1124
+ @property
1125
+ def K(self) -> float: ...
1126
+ @K.setter
1127
+ def K(self, arg0: typing.SupportsFloat) -> None: ...
1128
+ @property
1129
+ def rho(self) -> float: ...
1130
+ @rho.setter
1131
+ def rho(self, arg0: typing.SupportsFloat) -> None: ...
1132
+
1133
+ class FluorocarbonParametersSi3N4:
1134
+ def __init__(self) -> None: ...
1135
+ @property
1136
+ def A_ie(self) -> float: ...
1137
+ @A_ie.setter
1138
+ def A_ie(self, arg0: typing.SupportsFloat) -> None: ...
1139
+ @property
1140
+ def A_sp(self) -> float: ...
1141
+ @A_sp.setter
1142
+ def A_sp(self, arg0: typing.SupportsFloat) -> None: ...
1143
+ @property
1144
+ def B_sp(self) -> float: ...
1145
+ @B_sp.setter
1146
+ def B_sp(self, arg0: typing.SupportsFloat) -> None: ...
1147
+ @property
1148
+ def E_a(self) -> float: ...
1149
+ @E_a.setter
1150
+ def E_a(self, arg0: typing.SupportsFloat) -> None: ...
1151
+ @property
1152
+ def Eth_ie(self) -> float: ...
1153
+ @Eth_ie.setter
1154
+ def Eth_ie(self, arg0: typing.SupportsFloat) -> None: ...
1155
+ @property
1156
+ def Eth_sp(self) -> float: ...
1157
+ @Eth_sp.setter
1158
+ def Eth_sp(self, arg0: typing.SupportsFloat) -> None: ...
1159
+ @property
1160
+ def K(self) -> float: ...
1161
+ @K.setter
1162
+ def K(self, arg0: typing.SupportsFloat) -> None: ...
1163
+ @property
1164
+ def rho(self) -> float: ...
1165
+ @rho.setter
1166
+ def rho(self, arg0: typing.SupportsFloat) -> None: ...
1167
+
1168
+ class FluorocarbonParametersSiO2:
1169
+ def __init__(self) -> None: ...
1170
+ @property
1171
+ def A_ie(self) -> float: ...
1172
+ @A_ie.setter
1173
+ def A_ie(self, arg0: typing.SupportsFloat) -> None: ...
1174
+ @property
1175
+ def A_sp(self) -> float: ...
1176
+ @A_sp.setter
1177
+ def A_sp(self, arg0: typing.SupportsFloat) -> None: ...
1178
+ @property
1179
+ def B_sp(self) -> float: ...
1180
+ @B_sp.setter
1181
+ def B_sp(self, arg0: typing.SupportsFloat) -> None: ...
1182
+ @property
1183
+ def E_a(self) -> float: ...
1184
+ @E_a.setter
1185
+ def E_a(self, arg0: typing.SupportsFloat) -> None: ...
1186
+ @property
1187
+ def Eth_ie(self) -> float: ...
1188
+ @Eth_ie.setter
1189
+ def Eth_ie(self, arg0: typing.SupportsFloat) -> None: ...
1190
+ @property
1191
+ def Eth_sp(self) -> float: ...
1192
+ @Eth_sp.setter
1193
+ def Eth_sp(self, arg0: typing.SupportsFloat) -> None: ...
1194
+ @property
1195
+ def K(self) -> float: ...
1196
+ @K.setter
1197
+ def K(self, arg0: typing.SupportsFloat) -> None: ...
1198
+ @property
1199
+ def rho(self) -> float: ...
1200
+ @rho.setter
1201
+ def rho(self, arg0: typing.SupportsFloat) -> None: ...
1202
+
1203
+ class GDSGeometry:
1204
+ @typing.overload
1205
+ def __init__(self) -> None: ...
1206
+ @typing.overload
1207
+ def __init__(self, gridDelta: typing.SupportsFloat) -> None: ...
1208
+ @typing.overload
1209
+ def __init__(
1210
+ self,
1211
+ gridDelta: typing.SupportsFloat,
1212
+ boundaryConditions: typing.Annotated[
1213
+ collections.abc.Sequence[viennals3d.viennals3d.BoundaryConditionEnum],
1214
+ "FixedSize(3)",
1215
+ ],
1216
+ ) -> None: ...
1217
+ def addBlur(
1218
+ self,
1219
+ sigmas: collections.abc.Sequence[typing.SupportsFloat],
1220
+ weights: collections.abc.Sequence[typing.SupportsFloat],
1221
+ threshold: typing.SupportsFloat = 0.5,
1222
+ delta: typing.SupportsFloat = 0.0,
1223
+ gridRefinement: typing.SupportsInt = 4,
1224
+ ) -> None:
1225
+ """
1226
+ Set parameters for applying mask blurring.
1227
+ """
1228
+
1229
+ def getAllLayers(self) -> set[int]:
1230
+ """
1231
+ Return a set of all layers found in the GDS file.
1232
+ """
1233
+
1234
+ def getBounds(self) -> typing.Annotated[list[float], "FixedSize(6)"]:
1235
+ """
1236
+ Get the bounds of the geometry.
1237
+ """
1238
+
1239
+ def getNumberOfStructures(self) -> int:
1240
+ """
1241
+ Return number of structure definitions.
1242
+ """
1243
+
1244
+ def layerToLevelSet(
1245
+ self,
1246
+ layer: typing.SupportsInt,
1247
+ baseHeight: typing.SupportsFloat = 0.0,
1248
+ height: typing.SupportsFloat = 1.0,
1249
+ mask: bool = False,
1250
+ blurLayer: bool = True,
1251
+ ) -> viennals3d.viennals3d.Domain: ...
1252
+ def print(self) -> None:
1253
+ """
1254
+ Print the geometry contents.
1255
+ """
1256
+
1257
+ def setBoundaryConditions(
1258
+ self,
1259
+ arg0: collections.abc.Sequence[viennals3d.viennals3d.BoundaryConditionEnum],
1260
+ ) -> None:
1261
+ """
1262
+ Set the boundary conditions
1263
+ """
1264
+
1265
+ def setBoundaryPadding(
1266
+ self, arg0: typing.SupportsFloat, arg1: typing.SupportsFloat
1267
+ ) -> None:
1268
+ """
1269
+ Set padding between the largest point of the geometry and the boundary of the domain.
1270
+ """
1271
+
1272
+ def setGridDelta(self, arg0: typing.SupportsFloat) -> None:
1273
+ """
1274
+ Set the grid spacing.
1275
+ """
1276
+
1277
+ class GDSReader:
1278
+ @typing.overload
1279
+ def __init__(self) -> None: ...
1280
+ @typing.overload
1281
+ def __init__(self, arg0: GDSGeometry, arg1: str) -> None: ...
1282
+ def apply(self) -> None:
1283
+ """
1284
+ Parse the GDS file.
1285
+ """
1286
+
1287
+ def setFileName(self, arg0: str) -> None:
1288
+ """
1289
+ Set name of the GDS file.
1290
+ """
1291
+
1292
+ def setGeometry(self, arg0: GDSGeometry) -> None:
1293
+ """
1294
+ Set the domain to be parsed in.
1295
+ """
1296
+
1297
+ class GeometryFactory:
1298
+ def __init__(
1299
+ self, domainSetup: DomainSetup, name: str = "GeometryFactory"
1300
+ ) -> None: ...
1301
+ def makeBoxStencil(
1302
+ self,
1303
+ position: typing.Annotated[
1304
+ collections.abc.Sequence[typing.SupportsFloat], "FixedSize(3)"
1305
+ ],
1306
+ width: typing.SupportsFloat,
1307
+ height: typing.SupportsFloat,
1308
+ angle: typing.SupportsFloat = 0.0,
1309
+ length: typing.SupportsFloat = -1.0,
1310
+ ) -> viennals3d.viennals3d.Domain: ...
1311
+ def makeCylinderStencil(
1312
+ self,
1313
+ position: typing.Annotated[
1314
+ collections.abc.Sequence[typing.SupportsFloat], "FixedSize(3)"
1315
+ ],
1316
+ radius: typing.SupportsFloat,
1317
+ height: typing.SupportsFloat,
1318
+ angle: typing.SupportsFloat = 0.0,
1319
+ ) -> viennals3d.viennals3d.Domain: ...
1320
+ def makeMask(
1321
+ self, base: typing.SupportsFloat, height: typing.SupportsFloat
1322
+ ) -> viennals3d.viennals3d.Domain: ...
1323
+ def makeSubstrate(
1324
+ self, base: typing.SupportsFloat
1325
+ ) -> viennals3d.viennals3d.Domain: ...
1326
+
1327
+ class HBrO2Etching(ProcessModel):
1328
+ @staticmethod
1329
+ def defaultParameters() -> PlasmaEtchingParameters: ...
1330
+ @typing.overload
1331
+ def __init__(self) -> None: ...
1332
+ @typing.overload
1333
+ def __init__(
1334
+ self,
1335
+ ionFlux: typing.SupportsFloat,
1336
+ etchantFlux: typing.SupportsFloat,
1337
+ oxygenFlux: typing.SupportsFloat,
1338
+ meanIonEnergy: typing.SupportsFloat = 100.0,
1339
+ sigmaIonEnergy: typing.SupportsFloat = 10.0,
1340
+ ionExponent: typing.SupportsFloat = 100.0,
1341
+ oxySputterYield: typing.SupportsFloat = 3.0,
1342
+ etchStopDepth: typing.SupportsFloat = -1.7976931348623157e308,
1343
+ ) -> None: ...
1344
+ @typing.overload
1345
+ def __init__(self, parameters: PlasmaEtchingParameters) -> None: ...
1346
+ def getParameters(self) -> PlasmaEtchingParameters: ...
1347
+ def setParameters(self, arg0: PlasmaEtchingParameters) -> None: ...
1348
+
1349
+ class HoleShape(enum.IntEnum):
1350
+ FULL: typing.ClassVar[HoleShape] # value = <HoleShape.FULL: 0>
1351
+ HALF: typing.ClassVar[HoleShape] # value = <HoleShape.HALF: 1>
1352
+ QUARTER: typing.ClassVar[HoleShape] # value = <HoleShape.QUARTER: 2>
1353
+ @classmethod
1354
+ def __new__(cls, value): ...
1355
+ def __format__(self, format_spec):
1356
+ """
1357
+ Convert to a string according to format_spec.
1358
+ """
1359
+
1360
+ class IBEParameters:
1361
+ yieldFunction: collections.abc.Callable[[typing.SupportsFloat], float]
1362
+ def __init__(self) -> None: ...
1363
+ @property
1364
+ def exponent(self) -> float: ...
1365
+ @exponent.setter
1366
+ def exponent(self, arg0: typing.SupportsFloat) -> None: ...
1367
+ @property
1368
+ def inflectAngle(self) -> float: ...
1369
+ @inflectAngle.setter
1370
+ def inflectAngle(self, arg0: typing.SupportsFloat) -> None: ...
1371
+ @property
1372
+ def materialPlaneWaferRate(self) -> dict[Material, float]: ...
1373
+ @materialPlaneWaferRate.setter
1374
+ def materialPlaneWaferRate(
1375
+ self, arg0: collections.abc.Mapping[Material, typing.SupportsFloat]
1376
+ ) -> None: ...
1377
+ @property
1378
+ def meanEnergy(self) -> float: ...
1379
+ @meanEnergy.setter
1380
+ def meanEnergy(self, arg0: typing.SupportsFloat) -> None: ...
1381
+ @property
1382
+ def minAngle(self) -> float: ...
1383
+ @minAngle.setter
1384
+ def minAngle(self, arg0: typing.SupportsFloat) -> None: ...
1385
+ @property
1386
+ def n_l(self) -> float: ...
1387
+ @n_l.setter
1388
+ def n_l(self, arg0: typing.SupportsFloat) -> None: ...
1389
+ @property
1390
+ def planeWaferRate(self) -> float: ...
1391
+ @planeWaferRate.setter
1392
+ def planeWaferRate(self, arg0: typing.SupportsFloat) -> None: ...
1393
+ @property
1394
+ def redepositionRate(self) -> float: ...
1395
+ @redepositionRate.setter
1396
+ def redepositionRate(self, arg0: typing.SupportsFloat) -> None: ...
1397
+ @property
1398
+ def redepositionThreshold(self) -> float: ...
1399
+ @redepositionThreshold.setter
1400
+ def redepositionThreshold(self, arg0: typing.SupportsFloat) -> None: ...
1401
+ @property
1402
+ def sigmaEnergy(self) -> float: ...
1403
+ @sigmaEnergy.setter
1404
+ def sigmaEnergy(self, arg0: typing.SupportsFloat) -> None: ...
1405
+ @property
1406
+ def thresholdEnergy(self) -> float: ...
1407
+ @thresholdEnergy.setter
1408
+ def thresholdEnergy(self, arg0: typing.SupportsFloat) -> None: ...
1409
+ @property
1410
+ def tiltAngle(self) -> float: ...
1411
+ @tiltAngle.setter
1412
+ def tiltAngle(self, arg0: typing.SupportsFloat) -> None: ...
1413
+
1414
+ class Interpolation(enum.IntEnum):
1415
+ CUSTOM: typing.ClassVar[Interpolation] # value = <Interpolation.CUSTOM: 2>
1416
+ IDW: typing.ClassVar[Interpolation] # value = <Interpolation.IDW: 1>
1417
+ LINEAR: typing.ClassVar[Interpolation] # value = <Interpolation.LINEAR: 0>
1418
+ @classmethod
1419
+ def __new__(cls, value): ...
1420
+ def __format__(self, format_spec):
1421
+ """
1422
+ Convert to a string according to format_spec.
1423
+ """
1424
+
1425
+ class IonBeamEtching(ProcessModel):
1426
+ @typing.overload
1427
+ def __init__(self) -> None: ...
1428
+ @typing.overload
1429
+ def __init__(self, maskMaterials: collections.abc.Sequence[Material]) -> None: ...
1430
+ @typing.overload
1431
+ def __init__(
1432
+ self,
1433
+ maskMaterials: collections.abc.Sequence[Material],
1434
+ parameters: IBEParameters,
1435
+ ) -> None: ...
1436
+ def getParameters(self) -> IBEParameters: ...
1437
+ def setParameters(self, arg0: IBEParameters) -> None: ...
1438
+
1439
+ class IsotropicProcess(ProcessModel):
1440
+ @typing.overload
1441
+ def __init__(
1442
+ self, rate: typing.SupportsFloat = 1.0, maskMaterial: Material = ...
1443
+ ) -> None: ...
1444
+ @typing.overload
1445
+ def __init__(
1446
+ self,
1447
+ rate: typing.SupportsFloat,
1448
+ maskMaterial: collections.abc.Sequence[Material],
1449
+ ) -> None: ...
1450
+ @typing.overload
1451
+ def __init__(
1452
+ self,
1453
+ materialRates: collections.abc.Mapping[Material, typing.SupportsFloat],
1454
+ defaultRate: typing.SupportsFloat = 0.0,
1455
+ ) -> None: ...
1456
+
1457
+ class Length:
1458
+ @staticmethod
1459
+ def convertAngstrom() -> float: ...
1460
+ @staticmethod
1461
+ def convertCentimeter() -> float: ...
1462
+ @staticmethod
1463
+ def convertMeter() -> float: ...
1464
+ @staticmethod
1465
+ def convertMicrometer() -> float: ...
1466
+ @staticmethod
1467
+ def convertMillimeter() -> float: ...
1468
+ @staticmethod
1469
+ def convertNanometer() -> float: ...
1470
+ @staticmethod
1471
+ def getInstance() -> Length: ...
1472
+ @staticmethod
1473
+ def setUnit(arg0: str) -> None: ...
1474
+ @staticmethod
1475
+ def toShortString() -> str: ...
1476
+ @staticmethod
1477
+ def toString() -> str: ...
1478
+
1479
+ class LengthUnit(enum.IntEnum):
1480
+ ANGSTROM: typing.ClassVar[LengthUnit] # value = <LengthUnit.ANGSTROM: 5>
1481
+ CENTIMETER: typing.ClassVar[LengthUnit] # value = <LengthUnit.CENTIMETER: 1>
1482
+ METER: typing.ClassVar[LengthUnit] # value = <LengthUnit.METER: 0>
1483
+ MICROMETER: typing.ClassVar[LengthUnit] # value = <LengthUnit.MICROMETER: 3>
1484
+ MILLIMETER: typing.ClassVar[LengthUnit] # value = <LengthUnit.MILLIMETER: 2>
1485
+ NANOMETER: typing.ClassVar[LengthUnit] # value = <LengthUnit.NANOMETER: 4>
1486
+ UNDEFINED: typing.ClassVar[LengthUnit] # value = <LengthUnit.UNDEFINED: 6>
1487
+ @classmethod
1488
+ def __new__(cls, value): ...
1489
+ def __format__(self, format_spec):
1490
+ """
1491
+ Convert to a string according to format_spec.
1492
+ """
1493
+
1494
+ class LogLevel:
1495
+ """
1496
+ Members:
1497
+
1498
+ ERROR
1499
+
1500
+ WARNING
1501
+
1502
+ INFO
1503
+
1504
+ INTERMEDIATE
1505
+
1506
+ TIMING
1507
+
1508
+ DEBUG
1509
+ """
1510
+
1511
+ DEBUG: typing.ClassVar[LogLevel] # value = <LogLevel.DEBUG: 5>
1512
+ ERROR: typing.ClassVar[LogLevel] # value = <LogLevel.ERROR: 0>
1513
+ INFO: typing.ClassVar[LogLevel] # value = <LogLevel.INFO: 2>
1514
+ INTERMEDIATE: typing.ClassVar[LogLevel] # value = <LogLevel.INTERMEDIATE: 3>
1515
+ TIMING: typing.ClassVar[LogLevel] # value = <LogLevel.TIMING: 4>
1516
+ WARNING: typing.ClassVar[LogLevel] # value = <LogLevel.WARNING: 1>
1517
+ __members__: typing.ClassVar[
1518
+ dict[str, LogLevel]
1519
+ ] # value = {'ERROR': <LogLevel.ERROR: 0>, 'WARNING': <LogLevel.WARNING: 1>, 'INFO': <LogLevel.INFO: 2>, 'INTERMEDIATE': <LogLevel.INTERMEDIATE: 3>, 'TIMING': <LogLevel.TIMING: 4>, 'DEBUG': <LogLevel.DEBUG: 5>}
1520
+ def __eq__(self, other: typing.Any) -> bool: ...
1521
+ def __getstate__(self) -> int: ...
1522
+ def __hash__(self) -> int: ...
1523
+ def __index__(self) -> int: ...
1524
+ def __init__(self, value: typing.SupportsInt) -> None: ...
1525
+ def __int__(self) -> int: ...
1526
+ def __ne__(self, other: typing.Any) -> bool: ...
1527
+ def __repr__(self) -> str: ...
1528
+ def __setstate__(self, state: typing.SupportsInt) -> None: ...
1529
+ def __str__(self) -> str: ...
1530
+ @property
1531
+ def name(self) -> str: ...
1532
+ @property
1533
+ def value(self) -> int: ...
1534
+
1535
+ class Logger:
1536
+ @staticmethod
1537
+ def appendToLogFile(arg0: str) -> bool: ...
1538
+ @staticmethod
1539
+ def closeLogFile() -> None: ...
1540
+ @staticmethod
1541
+ def getInstance() -> Logger: ...
1542
+ @staticmethod
1543
+ def getLogLevel() -> int: ...
1544
+ @staticmethod
1545
+ def setLogFile(arg0: str) -> bool: ...
1546
+ @staticmethod
1547
+ def setLogLevel(arg0: LogLevel) -> None: ...
1548
+ def addDebug(self, arg0: str) -> Logger: ...
1549
+ def addError(self, s: str, shouldAbort: bool = True) -> Logger: ...
1550
+ def addInfo(self, arg0: str) -> Logger: ...
1551
+ @typing.overload
1552
+ def addTiming(self, arg0: str, arg1: typing.SupportsFloat) -> Logger: ...
1553
+ @typing.overload
1554
+ def addTiming(
1555
+ self, arg0: str, arg1: typing.SupportsFloat, arg2: typing.SupportsFloat
1556
+ ) -> Logger: ...
1557
+ def addWarning(self, arg0: str) -> Logger: ...
1558
+ def print(self) -> None: ...
1559
+
1560
+ class MakeFin:
1561
+ @typing.overload
1562
+ def __init__(
1563
+ self,
1564
+ domain: Domain,
1565
+ finWidth: typing.SupportsFloat,
1566
+ finHeight: typing.SupportsFloat,
1567
+ finTaperAngle: typing.SupportsFloat = 0.0,
1568
+ maskHeight: typing.SupportsFloat = 0,
1569
+ maskTaperAngle: typing.SupportsFloat = 0,
1570
+ halfFin: bool = False,
1571
+ material: Material = ...,
1572
+ maskMaterial: Material = ...,
1573
+ ) -> None: ...
1574
+ @typing.overload
1575
+ def __init__(
1576
+ self,
1577
+ domain: Domain,
1578
+ gridDelta: typing.SupportsFloat,
1579
+ xExtent: typing.SupportsFloat,
1580
+ yExtent: typing.SupportsFloat,
1581
+ finWidth: typing.SupportsFloat,
1582
+ finHeight: typing.SupportsFloat,
1583
+ taperAngle: typing.SupportsFloat = 0.0,
1584
+ baseHeight: typing.SupportsFloat = 0.0,
1585
+ periodicBoundary: bool = False,
1586
+ makeMask: bool = False,
1587
+ material: Material = ...,
1588
+ ) -> None: ...
1589
+ def apply(self) -> None:
1590
+ """
1591
+ Create a fin geometry.
1592
+ """
1593
+
1594
+ class MakeHole:
1595
+ @typing.overload
1596
+ def __init__(
1597
+ self,
1598
+ domain: Domain,
1599
+ holeRadius: typing.SupportsFloat,
1600
+ holeDepth: typing.SupportsFloat,
1601
+ holeTaperAngle: typing.SupportsFloat = 0.0,
1602
+ maskHeight: typing.SupportsFloat = 0.0,
1603
+ maskTaperAngle: typing.SupportsFloat = 0.0,
1604
+ holeShape: HoleShape = ...,
1605
+ material: Material = ...,
1606
+ maskMaterial: Material = ...,
1607
+ ) -> None: ...
1608
+ @typing.overload
1609
+ def __init__(
1610
+ self,
1611
+ domain: Domain,
1612
+ gridDelta: typing.SupportsFloat,
1613
+ xExtent: typing.SupportsFloat,
1614
+ yExtent: typing.SupportsFloat,
1615
+ holeRadius: typing.SupportsFloat,
1616
+ holeDepth: typing.SupportsFloat,
1617
+ taperingAngle: typing.SupportsFloat = 0.0,
1618
+ baseHeight: typing.SupportsFloat = 0.0,
1619
+ periodicBoundary: bool = False,
1620
+ makeMask: bool = False,
1621
+ material: Material = ...,
1622
+ holeShape: HoleShape = ...,
1623
+ ) -> None: ...
1624
+ def apply(self) -> None:
1625
+ """
1626
+ Create a hole geometry.
1627
+ """
1628
+
1629
+ class MakePlane:
1630
+ @typing.overload
1631
+ def __init__(
1632
+ self,
1633
+ domain: Domain,
1634
+ height: typing.SupportsFloat = 0.0,
1635
+ material: Material = ...,
1636
+ addToExisting: bool = False,
1637
+ ) -> None: ...
1638
+ @typing.overload
1639
+ def __init__(
1640
+ self,
1641
+ domain: Domain,
1642
+ gridDelta: typing.SupportsFloat,
1643
+ xExtent: typing.SupportsFloat,
1644
+ yExtent: typing.SupportsFloat,
1645
+ height: typing.SupportsFloat = 0.0,
1646
+ periodicBoundary: bool = False,
1647
+ material: Material = ...,
1648
+ ) -> None: ...
1649
+ def apply(self) -> None:
1650
+ """
1651
+ Create a plane geometry or add plane to existing geometry.
1652
+ """
1653
+
1654
+ class MakeStack:
1655
+ @typing.overload
1656
+ def __init__(
1657
+ self,
1658
+ domain: Domain,
1659
+ numLayers: typing.SupportsInt,
1660
+ layerHeight: typing.SupportsFloat,
1661
+ substrateHeight: typing.SupportsFloat = 0,
1662
+ holeRadius: typing.SupportsFloat = 0,
1663
+ trenchWidth: typing.SupportsFloat = 0,
1664
+ maskHeight: typing.SupportsFloat = 0,
1665
+ taperAngle: typing.SupportsFloat = 0,
1666
+ halfStack: bool = False,
1667
+ maskMaterial: Material = ...,
1668
+ ) -> None: ...
1669
+ @typing.overload
1670
+ def __init__(
1671
+ self,
1672
+ domain: Domain,
1673
+ gridDelta: typing.SupportsFloat,
1674
+ xExtent: typing.SupportsFloat,
1675
+ yExtent: typing.SupportsFloat,
1676
+ numLayers: typing.SupportsInt,
1677
+ layerHeight: typing.SupportsFloat,
1678
+ substrateHeight: typing.SupportsFloat,
1679
+ holeRadius: typing.SupportsFloat,
1680
+ trenchWidth: typing.SupportsFloat,
1681
+ maskHeight: typing.SupportsFloat,
1682
+ periodicBoundary: bool = False,
1683
+ ) -> None: ...
1684
+ def apply(self) -> None:
1685
+ """
1686
+ Create a stack of alternating SiO2 and Si3N4 layers.
1687
+ """
1688
+
1689
+ def getHeight(self) -> float:
1690
+ """
1691
+ Returns the total height of the stack.
1692
+ """
1693
+
1694
+ def getTopLayer(self) -> int:
1695
+ """
1696
+ Returns the number of layers included in the stack
1697
+ """
1698
+
1699
+ class MakeTrench:
1700
+ @typing.overload
1701
+ def __init__(
1702
+ self,
1703
+ domain: Domain,
1704
+ trenchWidth: typing.SupportsFloat,
1705
+ trenchDepth: typing.SupportsFloat,
1706
+ trenchTaperAngle: typing.SupportsFloat = 0,
1707
+ maskHeight: typing.SupportsFloat = 0,
1708
+ maskTaperAngle: typing.SupportsFloat = 0,
1709
+ halfTrench: bool = False,
1710
+ material: Material = ...,
1711
+ maskMaterial: Material = ...,
1712
+ ) -> None: ...
1713
+ @typing.overload
1714
+ def __init__(
1715
+ self,
1716
+ domain: Domain,
1717
+ gridDelta: typing.SupportsFloat,
1718
+ xExtent: typing.SupportsFloat,
1719
+ yExtent: typing.SupportsFloat,
1720
+ trenchWidth: typing.SupportsFloat,
1721
+ trenchDepth: typing.SupportsFloat,
1722
+ taperingAngle: typing.SupportsFloat = 0.0,
1723
+ baseHeight: typing.SupportsFloat = 0.0,
1724
+ periodicBoundary: bool = False,
1725
+ makeMask: bool = False,
1726
+ material: Material = ...,
1727
+ ) -> None: ...
1728
+ def apply(self) -> None:
1729
+ """
1730
+ Create a trench geometry.
1731
+ """
1732
+
1733
+ class Material(enum.IntEnum):
1734
+ """
1735
+ Material types for domain and level sets.
1736
+ """
1737
+
1738
+ Air: typing.ClassVar[Material] # value = <Material.Air: 18>
1739
+ Al2O3: typing.ClassVar[Material] # value = <Material.Al2O3: 11>
1740
+ Cu: typing.ClassVar[Material] # value = <Material.Cu: 14>
1741
+ Dielectric: typing.ClassVar[Material] # value = <Material.Dielectric: 16>
1742
+ GAS: typing.ClassVar[Material] # value = <Material.GAS: 19>
1743
+ GaN: typing.ClassVar[Material] # value = <Material.GaN: 9>
1744
+ HfO2: typing.ClassVar[Material] # value = <Material.HfO2: 12>
1745
+ Mask: typing.ClassVar[Material] # value = <Material.Mask: 0>
1746
+ Metal: typing.ClassVar[Material] # value = <Material.Metal: 17>
1747
+ PolySi: typing.ClassVar[Material] # value = <Material.PolySi: 8>
1748
+ Polymer: typing.ClassVar[Material] # value = <Material.Polymer: 15>
1749
+ Si: typing.ClassVar[Material] # value = <Material.Si: 1>
1750
+ Si3N4: typing.ClassVar[Material] # value = <Material.Si3N4: 3>
1751
+ SiC: typing.ClassVar[Material] # value = <Material.SiC: 6>
1752
+ SiGe: typing.ClassVar[Material] # value = <Material.SiGe: 7>
1753
+ SiN: typing.ClassVar[Material] # value = <Material.SiN: 4>
1754
+ SiO2: typing.ClassVar[Material] # value = <Material.SiO2: 2>
1755
+ SiON: typing.ClassVar[Material] # value = <Material.SiON: 5>
1756
+ TiN: typing.ClassVar[Material] # value = <Material.TiN: 13>
1757
+ Undefined: typing.ClassVar[Material] # value = <Material.Undefined: -1>
1758
+ W: typing.ClassVar[Material] # value = <Material.W: 10>
1759
+ @classmethod
1760
+ def __new__(cls, value): ...
1761
+ def __format__(self, format_spec):
1762
+ """
1763
+ Convert to a string according to format_spec.
1764
+ """
1765
+
1766
+ class MaterialMap:
1767
+ @staticmethod
1768
+ def getMaterialName(arg0: Material) -> str:
1769
+ """
1770
+ Get the name of a material.
1771
+ """
1772
+
1773
+ @staticmethod
1774
+ def isMaterial(arg0: typing.SupportsFloat, arg1: Material) -> bool: ...
1775
+ @staticmethod
1776
+ def mapToMaterial(arg0: typing.SupportsFloat) -> Material:
1777
+ """
1778
+ Map a float to a material.
1779
+ """
1780
+
1781
+ def __init__(self) -> None: ...
1782
+ def getMaterialAtIdx(self, arg0: typing.SupportsInt) -> Material: ...
1783
+ def getMaterialMap(self) -> viennals3d.viennals3d.MaterialMap: ...
1784
+ def insertNextMaterial(self, material: Material = ...) -> None: ...
1785
+ def size(self) -> int: ...
1786
+
1787
+ class MetaDataLevel(enum.IntEnum):
1788
+ FULL: typing.ClassVar[MetaDataLevel] # value = <MetaDataLevel.FULL: 3>
1789
+ GRID: typing.ClassVar[MetaDataLevel] # value = <MetaDataLevel.GRID: 1>
1790
+ NONE: typing.ClassVar[MetaDataLevel] # value = <MetaDataLevel.NONE: 0>
1791
+ PROCESS: typing.ClassVar[MetaDataLevel] # value = <MetaDataLevel.PROCESS: 2>
1792
+ @classmethod
1793
+ def __new__(cls, value): ...
1794
+ def __format__(self, format_spec):
1795
+ """
1796
+ Convert to a string according to format_spec.
1797
+ """
1798
+
1799
+ class MultiParticleProcess(ProcessModel):
1800
+ def __init__(self) -> None: ...
1801
+ def addIonParticle(
1802
+ self,
1803
+ sourcePower: typing.SupportsFloat,
1804
+ thetaRMin: typing.SupportsFloat = 0.0,
1805
+ thetaRMax: typing.SupportsFloat = 90.0,
1806
+ minAngle: typing.SupportsFloat = 0.0,
1807
+ B_sp: typing.SupportsFloat = -1.0,
1808
+ meanEnergy: typing.SupportsFloat = 0.0,
1809
+ sigmaEnergy: typing.SupportsFloat = 0.0,
1810
+ thresholdEnergy: typing.SupportsFloat = 0.0,
1811
+ inflectAngle: typing.SupportsFloat = 0.0,
1812
+ n: typing.SupportsFloat = 1,
1813
+ label: str = "ionFlux",
1814
+ ) -> None: ...
1815
+ @typing.overload
1816
+ def addNeutralParticle(
1817
+ self, stickingProbability: typing.SupportsFloat, label: str = "neutralFlux"
1818
+ ) -> None: ...
1819
+ @typing.overload
1820
+ def addNeutralParticle(
1821
+ self,
1822
+ materialSticking: collections.abc.Mapping[Material, typing.SupportsFloat],
1823
+ defaultStickingProbability: typing.SupportsFloat = 1.0,
1824
+ label: str = "neutralFlux",
1825
+ ) -> None: ...
1826
+ def setRateFunction(
1827
+ self,
1828
+ arg0: collections.abc.Callable[
1829
+ [collections.abc.Sequence[typing.SupportsFloat], Material], float
1830
+ ],
1831
+ ) -> None: ...
1832
+
1833
+ class NormalizationType(enum.IntEnum):
1834
+ MAX: typing.ClassVar[NormalizationType] # value = <NormalizationType.MAX: 1>
1835
+ SOURCE: typing.ClassVar[NormalizationType] # value = <NormalizationType.SOURCE: 0>
1836
+ @classmethod
1837
+ def __new__(cls, value): ...
1838
+ def __format__(self, format_spec):
1839
+ """
1840
+ Convert to a string according to format_spec.
1841
+ """
1842
+
1843
+ class OxideRegrowth(ProcessModel):
1844
+ def __init__(
1845
+ self,
1846
+ nitrideEtchRate: typing.SupportsFloat,
1847
+ oxideEtchRate: typing.SupportsFloat,
1848
+ redepositionRate: typing.SupportsFloat,
1849
+ redepositionThreshold: typing.SupportsFloat,
1850
+ redepositionTimeInt: typing.SupportsFloat,
1851
+ diffusionCoefficient: typing.SupportsFloat,
1852
+ sinkStrength: typing.SupportsFloat,
1853
+ scallopVelocity: typing.SupportsFloat,
1854
+ centerVelocity: typing.SupportsFloat,
1855
+ topHeight: typing.SupportsFloat,
1856
+ centerWidth: typing.SupportsFloat,
1857
+ stabilityFactor: typing.SupportsFloat,
1858
+ ) -> None: ...
1859
+
1860
+ class Planarize:
1861
+ @typing.overload
1862
+ def __init__(self) -> None: ...
1863
+ @typing.overload
1864
+ def __init__(
1865
+ self, geometry: Domain, cutoffHeight: typing.SupportsFloat = 0.0
1866
+ ) -> None: ...
1867
+ def apply(self) -> None:
1868
+ """
1869
+ Apply the planarization.
1870
+ """
1871
+
1872
+ def setCutoffPosition(self, arg0: typing.SupportsFloat) -> None:
1873
+ """
1874
+ Set the cutoff height for the planarization.
1875
+ """
1876
+
1877
+ def setDomain(self, arg0: Domain) -> None:
1878
+ """
1879
+ Set the domain in the planarization.
1880
+ """
1881
+
1882
+ class PlasmaEtchingParameters:
1883
+ Ions: PlasmaEtchingParametersIons
1884
+ Mask: PlasmaEtchingParametersMask
1885
+ Passivation: PlasmaEtchingParametersPassivation
1886
+ Substrate: PlasmaEtchingParametersSubstrate
1887
+ def __init__(self) -> None: ...
1888
+ @property
1889
+ def beta_E(self) -> dict[int, float]: ...
1890
+ @beta_E.setter
1891
+ def beta_E(
1892
+ self, arg0: collections.abc.Mapping[typing.SupportsInt, typing.SupportsFloat]
1893
+ ) -> None: ...
1894
+ @property
1895
+ def beta_P(self) -> dict[int, float]: ...
1896
+ @beta_P.setter
1897
+ def beta_P(
1898
+ self, arg0: collections.abc.Mapping[typing.SupportsInt, typing.SupportsFloat]
1899
+ ) -> None: ...
1900
+ @property
1901
+ def etchStopDepth(self) -> float: ...
1902
+ @etchStopDepth.setter
1903
+ def etchStopDepth(self, arg0: typing.SupportsFloat) -> None: ...
1904
+ @property
1905
+ def etchantFlux(self) -> float: ...
1906
+ @etchantFlux.setter
1907
+ def etchantFlux(self, arg0: typing.SupportsFloat) -> None: ...
1908
+ @property
1909
+ def ionFlux(self) -> float: ...
1910
+ @ionFlux.setter
1911
+ def ionFlux(self, arg0: typing.SupportsFloat) -> None: ...
1912
+ @property
1913
+ def passivationFlux(self) -> float: ...
1914
+ @passivationFlux.setter
1915
+ def passivationFlux(self, arg0: typing.SupportsFloat) -> None: ...
1916
+
1917
+ class PlasmaEtchingParametersIons:
1918
+ def __init__(self) -> None: ...
1919
+ @property
1920
+ def exponent(self) -> float: ...
1921
+ @exponent.setter
1922
+ def exponent(self, arg0: typing.SupportsFloat) -> None: ...
1923
+ @property
1924
+ def inflectAngle(self) -> float: ...
1925
+ @inflectAngle.setter
1926
+ def inflectAngle(self, arg0: typing.SupportsFloat) -> None: ...
1927
+ @property
1928
+ def meanEnergy(self) -> float: ...
1929
+ @meanEnergy.setter
1930
+ def meanEnergy(self, arg0: typing.SupportsFloat) -> None: ...
1931
+ @property
1932
+ def minAngle(self) -> float: ...
1933
+ @minAngle.setter
1934
+ def minAngle(self, arg0: typing.SupportsFloat) -> None: ...
1935
+ @property
1936
+ def n_l(self) -> float: ...
1937
+ @n_l.setter
1938
+ def n_l(self, arg0: typing.SupportsFloat) -> None: ...
1939
+ @property
1940
+ def sigmaEnergy(self) -> float: ...
1941
+ @sigmaEnergy.setter
1942
+ def sigmaEnergy(self, arg0: typing.SupportsFloat) -> None: ...
1943
+ @property
1944
+ def thetaRMax(self) -> float: ...
1945
+ @thetaRMax.setter
1946
+ def thetaRMax(self, arg0: typing.SupportsFloat) -> None: ...
1947
+ @property
1948
+ def thetaRMin(self) -> float: ...
1949
+ @thetaRMin.setter
1950
+ def thetaRMin(self, arg0: typing.SupportsFloat) -> None: ...
1951
+
1952
+ class PlasmaEtchingParametersMask:
1953
+ def __init__(self) -> None: ...
1954
+ @property
1955
+ def A_sp(self) -> float: ...
1956
+ @A_sp.setter
1957
+ def A_sp(self, arg0: typing.SupportsFloat) -> None: ...
1958
+ @property
1959
+ def B_sp(self) -> float: ...
1960
+ @B_sp.setter
1961
+ def B_sp(self, arg0: typing.SupportsFloat) -> None: ...
1962
+ @property
1963
+ def Eth_sp(self) -> float: ...
1964
+ @Eth_sp.setter
1965
+ def Eth_sp(self, arg0: typing.SupportsFloat) -> None: ...
1966
+ @property
1967
+ def rho(self) -> float: ...
1968
+ @rho.setter
1969
+ def rho(self, arg0: typing.SupportsFloat) -> None: ...
1970
+
1971
+ class PlasmaEtchingParametersPassivation:
1972
+ def __init__(self) -> None: ...
1973
+ @property
1974
+ def A_ie(self) -> float: ...
1975
+ @A_ie.setter
1976
+ def A_ie(self, arg0: typing.SupportsFloat) -> None: ...
1977
+ @property
1978
+ def Eth_ie(self) -> float: ...
1979
+ @Eth_ie.setter
1980
+ def Eth_ie(self, arg0: typing.SupportsFloat) -> None: ...
1981
+
1982
+ class PlasmaEtchingParametersPolymer:
1983
+ def __init__(self) -> None: ...
1984
+ @property
1985
+ def A_sp(self) -> float: ...
1986
+ @A_sp.setter
1987
+ def A_sp(self, arg0: typing.SupportsFloat) -> None: ...
1988
+ @property
1989
+ def B_sp(self) -> float: ...
1990
+ @B_sp.setter
1991
+ def B_sp(self, arg0: typing.SupportsFloat) -> None: ...
1992
+ @property
1993
+ def Eth_sp(self) -> float: ...
1994
+ @Eth_sp.setter
1995
+ def Eth_sp(self, arg0: typing.SupportsFloat) -> None: ...
1996
+ @property
1997
+ def rho(self) -> float: ...
1998
+ @rho.setter
1999
+ def rho(self, arg0: typing.SupportsFloat) -> None: ...
2000
+
2001
+ class PlasmaEtchingParametersSubstrate:
2002
+ def __init__(self) -> None: ...
2003
+ @property
2004
+ def A_ie(self) -> float: ...
2005
+ @A_ie.setter
2006
+ def A_ie(self, arg0: typing.SupportsFloat) -> None: ...
2007
+ @property
2008
+ def A_sp(self) -> float: ...
2009
+ @A_sp.setter
2010
+ def A_sp(self, arg0: typing.SupportsFloat) -> None: ...
2011
+ @property
2012
+ def B_ie(self) -> float: ...
2013
+ @B_ie.setter
2014
+ def B_ie(self, arg0: typing.SupportsFloat) -> None: ...
2015
+ @property
2016
+ def B_sp(self) -> float: ...
2017
+ @B_sp.setter
2018
+ def B_sp(self, arg0: typing.SupportsFloat) -> None: ...
2019
+ @property
2020
+ def Eth_ie(self) -> float: ...
2021
+ @Eth_ie.setter
2022
+ def Eth_ie(self, arg0: typing.SupportsFloat) -> None: ...
2023
+ @property
2024
+ def Eth_sp(self) -> float: ...
2025
+ @Eth_sp.setter
2026
+ def Eth_sp(self, arg0: typing.SupportsFloat) -> None: ...
2027
+ @property
2028
+ def beta_sigma(self) -> float: ...
2029
+ @beta_sigma.setter
2030
+ def beta_sigma(self, arg0: typing.SupportsFloat) -> None: ...
2031
+ @property
2032
+ def k_sigma(self) -> float: ...
2033
+ @k_sigma.setter
2034
+ def k_sigma(self, arg0: typing.SupportsFloat) -> None: ...
2035
+ @property
2036
+ def rho(self) -> float: ...
2037
+ @rho.setter
2038
+ def rho(self, arg0: typing.SupportsFloat) -> None: ...
2039
+
2040
+ class Process:
2041
+ @typing.overload
2042
+ def __init__(self) -> None: ...
2043
+ @typing.overload
2044
+ def __init__(self, domain: Domain) -> None: ...
2045
+ @typing.overload
2046
+ def __init__(
2047
+ self, domain: Domain, model: ProcessModel, duration: typing.SupportsFloat
2048
+ ) -> None: ...
2049
+ def apply(self) -> None:
2050
+ """
2051
+ Run the process.
2052
+ """
2053
+
2054
+ def calculateFlux(self) -> viennals3d.viennals3d.Mesh:
2055
+ """
2056
+ Perform a single-pass flux calculation.
2057
+ """
2058
+
2059
+ def disableAdvectionVelocityOutput(self) -> None:
2060
+ """
2061
+ Disable the output of the advection velocity field on the ls-mesh.
2062
+ """
2063
+
2064
+ def disableFluxSmoothing(self) -> None:
2065
+ """
2066
+ Disable flux smoothing
2067
+ """
2068
+
2069
+ def disableRandomSeeds(self) -> None:
2070
+ """
2071
+ Disable random seeds for the ray tracer. This will make the process results deterministic.
2072
+ """
2073
+
2074
+ def enableAdvectionVelocityOutput(self) -> None:
2075
+ """
2076
+ Enable the output of the advection velocity field on the ls-mesh.
2077
+ """
2078
+
2079
+ def enableFluxSmoothing(self) -> None:
2080
+ """
2081
+ Enable flux smoothing. The flux at each surface point, calculated by the ray tracer, is averaged over the surface point neighbors.
2082
+ """
2083
+
2084
+ def enableRandomSeeds(self) -> None:
2085
+ """
2086
+ Enable random seeds for the ray tracer. This will make the process results non-deterministic.
2087
+ """
2088
+
2089
+ def getAdvectionParameters(self) -> AdvectionParameters:
2090
+ """
2091
+ Get the advection parameters for the process.
2092
+ """
2093
+
2094
+ def getProcessDuration(self) -> float:
2095
+ """
2096
+ Returns the duration of the recently run process. This duration can sometimes slightly vary from the set process duration, due to the maximum time step according to the CFL condition.
2097
+ """
2098
+
2099
+ def getRayTracingParameters(self) -> RayTracingParameters:
2100
+ """
2101
+ Get the ray tracing parameters for the process.
2102
+ """
2103
+
2104
+ def setAdvectionParameters(self, arg0: AdvectionParameters) -> None:
2105
+ """
2106
+ Set the advection parameters for the process.
2107
+ """
2108
+
2109
+ def setCoverageDeltaThreshold(self, arg0: typing.SupportsFloat) -> None:
2110
+ """
2111
+ Set the threshold for the coverage delta metric to reach convergence.
2112
+ """
2113
+
2114
+ def setDomain(self, arg0: Domain) -> None:
2115
+ """
2116
+ Set the process domain.
2117
+ """
2118
+
2119
+ def setIntegrationScheme(
2120
+ self, arg0: viennals3d.viennals3d.IntegrationSchemeEnum
2121
+ ) -> None:
2122
+ """
2123
+ Set the integration scheme for solving the level-set equation. Possible integration schemes are specified in viennals::IntegrationSchemeEnum.
2124
+ """
2125
+
2126
+ def setMaxCoverageInitIterations(self, arg0: typing.SupportsInt) -> None:
2127
+ """
2128
+ Set the number of iterations to initialize the coverages.
2129
+ """
2130
+
2131
+ def setNumberOfRaysPerPoint(self, arg0: typing.SupportsInt) -> None:
2132
+ """
2133
+ Set the number of rays to traced for each particle in the process. The number is per point in the process geometry.
2134
+ """
2135
+
2136
+ def setProcessDuration(self, arg0: typing.SupportsFloat) -> None:
2137
+ """
2138
+ Set the process duration.
2139
+ """
2140
+
2141
+ def setProcessModel(self, arg0: ProcessModel) -> None:
2142
+ """
2143
+ Set the process model. This has to be a pre-configured process model.
2144
+ """
2145
+
2146
+ def setRayTracingDiskRadius(self, arg0: typing.SupportsFloat) -> None:
2147
+ """
2148
+ Set the radius of the disk used for ray tracing. This disk is used for the intersection calculations at each surface point.
2149
+ """
2150
+
2151
+ def setRayTracingParameters(self, arg0: RayTracingParameters) -> None:
2152
+ """
2153
+ Set the ray tracing parameters for the process.
2154
+ """
2155
+
2156
+ def setSourceDirection(self, arg0: ...) -> None:
2157
+ """
2158
+ Set source direction of the process.
2159
+ """
2160
+
2161
+ def setTimeStepRatio(self, arg0: typing.SupportsFloat) -> None:
2162
+ """
2163
+ Set the CFL condition to use during advection. The CFL condition sets the maximum distance a surface can be moved during one advection step. It MUST be below 0.5 to guarantee numerical stability. Defaults to 0.4999.
2164
+ """
2165
+
2166
+ class ProcessModel:
2167
+ def __init__(self) -> None: ...
2168
+ def getPrimaryDirection(
2169
+ self,
2170
+ ) -> typing.Annotated[list[float], "FixedSize(3)"] | None: ...
2171
+ def getProcessName(self) -> str | None: ...
2172
+ def setPrimaryDirection(
2173
+ self,
2174
+ arg0: typing.Annotated[
2175
+ collections.abc.Sequence[typing.SupportsFloat], "FixedSize(3)"
2176
+ ],
2177
+ ) -> None: ...
2178
+ def setProcessName(self, arg0: str) -> None: ...
2179
+
2180
+ class ProcessParams:
2181
+ def __init__(self) -> None: ...
2182
+ @typing.overload
2183
+ def getScalarData(self, arg0: typing.SupportsInt) -> float: ...
2184
+ @typing.overload
2185
+ def getScalarData(self, arg0: typing.SupportsInt) -> float: ...
2186
+ @typing.overload
2187
+ def getScalarData(self, arg0: str) -> float: ...
2188
+ @typing.overload
2189
+ def getScalarData(self) -> list[float]: ...
2190
+ @typing.overload
2191
+ def getScalarData(self) -> list[float]: ...
2192
+ def getScalarDataIndex(self, arg0: str) -> int: ...
2193
+ def getScalarDataLabel(self, arg0: typing.SupportsInt) -> str: ...
2194
+ def insertNextScalar(self, arg0: typing.SupportsFloat, arg1: str) -> None: ...
2195
+
2196
+ class RateGrid:
2197
+ def __init__(self) -> None: ...
2198
+ def interpolate(
2199
+ self,
2200
+ coord: typing.Annotated[
2201
+ collections.abc.Sequence[typing.SupportsFloat], "FixedSize(3)"
2202
+ ],
2203
+ ) -> float: ...
2204
+ def loadFromCSV(self, filename: str) -> bool: ...
2205
+ def setCustomInterpolator(self, function: collections.abc.Callable) -> None: ...
2206
+ def setIDWNeighbors(self, k: typing.SupportsInt) -> None: ...
2207
+ @typing.overload
2208
+ def setInterpolationMode(self, mode: Interpolation) -> None: ...
2209
+ @typing.overload
2210
+ def setInterpolationMode(self, mode: str) -> None: ...
2211
+ def setOffset(
2212
+ self,
2213
+ offset: typing.Annotated[
2214
+ collections.abc.Sequence[typing.SupportsFloat], "FixedSize(2)"
2215
+ ],
2216
+ ) -> None: ...
2217
+
2218
+ class RateSet:
2219
+ calculateVisibility: bool
2220
+ def __init__(
2221
+ self,
2222
+ direction: typing.Annotated[
2223
+ collections.abc.Sequence[typing.SupportsFloat], "FixedSize(3)"
2224
+ ] = [0.0, 0.0, 0.0],
2225
+ directionalVelocity: typing.SupportsFloat = 0.0,
2226
+ isotropicVelocity: typing.SupportsFloat = 0.0,
2227
+ maskMaterials: collections.abc.Sequence[Material] = ...,
2228
+ calculateVisibility: bool = True,
2229
+ ) -> None: ...
2230
+ def print(self) -> None: ...
2231
+ @property
2232
+ def direction(self) -> typing.Annotated[list[float], "FixedSize(3)"]: ...
2233
+ @direction.setter
2234
+ def direction(
2235
+ self,
2236
+ arg0: typing.Annotated[
2237
+ collections.abc.Sequence[typing.SupportsFloat], "FixedSize(3)"
2238
+ ],
2239
+ ) -> None: ...
2240
+ @property
2241
+ def directionalVelocity(self) -> float: ...
2242
+ @directionalVelocity.setter
2243
+ def directionalVelocity(self, arg0: typing.SupportsFloat) -> None: ...
2244
+ @property
2245
+ def isotropicVelocity(self) -> float: ...
2246
+ @isotropicVelocity.setter
2247
+ def isotropicVelocity(self, arg0: typing.SupportsFloat) -> None: ...
2248
+ @property
2249
+ def maskMaterials(self) -> list[Material]: ...
2250
+ @maskMaterials.setter
2251
+ def maskMaterials(self, arg0: collections.abc.Sequence[Material]) -> None: ...
2252
+
2253
+ class RayTracingParameters:
2254
+ ignoreFluxBoundaries: bool
2255
+ normalizationType: NormalizationType
2256
+ sourceDirection: ...
2257
+ useRandomSeeds: bool
2258
+ def __init__(self) -> None: ...
2259
+ def toMetaData(self) -> dict[str, list[float]]:
2260
+ """
2261
+ Convert the ray tracing parameters to a metadata dict.
2262
+ """
2263
+
2264
+ def toMetaDataString(self) -> str:
2265
+ """
2266
+ Convert the ray tracing parameters to a metadata string.
2267
+ """
2268
+
2269
+ @property
2270
+ def diskRadius(self) -> float: ...
2271
+ @diskRadius.setter
2272
+ def diskRadius(self, arg0: typing.SupportsFloat) -> None: ...
2273
+ @property
2274
+ def raysPerPoint(self) -> int: ...
2275
+ @raysPerPoint.setter
2276
+ def raysPerPoint(self, arg0: typing.SupportsInt) -> None: ...
2277
+ @property
2278
+ def smoothingNeighbors(self) -> int: ...
2279
+ @smoothingNeighbors.setter
2280
+ def smoothingNeighbors(self, arg0: typing.SupportsInt) -> None: ...
2281
+
2282
+ class Reader:
2283
+ @typing.overload
2284
+ def __init__(self) -> None: ...
2285
+ @typing.overload
2286
+ def __init__(self, fileName: str) -> None: ...
2287
+ def apply(self) -> None:
2288
+ """
2289
+ Read the domain from the specified file.
2290
+ """
2291
+
2292
+ def setFileName(self, arg0: str) -> None:
2293
+ """
2294
+ Set the input file name to read (should end with .vpsd).
2295
+ """
2296
+
2297
+ class SF6C4F8Etching(ProcessModel):
2298
+ @staticmethod
2299
+ def defaultParameters() -> PlasmaEtchingParameters: ...
2300
+ @typing.overload
2301
+ def __init__(self) -> None: ...
2302
+ @typing.overload
2303
+ def __init__(
2304
+ self,
2305
+ ionFlux: typing.SupportsFloat,
2306
+ etchantFlux: typing.SupportsFloat,
2307
+ meanEnergy: typing.SupportsFloat,
2308
+ sigmaEnergy: typing.SupportsFloat,
2309
+ ionExponent: typing.SupportsFloat = 300.0,
2310
+ etchStopDepth: typing.SupportsFloat = -1.7976931348623157e308,
2311
+ ) -> None: ...
2312
+ @typing.overload
2313
+ def __init__(self, parameters: PlasmaEtchingParameters) -> None: ...
2314
+ def getParameters(self) -> PlasmaEtchingParameters: ...
2315
+ def setParameters(self, arg0: PlasmaEtchingParameters) -> None: ...
2316
+
2317
+ class SF6O2Etching(ProcessModel):
2318
+ @staticmethod
2319
+ def defaultParameters() -> PlasmaEtchingParameters: ...
2320
+ @typing.overload
2321
+ def __init__(self) -> None: ...
2322
+ @typing.overload
2323
+ def __init__(
2324
+ self,
2325
+ ionFlux: typing.SupportsFloat,
2326
+ etchantFlux: typing.SupportsFloat,
2327
+ oxygenFlux: typing.SupportsFloat,
2328
+ meanIonEnergy: typing.SupportsFloat = 100.0,
2329
+ sigmaIonEnergy: typing.SupportsFloat = 10.0,
2330
+ ionExponent: typing.SupportsFloat = 100.0,
2331
+ oxySputterYield: typing.SupportsFloat = 3.0,
2332
+ etchStopDepth: typing.SupportsFloat = -1.7976931348623157e308,
2333
+ ) -> None: ...
2334
+ @typing.overload
2335
+ def __init__(self, parameters: PlasmaEtchingParameters) -> None: ...
2336
+ def getParameters(self) -> PlasmaEtchingParameters: ...
2337
+ def setParameters(self, arg0: PlasmaEtchingParameters) -> None: ...
2338
+
2339
+ class SelectiveEpitaxy(ProcessModel):
2340
+ def __init__(
2341
+ self,
2342
+ materialRates: collections.abc.Sequence[tuple[Material, typing.SupportsFloat]],
2343
+ rate111: typing.SupportsFloat = 0.5,
2344
+ rate100: typing.SupportsFloat = 1.0,
2345
+ ) -> None: ...
2346
+
2347
+ class SingleParticleALD(ProcessModel):
2348
+ def __init__(
2349
+ self,
2350
+ stickingProbability: typing.SupportsFloat,
2351
+ numCycles: typing.SupportsFloat,
2352
+ growthPerCycle: typing.SupportsFloat,
2353
+ totalCycles: typing.SupportsFloat,
2354
+ coverageTimeStep: typing.SupportsFloat,
2355
+ evFlux: typing.SupportsFloat,
2356
+ inFlux: typing.SupportsFloat,
2357
+ s0: typing.SupportsFloat,
2358
+ gasMFP: typing.SupportsFloat,
2359
+ ) -> None: ...
2360
+
2361
+ class SingleParticleProcess(ProcessModel):
2362
+ @typing.overload
2363
+ def __init__(
2364
+ self,
2365
+ rate: typing.SupportsFloat = 1.0,
2366
+ stickingProbability: typing.SupportsFloat = 1.0,
2367
+ sourceExponent: typing.SupportsFloat = 1.0,
2368
+ maskMaterial: Material = ...,
2369
+ ) -> None: ...
2370
+ @typing.overload
2371
+ def __init__(
2372
+ self,
2373
+ rate: typing.SupportsFloat,
2374
+ stickingProbability: typing.SupportsFloat,
2375
+ sourceExponent: typing.SupportsFloat,
2376
+ maskMaterials: collections.abc.Sequence[Material],
2377
+ ) -> None: ...
2378
+ @typing.overload
2379
+ def __init__(
2380
+ self,
2381
+ materialRates: collections.abc.Mapping[Material, typing.SupportsFloat],
2382
+ stickingProbability: typing.SupportsFloat,
2383
+ sourceExponent: typing.SupportsFloat,
2384
+ ) -> None: ...
2385
+
2386
+ class SphereDistribution(ProcessModel):
2387
+ @typing.overload
2388
+ def __init__(
2389
+ self,
2390
+ radius: typing.SupportsFloat,
2391
+ gridDelta: typing.SupportsFloat,
2392
+ mask: viennals3d.viennals3d.Domain,
2393
+ ) -> None: ...
2394
+ @typing.overload
2395
+ def __init__(
2396
+ self, radius: typing.SupportsFloat, gridDelta: typing.SupportsFloat
2397
+ ) -> None: ...
2398
+
2399
+ class StencilLocalLaxFriedrichsScalar:
2400
+ @staticmethod
2401
+ def setMaxDissipation(maxDissipation: typing.SupportsFloat) -> None: ...
2402
+
2403
+ class TEOSDeposition(ProcessModel):
2404
+ def __init__(
2405
+ self,
2406
+ stickingProbabilityP1: typing.SupportsFloat,
2407
+ rateP1: typing.SupportsFloat,
2408
+ orderP1: typing.SupportsFloat,
2409
+ stickingProbabilityP2: typing.SupportsFloat = 0.0,
2410
+ rateP2: typing.SupportsFloat = 0.0,
2411
+ orderP2: typing.SupportsFloat = 0.0,
2412
+ ) -> None: ...
2413
+
2414
+ class TEOSPECVD(ProcessModel):
2415
+ def __init__(
2416
+ self,
2417
+ stickingProbabilityRadical: typing.SupportsFloat,
2418
+ depositionRateRadical: typing.SupportsFloat,
2419
+ depositionRateIon: typing.SupportsFloat,
2420
+ exponentIon: typing.SupportsFloat,
2421
+ stickingProbabilityIon: typing.SupportsFloat = 1.0,
2422
+ reactionOrderRadical: typing.SupportsFloat = 1.0,
2423
+ reactionOrderIon: typing.SupportsFloat = 1.0,
2424
+ minAngleIon: typing.SupportsFloat = 0.0,
2425
+ ) -> None: ...
2426
+
2427
+ class Time:
2428
+ @staticmethod
2429
+ def convertMillisecond() -> float: ...
2430
+ @staticmethod
2431
+ def convertMinute() -> float: ...
2432
+ @staticmethod
2433
+ def convertSecond() -> float: ...
2434
+ @staticmethod
2435
+ def getInstance() -> Time: ...
2436
+ @staticmethod
2437
+ def setUnit(arg0: str) -> None: ...
2438
+ @staticmethod
2439
+ def toShortString() -> str: ...
2440
+ @staticmethod
2441
+ def toString() -> str: ...
2442
+
2443
+ class TimeUnit(enum.IntEnum):
2444
+ MILLISECOND: typing.ClassVar[TimeUnit] # value = <TimeUnit.MILLISECOND: 2>
2445
+ MINUTE: typing.ClassVar[TimeUnit] # value = <TimeUnit.MINUTE: 0>
2446
+ SECOND: typing.ClassVar[TimeUnit] # value = <TimeUnit.SECOND: 1>
2447
+ UNDEFINED: typing.ClassVar[TimeUnit] # value = <TimeUnit.UNDEFINED: 3>
2448
+ @classmethod
2449
+ def __new__(cls, value): ...
2450
+ def __format__(self, format_spec):
2451
+ """
2452
+ Convert to a string according to format_spec.
2453
+ """
2454
+
2455
+ class ToDiskMesh:
2456
+ @typing.overload
2457
+ def __init__(self, domain: Domain, mesh: viennals3d.viennals3d.Mesh) -> None: ...
2458
+ @typing.overload
2459
+ def __init__(self) -> None: ...
2460
+ def setDomain(self, arg0: Domain) -> None:
2461
+ """
2462
+ Set the domain in the mesh converter.
2463
+ """
2464
+
2465
+ def setMesh(self, arg0: viennals3d.viennals3d.Mesh) -> None:
2466
+ """
2467
+ Set the mesh in the mesh converter
2468
+ """
2469
+
2470
+ class WetEtching(ProcessModel):
2471
+ @typing.overload
2472
+ def __init__(
2473
+ self,
2474
+ materialRates: collections.abc.Sequence[tuple[Material, typing.SupportsFloat]],
2475
+ ) -> None: ...
2476
+ @typing.overload
2477
+ def __init__(
2478
+ self,
2479
+ direction100: typing.Annotated[
2480
+ collections.abc.Sequence[typing.SupportsFloat], "FixedSize(3)"
2481
+ ],
2482
+ direction010: typing.Annotated[
2483
+ collections.abc.Sequence[typing.SupportsFloat], "FixedSize(3)"
2484
+ ],
2485
+ rate100: typing.SupportsFloat,
2486
+ rate110: typing.SupportsFloat,
2487
+ rate111: typing.SupportsFloat,
2488
+ rate311: typing.SupportsFloat,
2489
+ materialRates: collections.abc.Sequence[tuple[Material, typing.SupportsFloat]],
2490
+ ) -> None: ...
2491
+
2492
+ class Writer:
2493
+ @typing.overload
2494
+ def __init__(self) -> None: ...
2495
+ @typing.overload
2496
+ def __init__(self, domain: Domain) -> None: ...
2497
+ @typing.overload
2498
+ def __init__(self, domain: Domain, fileName: str) -> None: ...
2499
+ def apply(self) -> None:
2500
+ """
2501
+ Write the domain to the specified file.
2502
+ """
2503
+
2504
+ def setDomain(self, arg0: Domain) -> None:
2505
+ """
2506
+ Set the domain to be written to a file.
2507
+ """
2508
+
2509
+ def setFileName(self, arg0: str) -> None:
2510
+ """
2511
+ Set the output file name (should end with .vpsd).
2512
+ """
2513
+
2514
+ def setNumThreads(arg0: typing.SupportsInt) -> None: ...
2515
+
2516
+ D: int = 3
2517
+ __version__: str = '"3.7.2"'
2518
+ version: str = '"3.7.2"'