pyedb 0.18.0__py3-none-any.whl → 0.20.0__py3-none-any.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 pyedb might be problematic. Click here for more details.

Files changed (54) hide show
  1. pyedb/__init__.py +1 -1
  2. pyedb/configuration/cfg_data.py +8 -11
  3. pyedb/configuration/cfg_nets.py +14 -0
  4. pyedb/configuration/cfg_pin_groups.py +57 -20
  5. pyedb/configuration/cfg_ports_sources.py +248 -60
  6. pyedb/configuration/configuration.py +51 -17
  7. pyedb/dotnet/edb.py +156 -236
  8. pyedb/dotnet/edb_core/cell/connectable.py +64 -0
  9. pyedb/dotnet/edb_core/cell/hierarchy/component.py +12 -10
  10. pyedb/dotnet/edb_core/cell/hierarchy/hierarchy_obj.py +1 -1
  11. pyedb/dotnet/edb_core/cell/layout.py +271 -76
  12. pyedb/dotnet/edb_core/cell/layout_obj.py +4 -49
  13. pyedb/dotnet/edb_core/cell/primitive.py +14 -2
  14. pyedb/dotnet/edb_core/cell/terminal/padstack_instance_terminal.py +10 -0
  15. pyedb/dotnet/edb_core/cell/terminal/pingroup_terminal.py +5 -0
  16. pyedb/dotnet/edb_core/cell/terminal/point_terminal.py +1 -12
  17. pyedb/dotnet/edb_core/cell/terminal/terminal.py +36 -20
  18. pyedb/dotnet/edb_core/cell/voltage_regulator.py +2 -16
  19. pyedb/dotnet/edb_core/components.py +88 -31
  20. pyedb/dotnet/edb_core/dotnet/database.py +5 -10
  21. pyedb/dotnet/edb_core/dotnet/primitive.py +20 -7
  22. pyedb/dotnet/edb_core/edb_data/control_file.py +2 -12
  23. pyedb/dotnet/edb_core/edb_data/padstacks_data.py +28 -37
  24. pyedb/dotnet/edb_core/edb_data/ports.py +0 -18
  25. pyedb/dotnet/edb_core/edb_data/primitives_data.py +1 -1
  26. pyedb/dotnet/edb_core/general.py +6 -9
  27. pyedb/dotnet/edb_core/hfss.py +4 -8
  28. pyedb/dotnet/edb_core/layout_obj_instance.py +30 -0
  29. pyedb/dotnet/edb_core/materials.py +4 -11
  30. pyedb/dotnet/edb_core/{layout.py → modeler.py} +153 -7
  31. pyedb/dotnet/edb_core/net_class.py +7 -8
  32. pyedb/dotnet/edb_core/nets.py +3 -9
  33. pyedb/dotnet/edb_core/padstack.py +23 -10
  34. pyedb/dotnet/edb_core/sim_setup_data/data/sim_setup_info.py +42 -3
  35. pyedb/dotnet/edb_core/sim_setup_data/data/simulation_settings.py +92 -158
  36. pyedb/dotnet/edb_core/sim_setup_data/data/siw_dc_ir_settings.py +22 -22
  37. pyedb/dotnet/edb_core/sim_setup_data/data/sweep_data.py +5 -2
  38. pyedb/dotnet/edb_core/sim_setup_data/io/siwave.py +76 -76
  39. pyedb/dotnet/edb_core/siwave.py +5 -6
  40. pyedb/dotnet/edb_core/stackup.py +18 -23
  41. pyedb/dotnet/edb_core/utilities/hfss_simulation_setup.py +23 -94
  42. pyedb/dotnet/edb_core/utilities/simulation_setup.py +40 -41
  43. pyedb/dotnet/edb_core/utilities/siwave_simulation_setup.py +26 -17
  44. pyedb/generic/filesystem.py +2 -8
  45. pyedb/generic/general_methods.py +4 -10
  46. pyedb/generic/plot.py +26 -29
  47. pyedb/generic/process.py +2 -6
  48. pyedb/misc/downloads.py +3 -40
  49. pyedb/siwave.py +2 -5
  50. {pyedb-0.18.0.dist-info → pyedb-0.20.0.dist-info}/METADATA +8 -8
  51. {pyedb-0.18.0.dist-info → pyedb-0.20.0.dist-info}/RECORD +53 -52
  52. pyedb/dotnet/edb_core/dotnet/layout.py +0 -260
  53. {pyedb-0.18.0.dist-info → pyedb-0.20.0.dist-info}/LICENSE +0 -0
  54. {pyedb-0.18.0.dist-info → pyedb-0.20.0.dist-info}/WHEEL +0 -0
@@ -20,13 +20,15 @@
20
20
  # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
21
  # SOFTWARE.
22
22
 
23
+ from pyedb.dotnet.edb_core.general import convert_py_list_to_net_list
24
+
23
25
 
24
26
  class BaseSimulationSettings:
25
27
  def __init__(self, pedb, sim_setup, edb_object):
26
28
  self._pedb = pedb
27
- self.sim_setup = sim_setup
29
+ self._sim_setup = sim_setup
28
30
  self._edb_object = edb_object
29
- self.t_sim_setup_type = {
31
+ self._t_sim_setup_type = {
30
32
  "kHFSS": self._pedb.simsetupdata.HFSSSimulationSettings,
31
33
  "kPEM": None,
32
34
  "kSIwave": self._pedb.simsetupdata.SIwave.SIWSimulationSettings,
@@ -68,12 +70,8 @@ class HFSSSimulationSettings(SimulationSettings):
68
70
 
69
71
 
70
72
  class HFSSPISimulationSettings(SimulationSettings):
71
- def __init__(self, edb_setup_info, pedb, edb_object):
72
- super().__init__(pedb, edb_setup_info, edb_object)
73
- self._pedb = pedb
74
- self.logger = self._pedb.logger
75
- self._edb_setup_info = edb_setup_info
76
- self._simulation_settings = edb_setup_info.SimulationSettings
73
+ def __init__(self, pedb, sim_setup, edb_object):
74
+ super().__init__(pedb, sim_setup, edb_object)
77
75
 
78
76
  @property
79
77
  def auto_select_nets_for_simulation(self):
@@ -83,28 +81,11 @@ class HFSSPISimulationSettings(SimulationSettings):
83
81
  -------
84
82
  bool
85
83
  """
86
- return self._simulation_settings.AutoSelectNetsForSimulation
84
+ return self._edb_object.AutoSelectNetsForSimulation
87
85
 
88
86
  @auto_select_nets_for_simulation.setter
89
- def auto_select_nets_for_simulation(self, value):
90
- if isinstance(value, bool):
91
- self._simulation_settings.AutoSelectNetsForSimulation = value
92
- else:
93
- self.logger.error(
94
- "Property auto_select_nets_for_simulation expects a boolean "
95
- f"value while the provided value is {value}."
96
- )
97
-
98
- @property
99
- def enabled(self):
100
- return self._simulation_settings.Enabled
101
-
102
- @enabled.setter
103
- def enabled(self, value):
104
- if isinstance(value, bool):
105
- self._simulation_settings.Enabled = value
106
- else:
107
- self.logger.error(f"Property enabled expects a boolean value while the provided value is {value}.")
87
+ def auto_select_nets_for_simulation(self, value: bool):
88
+ self._edb_object.AutoSelectNetsForSimulation = value
108
89
 
109
90
  @property
110
91
  def ignore_dummy_nets_for_selected_nets(self):
@@ -114,17 +95,11 @@ class HFSSPISimulationSettings(SimulationSettings):
114
95
  -------
115
96
  bool
116
97
  """
117
- return self._simulation_settings.IgnoreDummyNetsForSelectedNets
98
+ return self._edb_object.IgnoreDummyNetsForSelectedNets
118
99
 
119
100
  @ignore_dummy_nets_for_selected_nets.setter
120
101
  def ignore_dummy_nets_for_selected_nets(self, value):
121
- if isinstance(value, bool):
122
- self._simulation_settings.IgnoreDummyNetsForSelectedNets = value
123
- else:
124
- self.logger.error(
125
- "Property ignore_dummy_nets_for_selected_nets expects a boolean "
126
- f"value while the provided value is {value}."
127
- )
102
+ self._edb_object.IgnoreDummyNetsForSelectedNets = value
128
103
 
129
104
  @property
130
105
  def ignore_small_holes(self):
@@ -134,16 +109,11 @@ class HFSSPISimulationSettings(SimulationSettings):
134
109
  -------
135
110
  bool
136
111
  """
137
- return self._simulation_settings.IgnoreSmallHoles
112
+ return self._edb_object.IgnoreSmallHoles
138
113
 
139
114
  @ignore_small_holes.setter
140
- def ignore_small_holes(self, value):
141
- if isinstance(value, bool):
142
- self._simulation_settings.IgnoreSmallHoles = value
143
- else:
144
- self.logger.error(
145
- f"Property ignore_small_holes expects a boolean value while the provided value is {value}."
146
- )
115
+ def ignore_small_holes(self, value: bool):
116
+ self._edb_object.IgnoreSmallHoles = value
147
117
 
148
118
  @property
149
119
  def ignore_small_holes_min_diameter(self):
@@ -153,33 +123,27 @@ class HFSSPISimulationSettings(SimulationSettings):
153
123
  -------
154
124
  str
155
125
  """
156
- return self._simulation_settings.IgnoreSmallHolesMinDiameter
126
+ value = self._edb_object.IgnoreSmallHolesMinDiameter
127
+ return float(value) if value else value
157
128
 
158
129
  @ignore_small_holes_min_diameter.setter
159
130
  def ignore_small_holes_min_diameter(self, value):
160
- self._simulation_settings.IgnoreSmallHolesMinDiameter = self._pedb.edb_value(value).ToString()
131
+ self._edb_object.IgnoreSmallHolesMinDiameter = self._pedb.edb_value(value).ToString()
161
132
 
162
133
  @property
163
134
  def improved_loss_model(self):
164
135
  """Improved Loss Model on power ground nets option.
165
-
166
- Returns
167
- -------
168
- str
169
- ``Level1``, ``Level2``, ``Level3``
136
+ 1: Level 1
137
+ 2: Level 2
138
+ 3: Level 3
170
139
  """
171
- return self._simulation_settings.ImprovedLossModel
140
+ levels = {"Level 1": 1, "Level 2": 2, "Level 3": 3}
141
+ return levels[self._edb_object.ImprovedLossModel]
172
142
 
173
143
  @improved_loss_model.setter
174
- def improved_loss_model(self, value):
175
- expected_values = ["Level1", "Level2", "Level3"]
176
- if isinstance(value, str) and value in expected_values:
177
- self._simulation_settings.ImprovedLossModel = value
178
- else:
179
- self.logger.error(
180
- "Property improved_loss_model expects a string value among "
181
- f"'Level1', 'Level2' or 'Level3' while the provided value is {value}."
182
- )
144
+ def improved_loss_model(self, value: int):
145
+ levels = {1: "Level 1", 2: "Level 2", 3: "Level 3"}
146
+ self._edb_object.ImprovedLossModel = levels[value]
183
147
 
184
148
  @property
185
149
  def include_enhanced_bond_wire_modeling(self):
@@ -189,17 +153,11 @@ class HFSSPISimulationSettings(SimulationSettings):
189
153
  -------
190
154
  bool
191
155
  """
192
- return self._simulation_settings.IncludeEnhancedBondWireModeling
156
+ return self._edb_object.IncludeEnhancedBondWireModeling
193
157
 
194
158
  @include_enhanced_bond_wire_modeling.setter
195
- def include_enhanced_bond_wire_modeling(self, value):
196
- if isinstance(value, bool):
197
- self._simulation_settings.IncludeEnhancedBondWireModeling = value
198
- else:
199
- self.logger.error(
200
- "Property include_enhanced_bond_wire_modeling expects a "
201
- f"boolean value while the provided value is {value}."
202
- )
159
+ def include_enhanced_bond_wire_modeling(self, value: bool):
160
+ self._edb_object.IncludeEnhancedBondWireModeling = value
203
161
 
204
162
  @property
205
163
  def include_nets(self):
@@ -210,18 +168,12 @@ class HFSSPISimulationSettings(SimulationSettings):
210
168
  [str]
211
169
  List of net name.
212
170
  """
213
- return list(self._simulation_settings.IncludeNets)
171
+ return list(self._edb_object.IncludeNets)
214
172
 
215
173
  @include_nets.setter
216
174
  def include_nets(self, value):
217
- if isinstance(value, str):
218
- value = [value]
219
- if isinstance(value, list):
220
- self._simulation_settings.IncludeNets = convert_py_list_to_net_list(value)
221
- else:
222
- self.logger.error(
223
- f"Property include_nets expects a string or list of string while the provided value is {value}."
224
- )
175
+ value = value if isinstance(value, list) else [value]
176
+ self._edb_object.IncludeNets = convert_py_list_to_net_list(value)
225
177
 
226
178
  @property
227
179
  def min_plane_area_to_mesh(self):
@@ -231,11 +183,11 @@ class HFSSPISimulationSettings(SimulationSettings):
231
183
  -------
232
184
  str
233
185
  """
234
- return self._simulation_settings.MinPlaneAreaToMesh
186
+ return self._edb_object.MinPlaneAreaToMesh
235
187
 
236
188
  @min_plane_area_to_mesh.setter
237
189
  def min_plane_area_to_mesh(self, value):
238
- self._simulation_settings.MinPlaneAreaToMesh = self._pedb.edb_value(value).ToString()
190
+ self._edb_object.MinPlaneAreaToMesh = self._pedb.edb_value(value).ToString()
239
191
 
240
192
  @property
241
193
  def min_void_area_to_mesh(self):
@@ -245,31 +197,30 @@ class HFSSPISimulationSettings(SimulationSettings):
245
197
  -------
246
198
  str
247
199
  """
248
- return self._simulation_settings.MinVoidAreaToMesh
200
+ return self._edb_object.MinVoidAreaToMesh
249
201
 
250
202
  @min_void_area_to_mesh.setter
251
203
  def min_void_area_to_mesh(self, value):
252
- self._simulation_settings.MinVoidAreaToMesh = self._pedb.edb_value(value).ToString()
204
+ self._edb_object.MinVoidAreaToMesh = self._pedb.edb_value(value).ToString()
253
205
 
254
206
  @property
255
207
  def model_type(self):
256
208
  """Model Type setting.
257
209
 
210
+ 0: RDL,
211
+ 1: Package
212
+ 2: PCB
213
+
258
214
  Returns
259
215
  -------
260
216
  int
261
- Model type: ``0``=RDL, ``1``=Package, ``2``=PCB
217
+
262
218
  """
263
- return self._simulation_settings.ModelType
219
+ return self._edb_object.ModelType
264
220
 
265
221
  @model_type.setter
266
- def model_type(self, value):
267
- if isinstance(value, int) and value in range(3):
268
- self._simulation_settings.ModelType = value
269
- else:
270
- self.logger.error(
271
- f"Property model_type expects an integer value among 0, 1 or 2 while the provided value is {value}."
272
- )
222
+ def model_type(self, value: int):
223
+ self._edb_object.ModelType = value
273
224
 
274
225
  @property
275
226
  def perform_erc(self):
@@ -279,34 +230,25 @@ class HFSSPISimulationSettings(SimulationSettings):
279
230
  -------
280
231
  bool
281
232
  """
282
- return self._simulation_settings.PerformERC
233
+ return self._edb_object.PerformERC
283
234
 
284
235
  @perform_erc.setter
285
- def perform_erc(self, value):
286
- if isinstance(value, bool):
287
- self._simulation_settings.PerformERC = value
288
- else:
289
- self.logger.error(f"Property perform_erc expects a boolean value while the provided value is {value}.")
236
+ def perform_erc(self, value: bool):
237
+ self._edb_object.PerformERC = value
290
238
 
291
239
  @property
292
240
  def pi_slider_pos(self):
293
241
  """The Simulation Preference Slider setting
294
-
242
+ Model type: ``0``= balanced, ``1``=Accuracy.
295
243
  Returns
296
244
  -------
297
245
  int
298
- Model type: ``0``= balanced, ``1``=Accuracy.
299
246
  """
300
- return self._simulation_settings.PISliderPos
247
+ return self._edb_object.PISliderPos
301
248
 
302
249
  @pi_slider_pos.setter
303
250
  def pi_slider_pos(self, value):
304
- if isinstance(value, int) and value in range(2):
305
- self._simulation_settings.PISliderPos = value
306
- else:
307
- self.logger.error(
308
- f"Property pi_slider_pos expects an integer value among 0 or 1 while the provided value is {value}."
309
- )
251
+ self._edb_object.PISliderPos = value
310
252
 
311
253
  @property
312
254
  def rms_surface_roughness(self):
@@ -316,33 +258,32 @@ class HFSSPISimulationSettings(SimulationSettings):
316
258
  -------
317
259
  str
318
260
  """
319
- return self._simulation_settings.RMSSurfaceRoughness
261
+ return self._edb_object.RMSSurfaceRoughness
320
262
 
321
263
  @rms_surface_roughness.setter
322
264
  def rms_surface_roughness(self, value):
323
- self._simulation_settings.RMSSurfaceRoughness = self._pedb.edb_value(value).ToString()
265
+ self._edb_object.RMSSurfaceRoughness = self._pedb.edb_value(value).ToString()
324
266
 
325
267
  @property
326
- def signal_nets_conductor_modeling(self):
327
- """Conductor Modeling
328
-
329
- Returns
330
- -------
331
- str
332
- Value: ``"MeshInside"`` or ``"ImpedanceBoundary"``.
268
+ def signal_nets_conductor_modeling(self) -> int:
269
+ """Conductor Modeling.
270
+ 0: MeshInside,
271
+ 1: ImpedanceBoundary
333
272
  """
334
- return self._simulation_settings.SignalNetsConductorModeling
273
+ modelling_type = {
274
+ "Mesh Inside": 0,
275
+ "Impedance Boundary": 1,
276
+ }
277
+
278
+ return modelling_type[self._edb_object.SignalNetsConductorModeling]
335
279
 
336
280
  @signal_nets_conductor_modeling.setter
337
- def signal_nets_conductor_modeling(self, value):
338
- expected_values = ["MeshInside", "ImpedanceBoundary"]
339
- if isinstance(value, str) and value in expected_values:
340
- self._simulation_settings.SignalNetsConductorModeling = value
341
- else:
342
- self.logger.error(
343
- "Property signal_nets_conductor_modeling expects a string value among "
344
- f"'MeshInside' or 'ImpedanceBoundary' while the provided value is {value}."
345
- )
281
+ def signal_nets_conductor_modeling(self, value: int):
282
+ modelling_type = {
283
+ 0: "Mesh Inside",
284
+ 1: "Impedance Boundary",
285
+ }
286
+ self._edb_object.SignalNetsConductorModeling = modelling_type[value]
346
287
 
347
288
  @property
348
289
  def signal_nets_error_tolerance(self):
@@ -353,25 +294,20 @@ class HFSSPISimulationSettings(SimulationSettings):
353
294
  str
354
295
  Value between 0.02 and 1.
355
296
  """
356
- return self._simulation_settings.SignalNetsErrorTolerance
297
+ value = self._edb_object.SignalNetsErrorTolerance
298
+ return "default" if value == "Default" else float(value)
357
299
 
358
300
  @signal_nets_error_tolerance.setter
359
301
  def signal_nets_error_tolerance(self, value):
360
- self._simulation_settings.SignalNetsErrorTolerance = self._pedb.edb_value(value).ToString()
302
+ self._edb_object.SignalNetsErrorTolerance = self._pedb.edb_value(value).ToString()
361
303
 
362
304
  @property
363
305
  def signal_nets_include_improved_dielectric_fill_refinement(self):
364
- return self._simulation_settings.SignalNetsIncludeImprovedDielectricFillRefinement
306
+ return self._edb_object.SignalNetsIncludeImprovedDielectricFillRefinement
365
307
 
366
308
  @signal_nets_include_improved_dielectric_fill_refinement.setter
367
- def signal_nets_include_improved_dielectric_fill_refinement(self, value):
368
- if isinstance(value, bool):
369
- self._simulation_settings.SignalNetsIncludeImprovedDielectricFillRefinement = value
370
- else:
371
- self.logger.error(
372
- "Property signal_nets_include_improved_dielectric_fill_refinement "
373
- f"expects a boolean value while the provided value is {value}."
374
- )
309
+ def signal_nets_include_improved_dielectric_fill_refinement(self, value: bool):
310
+ self._edb_object.SignalNetsIncludeImprovedDielectricFillRefinement = value
375
311
 
376
312
  @property
377
313
  def signal_nets_include_improved_loss_handling(self):
@@ -381,44 +317,42 @@ class HFSSPISimulationSettings(SimulationSettings):
381
317
  -------
382
318
  bool
383
319
  """
384
- return self._simulation_settings.SignalNetsIncludeImprovedLossHandling
320
+ return self._edb_object.SignalNetsIncludeImprovedLossHandling
385
321
 
386
322
  @signal_nets_include_improved_loss_handling.setter
387
- def signal_nets_include_improved_loss_handling(self, value):
388
- if isinstance(value, bool):
389
- self._simulation_settings.SignalNetsIncludeImprovedLossHandling = value
390
- else:
391
- self.logger.error(
392
- "Property signal_nets_include_improved_loss_handling "
393
- f"expects a boolean value while the provided value is {value}."
394
- )
323
+ def signal_nets_include_improved_loss_handling(self, value: bool):
324
+ self._edb_object.SignalNetsIncludeImprovedLossHandling = value
395
325
 
396
326
  @property
397
327
  def snap_length_threshold(self):
398
- return self._simulation_settings.SnapLengthThreshold
328
+ return self._edb_object.SnapLengthThreshold
399
329
 
400
330
  @snap_length_threshold.setter
401
331
  def snap_length_threshold(self, value):
402
- self._simulation_settings.SnapLengthThreshold = self._pedb.edb_value(value).ToString()
332
+ self._edb_object.SnapLengthThreshold = self._pedb.edb_value(value).ToString()
403
333
 
404
334
  @property
405
335
  def surface_roughness_model(self):
406
336
  """Chosen Model setting
337
+ Model allowed, ``"None"``, ``"Exponential"`` or ``"Hammerstad"``.
407
338
 
408
339
  Returns
409
340
  -------
410
341
  str
411
- Model allowed, ``"None"``, ``"Exponential"`` or ``"Hammerstad"``.
342
+
412
343
  """
413
- return self._simulation_settings.SurfaceRoughnessModel
344
+ model = {
345
+ "None": 0,
346
+ "Exponential": 1,
347
+ "Hammerstad": 2,
348
+ }
349
+ return model[self._edb_object.SurfaceRoughnessModel]
414
350
 
415
351
  @surface_roughness_model.setter
416
352
  def surface_roughness_model(self, value):
417
- expected_values = ["None", "Exponential", "Hammerstad"]
418
- if isinstance(value, str) and value in expected_values:
419
- self._simulation_settings.SurfaceRoughnessModel = value
420
- else:
421
- self.logger.error(
422
- "Property surface_roughness_model expects a string value among "
423
- f"'None', 'Exponential' or 'Hammerstad' while the provided value is {value}."
424
- )
353
+ model = {
354
+ 0: "None",
355
+ 1: "Exponential",
356
+ 2: "Hammerstad",
357
+ }
358
+ self._edb_object.SurfaceRoughnessModel = model[value]
@@ -41,12 +41,12 @@ class SiwaveDCIRSettings:
41
41
  bool
42
42
  ``True`` when activated, ``False`` deactivated.
43
43
  """
44
- return self._parent.get_sim_setup_info.SimulationSettings.DCIRSettings.ExportDCThermalData
44
+ return self._parent.get_sim_setup_info.simulation_settings.DCIRSettings.ExportDCThermalData
45
45
 
46
46
  @export_dc_thermal_data.setter
47
47
  def export_dc_thermal_data(self, value):
48
48
  edb_setup_info = self._parent.get_sim_setup_info
49
- edb_setup_info.SimulationSettings.DCIRSettings.ExportDCThermalData = value
49
+ edb_setup_info.simulation_settings.DCIRSettings.ExportDCThermalData = value
50
50
  self._parent._edb_object = self._parent._set_edb_setup_info(edb_setup_info)
51
51
  self._parent._update_setup()
52
52
 
@@ -59,12 +59,12 @@ class SiwaveDCIRSettings:
59
59
  bool
60
60
  ``True`` when activated, ``False`` deactivated.
61
61
  """
62
- return self._parent.get_sim_setup_info.SimulationSettings.DCIRSettings.ImportThermalData
62
+ return self._parent.get_sim_setup_info.simulation_settings.DCIRSettings.ImportThermalData
63
63
 
64
64
  @import_thermal_data.setter
65
65
  def import_thermal_data(self, value):
66
66
  edb_setup_info = self._parent.get_sim_setup_info
67
- edb_setup_info.SimulationSettings.DCIRSettings.ImportThermalData = value
67
+ edb_setup_info.simulation_settings.DCIRSettings.ImportThermalData = value
68
68
  self._parent._edb_object = self._parent._set_edb_setup_info(edb_setup_info)
69
69
  self._parent._update_setup()
70
70
 
@@ -77,12 +77,12 @@ class SiwaveDCIRSettings:
77
77
  bool
78
78
  ``True`` when activated, ``False`` deactivated.
79
79
  """
80
- return self._parent.get_sim_setup_info.SimulationSettings.DCIRSettings.DCReportShowActiveDevices
80
+ return self._parent.get_sim_setup_info.simulation_settings.DCIRSettings.DCReportShowActiveDevices
81
81
 
82
82
  @dc_report_show_active_devices.setter
83
83
  def dc_report_show_active_devices(self, value):
84
84
  edb_setup_info = self._parent.get_sim_setup_info
85
- edb_setup_info.SimulationSettings.DCIRSettings.DCReportShowActiveDevices = value
85
+ edb_setup_info.simulation_settings.DCIRSettings.DCReportShowActiveDevices = value
86
86
  self._parent._edb_object = self._parent._set_edb_setup_info(edb_setup_info)
87
87
  self._parent._update_setup()
88
88
 
@@ -95,12 +95,12 @@ class SiwaveDCIRSettings:
95
95
  bool
96
96
  ``True`` when activated, ``False`` deactivated.
97
97
  """
98
- return self._parent.get_sim_setup_info.SimulationSettings.DCIRSettings.PerPinUsePinFormat
98
+ return self._parent.get_sim_setup_info.simulation_settings.DCIRSettings.PerPinUsePinFormat
99
99
 
100
100
  @per_pin_use_pin_format.setter
101
101
  def per_pin_use_pin_format(self, value):
102
102
  edb_setup_info = self._parent.get_sim_setup_info
103
- edb_setup_info.SimulationSettings.DCIRSettings.PerPinUsePinFormat = value
103
+ edb_setup_info.simulation_settings.DCIRSettings.PerPinUsePinFormat = value
104
104
  self._parent._edb_object = self._parent._set_edb_setup_info(edb_setup_info)
105
105
  self._parent._update_setup()
106
106
 
@@ -113,12 +113,12 @@ class SiwaveDCIRSettings:
113
113
  bool
114
114
  ``True`` when activated, ``False`` deactivated.
115
115
  """
116
- return self._parent.get_sim_setup_info.SimulationSettings.DCIRSettings.UseLoopResForPerPin
116
+ return self._parent.get_sim_setup_info.simulation_settings.DCIRSettings.UseLoopResForPerPin
117
117
 
118
118
  @use_loop_res_for_per_pin.setter
119
119
  def use_loop_res_for_per_pin(self, value):
120
120
  edb_setup_info = self._parent.get_sim_setup_info
121
- edb_setup_info.SimulationSettings.DCIRSettings.UseLoopResForPerPin = value
121
+ edb_setup_info.simulation_settings.DCIRSettings.UseLoopResForPerPin = value
122
122
  self._parent._edb_object = self._parent._set_edb_setup_info(edb_setup_info)
123
123
  self._parent._update_setup()
124
124
 
@@ -131,12 +131,12 @@ class SiwaveDCIRSettings:
131
131
  str
132
132
  path to the DC report configuration file.
133
133
  """
134
- return self._parent.get_sim_setup_info.SimulationSettings.DCIRSettings.DCReportConfigFile
134
+ return self._parent.get_sim_setup_info.simulation_settings.DCIRSettings.DCReportConfigFile
135
135
 
136
136
  @dc_report_config_file.setter
137
137
  def dc_report_config_file(self, value):
138
138
  edb_setup_info = self._parent.get_sim_setup_info
139
- edb_setup_info.SimulationSettings.DCIRSettings.DCReportConfigFile = value
139
+ edb_setup_info.simulation_settings.DCIRSettings.DCReportConfigFile = value
140
140
  self._parent._edb_object = self._parent._set_edb_setup_info(edb_setup_info)
141
141
  self._parent._update_setup()
142
142
 
@@ -149,12 +149,12 @@ class SiwaveDCIRSettings:
149
149
  str
150
150
  full path to the DC report file.
151
151
  """
152
- return self._parent.get_sim_setup_info.SimulationSettings.DCIRSettings.FullDCReportPath
152
+ return self._parent.get_sim_setup_info.simulation_settings.DCIRSettings.FullDCReportPath
153
153
 
154
154
  @full_dc_report_path.setter
155
155
  def full_dc_report_path(self, value):
156
156
  edb_setup_info = self._parent.get_sim_setup_info
157
- edb_setup_info.SimulationSettings.DCIRSettings.FullDCReportPath = value
157
+ edb_setup_info.simulation_settings.DCIRSettings.FullDCReportPath = value
158
158
  self._parent._edb_object = self._parent._set_edb_setup_info(edb_setup_info)
159
159
  self._parent._update_setup()
160
160
 
@@ -167,12 +167,12 @@ class SiwaveDCIRSettings:
167
167
  str
168
168
  path to the temp Icepak file.
169
169
  """
170
- return self._parent.get_sim_setup_info.SimulationSettings.DCIRSettings.IcepakTempFile
170
+ return self._parent.get_sim_setup_info.simulation_settings.DCIRSettings.IcepakTempFile
171
171
 
172
172
  @icepak_temp_file.setter
173
173
  def icepak_temp_file(self, value):
174
174
  edb_setup_info = self._parent.get_sim_setup_info
175
- edb_setup_info.SimulationSettings.DCIRSettings.IcepakTempFile = value
175
+ edb_setup_info.simulation_settings.DCIRSettings.IcepakTempFile = value
176
176
  self._parent._edb_object = self._parent._set_edb_setup_info(edb_setup_info)
177
177
  self._parent._update_setup()
178
178
 
@@ -185,12 +185,12 @@ class SiwaveDCIRSettings:
185
185
  str
186
186
  path for per pin res.
187
187
  """
188
- return self._parent.get_sim_setup_info.SimulationSettings.DCIRSettings.PerPinResPath
188
+ return self._parent.get_sim_setup_info.simulation_settings.DCIRSettings.PerPinResPath
189
189
 
190
190
  @per_pin_res_path.setter
191
191
  def per_pin_res_path(self, value):
192
192
  edb_setup_info = self._parent.get_sim_setup_info
193
- edb_setup_info.SimulationSettings.DCIRSettings.PerPinResPath = value
193
+ edb_setup_info.simulation_settings.DCIRSettings.PerPinResPath = value
194
194
  self._parent._edb_object = self._parent._set_edb_setup_info(edb_setup_info)
195
195
  self._parent._update_setup()
196
196
 
@@ -203,12 +203,12 @@ class SiwaveDCIRSettings:
203
203
  str
204
204
  path for the Via Report.
205
205
  """
206
- return self._parent.get_sim_setup_info.SimulationSettings.DCIRSettings.ViaReportPath
206
+ return self._parent.get_sim_setup_info.simulation_settings.DCIRSettings.ViaReportPath
207
207
 
208
208
  @via_report_path.setter
209
209
  def via_report_path(self, value):
210
210
  edb_setup_info = self._parent.get_sim_setup_info
211
- edb_setup_info.SimulationSettings.DCIRSettings.ViaReportPath = value
211
+ edb_setup_info.simulation_settings.DCIRSettings.ViaReportPath = value
212
212
  self._parent._edb_object = self._parent._set_edb_setup_info(edb_setup_info)
213
213
  self._parent._update_setup()
214
214
 
@@ -224,12 +224,12 @@ class SiwaveDCIRSettings:
224
224
  str: source name,
225
225
  int: node to ground pairs, 0 (unspecified), 1 (negative), 2 (positive) .
226
226
  """
227
- temp = self._parent.get_sim_setup_info.SimulationSettings.DCIRSettings.SourceTermsToGround
227
+ temp = self._parent.get_sim_setup_info.simulation_settings.DCIRSettings.SourceTermsToGround
228
228
  return convert_netdict_to_pydict(temp)
229
229
 
230
230
  @source_terms_to_ground.setter
231
231
  def source_terms_to_ground(self, value):
232
232
  edb_setup_info = self._parent.get_sim_setup_info
233
- edb_setup_info.SimulationSettings.DCIRSettings.SourceTermsToGround = convert_pydict_to_netdict(value)
233
+ edb_setup_info.simulation_settings.DCIRSettings.SourceTermsToGround = convert_pydict_to_netdict(value)
234
234
  self._parent._edb_object = self._parent._set_edb_setup_info(edb_setup_info)
235
235
  self._parent._update_setup()
@@ -50,7 +50,10 @@ class SweepData(object):
50
50
  def _update_sweep(self):
51
51
  """Update the sweep."""
52
52
  self.sim_setup.delete_frequency_sweep(self)
53
- self.sim_setup._add_frequency_sweep(self)
53
+ ss_info = self.sim_setup.sim_setup_info
54
+ ss_info.add_sweep_data(self)
55
+ self.sim_setup.set_sim_setup_info(ss_info)
56
+ self.sim_setup._update_setup()
54
57
  return
55
58
 
56
59
  @property
@@ -165,7 +168,7 @@ class SweepData(object):
165
168
  self._edb_object.FreqSweepType = edb_freq_sweep_type.kBroadbandFastSweep
166
169
  elif value in [3, "kNumSweepTypes"]:
167
170
  self._edb_object.FreqSweepType = edb_freq_sweep_type.kNumSweepTypes
168
- self._edb_object.FreqSweepType.ToString()
171
+ self._update_sweep()
169
172
 
170
173
  @property
171
174
  def type(self):