pyedb 0.49.0__py3-none-any.whl → 0.50.1__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.
- pyedb/__init__.py +1 -1
- pyedb/configuration/cfg_modeler.py +42 -11
- pyedb/configuration/cfg_ports_sources.py +9 -1
- pyedb/dotnet/database/cell/hierarchy/component.py +6 -6
- pyedb/dotnet/database/components.py +3 -3
- pyedb/dotnet/database/edb_data/padstacks_data.py +13 -0
- pyedb/dotnet/database/edb_data/primitives_data.py +3 -3
- pyedb/dotnet/database/edb_data/variables.py +3 -3
- pyedb/dotnet/database/materials.py +16 -16
- pyedb/dotnet/database/modeler.py +38 -4
- pyedb/dotnet/database/sim_setup_data/data/settings.py +28 -0
- pyedb/dotnet/database/stackup.py +1 -0
- pyedb/dotnet/database/utilities/hfss_simulation_setup.py +5 -6
- pyedb/dotnet/edb.py +22 -20
- pyedb/extensions/__init__.py +0 -0
- pyedb/extensions/via_design_backend.py +681 -0
- pyedb/grpc/database/components.py +537 -686
- pyedb/grpc/database/control_file.py +458 -149
- pyedb/grpc/database/definition/component_def.py +17 -14
- pyedb/grpc/database/definition/materials.py +60 -60
- pyedb/grpc/database/definition/package_def.py +8 -8
- pyedb/grpc/database/definition/padstack_def.py +31 -33
- pyedb/grpc/database/definitions.py +6 -4
- pyedb/grpc/database/geometry/arc_data.py +5 -5
- pyedb/grpc/database/geometry/point_3d_data.py +3 -3
- pyedb/grpc/database/geometry/polygon_data.py +5 -5
- pyedb/grpc/database/hfss.py +399 -397
- pyedb/grpc/database/hierarchy/component.py +60 -58
- pyedb/grpc/database/hierarchy/pin_pair_model.py +6 -6
- pyedb/grpc/database/hierarchy/pingroup.py +13 -11
- pyedb/grpc/database/hierarchy/s_parameter_model.py +1 -1
- pyedb/grpc/database/hierarchy/spice_model.py +1 -1
- pyedb/grpc/database/layers/layer.py +2 -2
- pyedb/grpc/database/layers/stackup_layer.py +144 -44
- pyedb/grpc/database/layout/layout.py +12 -12
- pyedb/grpc/database/layout/voltage_regulator.py +8 -8
- pyedb/grpc/database/layout_validation.py +5 -5
- pyedb/grpc/database/modeler.py +248 -245
- pyedb/grpc/database/net/differential_pair.py +4 -4
- pyedb/grpc/database/net/extended_net.py +7 -8
- pyedb/grpc/database/net/net.py +57 -46
- pyedb/grpc/database/nets.py +139 -122
- pyedb/grpc/database/padstacks.py +174 -190
- pyedb/grpc/database/ports/ports.py +23 -17
- pyedb/grpc/database/primitive/padstack_instance.py +45 -30
- pyedb/grpc/database/primitive/path.py +7 -7
- pyedb/grpc/database/primitive/polygon.py +9 -9
- pyedb/grpc/database/primitive/primitive.py +21 -21
- pyedb/grpc/database/primitive/rectangle.py +1 -1
- pyedb/grpc/database/simulation_setup/hfss_advanced_settings.py +1 -1
- pyedb/grpc/database/simulation_setup/hfss_general_settings.py +1 -1
- pyedb/grpc/database/simulation_setup/hfss_settings_options.py +1 -1
- pyedb/grpc/database/simulation_setup/hfss_simulation_settings.py +6 -6
- pyedb/grpc/database/simulation_setup/hfss_simulation_setup.py +2 -2
- pyedb/grpc/database/simulation_setup/raptor_x_simulation_settings.py +2 -2
- pyedb/grpc/database/simulation_setup/raptor_x_simulation_setup.py +1 -1
- pyedb/grpc/database/simulation_setup/siwave_simulation_setup.py +3 -3
- pyedb/grpc/database/siwave.py +166 -214
- pyedb/grpc/database/source_excitations.py +156 -0
- pyedb/grpc/database/stackup.py +415 -316
- pyedb/grpc/database/terminal/bundle_terminal.py +12 -12
- pyedb/grpc/database/terminal/edge_terminal.py +6 -5
- pyedb/grpc/database/terminal/padstack_instance_terminal.py +13 -13
- pyedb/grpc/database/terminal/pingroup_terminal.py +12 -12
- pyedb/grpc/database/terminal/point_terminal.py +6 -6
- pyedb/grpc/database/terminal/terminal.py +26 -26
- pyedb/grpc/database/utility/heat_sink.py +5 -5
- pyedb/grpc/database/utility/hfss_extent_info.py +21 -21
- pyedb/grpc/database/utility/layout_statistics.py +13 -13
- pyedb/grpc/database/utility/rlc.py +3 -3
- pyedb/grpc/database/utility/sources.py +1 -1
- pyedb/grpc/database/utility/sweep_data_distribution.py +1 -1
- pyedb/grpc/edb.py +524 -764
- {pyedb-0.49.0.dist-info → pyedb-0.50.1.dist-info}/METADATA +1 -1
- {pyedb-0.49.0.dist-info → pyedb-0.50.1.dist-info}/RECORD +77 -77
- pyedb/extensions/pre_layout_design_toolkit/via_design.py +0 -1151
- pyedb/grpc/database/utility/simulation_configuration.py +0 -3305
- {pyedb-0.49.0.dist-info → pyedb-0.50.1.dist-info}/LICENSE +0 -0
- {pyedb-0.49.0.dist-info → pyedb-0.50.1.dist-info}/WHEEL +0 -0
|
@@ -44,7 +44,7 @@ class ComponentDef(GrpcComponentDef):
|
|
|
44
44
|
self._pedb = pedb
|
|
45
45
|
|
|
46
46
|
@property
|
|
47
|
-
def part_name(self):
|
|
47
|
+
def part_name(self) -> str:
|
|
48
48
|
"""Component definition name.
|
|
49
49
|
|
|
50
50
|
Returns
|
|
@@ -60,7 +60,7 @@ class ComponentDef(GrpcComponentDef):
|
|
|
60
60
|
self.name = name
|
|
61
61
|
|
|
62
62
|
@property
|
|
63
|
-
def type(self):
|
|
63
|
+
def type(self) -> str:
|
|
64
64
|
"""Component definition type.
|
|
65
65
|
|
|
66
66
|
Returns
|
|
@@ -97,28 +97,28 @@ class ComponentDef(GrpcComponentDef):
|
|
|
97
97
|
return
|
|
98
98
|
|
|
99
99
|
@property
|
|
100
|
-
def components(self):
|
|
100
|
+
def components(self) -> dict[str, Component]:
|
|
101
101
|
"""Component instances belonging to the definition.
|
|
102
102
|
|
|
103
103
|
Returns
|
|
104
104
|
-------
|
|
105
|
-
|
|
105
|
+
dict[str, :class:`Component <pyedb.grpc.database.hierarchy.component.Component>`]
|
|
106
106
|
"""
|
|
107
107
|
comp_list = [Component(self._pedb, l) for l in Component.find_by_def(self._pedb.active_layout, self.part_name)]
|
|
108
108
|
return {comp.refdes: comp for comp in comp_list}
|
|
109
109
|
|
|
110
110
|
@property
|
|
111
|
-
def component_pins(self):
|
|
111
|
+
def component_pins(self) -> list[ComponentPin]:
|
|
112
112
|
"""Component pins.
|
|
113
113
|
|
|
114
114
|
Returns
|
|
115
115
|
-------
|
|
116
|
-
|
|
116
|
+
list[:class:`ComponentPin <pyedb.grpc.database.definition.component_pin.ComponentPin>`]
|
|
117
117
|
|
|
118
118
|
"""
|
|
119
119
|
return [ComponentPin(self._pedb, pin) for pin in super().component_pins]
|
|
120
120
|
|
|
121
|
-
def assign_rlc_model(self, res=None, ind=None, cap=None, is_parallel=False):
|
|
121
|
+
def assign_rlc_model(self, res=None, ind=None, cap=None, is_parallel=False) -> bool:
|
|
122
122
|
"""Assign RLC to all components under this part name.
|
|
123
123
|
|
|
124
124
|
Parameters
|
|
@@ -142,16 +142,19 @@ class ComponentDef(GrpcComponentDef):
|
|
|
142
142
|
comp.assign_rlc_model(res, ind, cap, is_parallel)
|
|
143
143
|
return True
|
|
144
144
|
|
|
145
|
-
def assign_s_param_model(self, file_path, model_name=None, reference_net=None):
|
|
145
|
+
def assign_s_param_model(self, file_path, model_name=None, reference_net=None) -> bool:
|
|
146
146
|
"""Assign S-parameter to all components under this part name.
|
|
147
147
|
|
|
148
148
|
Parameters
|
|
149
149
|
----------
|
|
150
150
|
file_path : str
|
|
151
151
|
File path of the S-parameter model.
|
|
152
|
-
|
|
152
|
+
model_name : str, optional
|
|
153
153
|
Name of the S-parameter model.
|
|
154
154
|
|
|
155
|
+
reference_net : str, optional
|
|
156
|
+
Name of the reference net.
|
|
157
|
+
|
|
155
158
|
Returns
|
|
156
159
|
-------
|
|
157
160
|
bool
|
|
@@ -161,31 +164,31 @@ class ComponentDef(GrpcComponentDef):
|
|
|
161
164
|
comp.assign_s_param_model(file_path, model_name, reference_net)
|
|
162
165
|
return True
|
|
163
166
|
|
|
164
|
-
def assign_spice_model(self, file_path, model_name=None):
|
|
167
|
+
def assign_spice_model(self, file_path, model_name=None) -> bool:
|
|
165
168
|
"""Assign Spice model to all components under this part name.
|
|
166
169
|
|
|
167
170
|
Parameters
|
|
168
171
|
----------
|
|
169
172
|
file_path : str
|
|
170
173
|
File path of the Spice model.
|
|
171
|
-
|
|
174
|
+
model_name : str, optional
|
|
172
175
|
Name of the Spice model.
|
|
173
176
|
|
|
174
177
|
Returns
|
|
175
178
|
-------
|
|
176
|
-
|
|
179
|
+
bool
|
|
177
180
|
"""
|
|
178
181
|
for comp in list(self.components.values()):
|
|
179
182
|
comp.assign_spice_model(file_path, model_name)
|
|
180
183
|
return True
|
|
181
184
|
|
|
182
185
|
@property
|
|
183
|
-
def reference_file(self):
|
|
186
|
+
def reference_file(self) -> list[str]:
|
|
184
187
|
"""Model reference file.
|
|
185
188
|
|
|
186
189
|
Returns
|
|
187
190
|
-------
|
|
188
|
-
|
|
191
|
+
list[str]
|
|
189
192
|
List of reference files.
|
|
190
193
|
|
|
191
194
|
"""
|
|
@@ -99,22 +99,22 @@ def get_line_float_value(line):
|
|
|
99
99
|
class MaterialProperties(BaseModel):
|
|
100
100
|
"""Store material properties."""
|
|
101
101
|
|
|
102
|
-
conductivity: Optional[PositiveFloat] =
|
|
103
|
-
dielectric_loss_tangent: Optional[PositiveFloat] =
|
|
104
|
-
magnetic_loss_tangent: Optional[PositiveFloat] =
|
|
105
|
-
mass_density: Optional[PositiveFloat] =
|
|
106
|
-
permittivity: Optional[PositiveFloat] =
|
|
107
|
-
permeability: Optional[PositiveFloat] =
|
|
108
|
-
poisson_ratio: Optional[PositiveFloat] =
|
|
109
|
-
specific_heat: Optional[PositiveFloat] =
|
|
110
|
-
thermal_conductivity: Optional[PositiveFloat] =
|
|
111
|
-
youngs_modulus: Optional[PositiveFloat] =
|
|
112
|
-
thermal_expansion_coefficient: Optional[PositiveFloat] =
|
|
113
|
-
dc_conductivity: Optional[PositiveFloat] =
|
|
114
|
-
dc_permittivity: Optional[PositiveFloat] =
|
|
115
|
-
dielectric_model_frequency: Optional[PositiveFloat] =
|
|
116
|
-
loss_tangent_at_frequency: Optional[PositiveFloat] =
|
|
117
|
-
permittivity_at_frequency: Optional[PositiveFloat] =
|
|
102
|
+
conductivity: Optional[PositiveFloat] = 0.0
|
|
103
|
+
dielectric_loss_tangent: Optional[PositiveFloat] = 0.0
|
|
104
|
+
magnetic_loss_tangent: Optional[PositiveFloat] = 0.0
|
|
105
|
+
mass_density: Optional[PositiveFloat] = 0.0
|
|
106
|
+
permittivity: Optional[PositiveFloat] = 0.0
|
|
107
|
+
permeability: Optional[PositiveFloat] = 0.0
|
|
108
|
+
poisson_ratio: Optional[PositiveFloat] = 0.0
|
|
109
|
+
specific_heat: Optional[PositiveFloat] = 0.0
|
|
110
|
+
thermal_conductivity: Optional[PositiveFloat] = 0.0
|
|
111
|
+
youngs_modulus: Optional[PositiveFloat] = 0.0
|
|
112
|
+
thermal_expansion_coefficient: Optional[PositiveFloat] = 0.0
|
|
113
|
+
dc_conductivity: Optional[PositiveFloat] = 0.0
|
|
114
|
+
dc_permittivity: Optional[PositiveFloat] = 0.0
|
|
115
|
+
dielectric_model_frequency: Optional[PositiveFloat] = 0.0
|
|
116
|
+
loss_tangent_at_frequency: Optional[PositiveFloat] = 0.0
|
|
117
|
+
permittivity_at_frequency: Optional[PositiveFloat] = 0.0
|
|
118
118
|
|
|
119
119
|
|
|
120
120
|
class Material(GrpcMaterialDef):
|
|
@@ -128,7 +128,7 @@ class Material(GrpcMaterialDef):
|
|
|
128
128
|
self.__dielectric_model = None
|
|
129
129
|
|
|
130
130
|
@property
|
|
131
|
-
def name(self):
|
|
131
|
+
def name(self) -> str:
|
|
132
132
|
"""Material name.
|
|
133
133
|
|
|
134
134
|
Returns
|
|
@@ -169,10 +169,10 @@ class Material(GrpcMaterialDef):
|
|
|
169
169
|
self.__dielectric_model = GrpcDjordjecvicSarkarModel(super().dielectric_material_model.msg)
|
|
170
170
|
return self.__dielectric_model
|
|
171
171
|
except:
|
|
172
|
-
return
|
|
172
|
+
return 0.0
|
|
173
173
|
|
|
174
174
|
@property
|
|
175
|
-
def conductivity(self):
|
|
175
|
+
def conductivity(self) -> float:
|
|
176
176
|
"""Get material conductivity.
|
|
177
177
|
|
|
178
178
|
Returns
|
|
@@ -184,7 +184,7 @@ class Material(GrpcMaterialDef):
|
|
|
184
184
|
value = self.get_property(GrpcMaterialProperty.CONDUCTIVITY).value
|
|
185
185
|
return value
|
|
186
186
|
except:
|
|
187
|
-
return
|
|
187
|
+
return 0.0
|
|
188
188
|
|
|
189
189
|
@conductivity.setter
|
|
190
190
|
def conductivity(self, value):
|
|
@@ -210,7 +210,7 @@ class Material(GrpcMaterialDef):
|
|
|
210
210
|
try:
|
|
211
211
|
return self.dielectric_material_model.dc_conductivity
|
|
212
212
|
except:
|
|
213
|
-
return
|
|
213
|
+
return None
|
|
214
214
|
|
|
215
215
|
@dc_conductivity.setter
|
|
216
216
|
def dc_conductivity(self, value):
|
|
@@ -230,7 +230,7 @@ class Material(GrpcMaterialDef):
|
|
|
230
230
|
try:
|
|
231
231
|
return self.dielectric_material_model.dc_relative_permitivity
|
|
232
232
|
except:
|
|
233
|
-
return
|
|
233
|
+
return None
|
|
234
234
|
|
|
235
235
|
@dc_permittivity.setter
|
|
236
236
|
def dc_permittivity(self, value):
|
|
@@ -238,7 +238,7 @@ class Material(GrpcMaterialDef):
|
|
|
238
238
|
self.dielectric_material_model.dc_relative_permitivity = float(value)
|
|
239
239
|
|
|
240
240
|
@property
|
|
241
|
-
def loss_tangent_at_frequency(self):
|
|
241
|
+
def loss_tangent_at_frequency(self) -> float:
|
|
242
242
|
"""Material loss tangent at frequency if dielectric model is defined.
|
|
243
243
|
|
|
244
244
|
Returns
|
|
@@ -250,7 +250,7 @@ class Material(GrpcMaterialDef):
|
|
|
250
250
|
try:
|
|
251
251
|
return self.dielectric_material_model.loss_tangent_at_frequency
|
|
252
252
|
except:
|
|
253
|
-
return
|
|
253
|
+
return None
|
|
254
254
|
|
|
255
255
|
@loss_tangent_at_frequency.setter
|
|
256
256
|
def loss_tangent_at_frequency(self, value):
|
|
@@ -258,7 +258,7 @@ class Material(GrpcMaterialDef):
|
|
|
258
258
|
self.dielectric_material_model.loss_tangent_at_frequency = float(value)
|
|
259
259
|
|
|
260
260
|
@property
|
|
261
|
-
def dielectric_model_frequency(self):
|
|
261
|
+
def dielectric_model_frequency(self) -> float:
|
|
262
262
|
"""Dielectric model frequency if model is defined.
|
|
263
263
|
|
|
264
264
|
Returns
|
|
@@ -270,7 +270,7 @@ class Material(GrpcMaterialDef):
|
|
|
270
270
|
try:
|
|
271
271
|
return self.dielectric_material_model.frequency
|
|
272
272
|
except:
|
|
273
|
-
return
|
|
273
|
+
return None
|
|
274
274
|
|
|
275
275
|
@dielectric_model_frequency.setter
|
|
276
276
|
def dielectric_model_frequency(self, value):
|
|
@@ -278,7 +278,7 @@ class Material(GrpcMaterialDef):
|
|
|
278
278
|
self.dielectric_material_model.frequency = float(value)
|
|
279
279
|
|
|
280
280
|
@property
|
|
281
|
-
def permittivity_at_frequency(self):
|
|
281
|
+
def permittivity_at_frequency(self) -> float:
|
|
282
282
|
"""Material permittivity at frequency if model is defined.
|
|
283
283
|
|
|
284
284
|
|
|
@@ -291,7 +291,7 @@ class Material(GrpcMaterialDef):
|
|
|
291
291
|
try:
|
|
292
292
|
return self.dielectric_material_model.relative_permitivity_at_frequency
|
|
293
293
|
except:
|
|
294
|
-
return
|
|
294
|
+
return None
|
|
295
295
|
|
|
296
296
|
@permittivity_at_frequency.setter
|
|
297
297
|
def permittivity_at_frequency(self, value):
|
|
@@ -299,7 +299,7 @@ class Material(GrpcMaterialDef):
|
|
|
299
299
|
self.dielectric_material_model.relative_permitivity_at_frequency = float(value)
|
|
300
300
|
|
|
301
301
|
@property
|
|
302
|
-
def permittivity(self):
|
|
302
|
+
def permittivity(self) -> float:
|
|
303
303
|
"""Material permittivity.
|
|
304
304
|
|
|
305
305
|
|
|
@@ -313,7 +313,7 @@ class Material(GrpcMaterialDef):
|
|
|
313
313
|
value = self.get_property(GrpcMaterialProperty.PERMITTIVITY).value
|
|
314
314
|
return value
|
|
315
315
|
except:
|
|
316
|
-
return
|
|
316
|
+
return 0.0
|
|
317
317
|
|
|
318
318
|
@permittivity.setter
|
|
319
319
|
def permittivity(self, value):
|
|
@@ -321,7 +321,7 @@ class Material(GrpcMaterialDef):
|
|
|
321
321
|
self.set_property(GrpcMaterialProperty.PERMITTIVITY, GrpcValue(value))
|
|
322
322
|
|
|
323
323
|
@property
|
|
324
|
-
def permeability(self):
|
|
324
|
+
def permeability(self) -> float:
|
|
325
325
|
"""Material permeability.
|
|
326
326
|
|
|
327
327
|
Returns
|
|
@@ -334,7 +334,7 @@ class Material(GrpcMaterialDef):
|
|
|
334
334
|
value = self.get_property(GrpcMaterialProperty.PERMEABILITY).value
|
|
335
335
|
return value
|
|
336
336
|
except:
|
|
337
|
-
return
|
|
337
|
+
return 0.0
|
|
338
338
|
|
|
339
339
|
@permeability.setter
|
|
340
340
|
def permeability(self, value):
|
|
@@ -359,7 +359,7 @@ class Material(GrpcMaterialDef):
|
|
|
359
359
|
return self.dielectric_loss_tangent
|
|
360
360
|
|
|
361
361
|
@property
|
|
362
|
-
def dielectric_loss_tangent(self):
|
|
362
|
+
def dielectric_loss_tangent(self) -> float:
|
|
363
363
|
"""Material loss tangent.
|
|
364
364
|
|
|
365
365
|
Returns
|
|
@@ -371,7 +371,7 @@ class Material(GrpcMaterialDef):
|
|
|
371
371
|
try:
|
|
372
372
|
return self.get_property(GrpcMaterialProperty.DIELECTRIC_LOSS_TANGENT).value
|
|
373
373
|
except:
|
|
374
|
-
return
|
|
374
|
+
return 0.0
|
|
375
375
|
|
|
376
376
|
@loss_tangent.setter
|
|
377
377
|
def loss_tangent(self, value):
|
|
@@ -389,7 +389,7 @@ class Material(GrpcMaterialDef):
|
|
|
389
389
|
self.set_property(GrpcMaterialProperty.DIELECTRIC_LOSS_TANGENT, GrpcValue(value))
|
|
390
390
|
|
|
391
391
|
@property
|
|
392
|
-
def magnetic_loss_tangent(self):
|
|
392
|
+
def magnetic_loss_tangent(self) -> float:
|
|
393
393
|
"""Material magnetic loss tangent.
|
|
394
394
|
|
|
395
395
|
Returns
|
|
@@ -401,7 +401,7 @@ class Material(GrpcMaterialDef):
|
|
|
401
401
|
value = self.get_property(GrpcMaterialProperty.MAGNETIC_LOSS_TANGENT).value
|
|
402
402
|
return value
|
|
403
403
|
except:
|
|
404
|
-
return
|
|
404
|
+
return 0.0
|
|
405
405
|
|
|
406
406
|
@magnetic_loss_tangent.setter
|
|
407
407
|
def magnetic_loss_tangent(self, value):
|
|
@@ -409,7 +409,7 @@ class Material(GrpcMaterialDef):
|
|
|
409
409
|
self.set_property(GrpcMaterialProperty.MAGNETIC_LOSS_TANGENT, GrpcValue(value))
|
|
410
410
|
|
|
411
411
|
@property
|
|
412
|
-
def thermal_conductivity(self):
|
|
412
|
+
def thermal_conductivity(self) -> float:
|
|
413
413
|
"""Material thermal conductivity.
|
|
414
414
|
|
|
415
415
|
Returns
|
|
@@ -422,7 +422,7 @@ class Material(GrpcMaterialDef):
|
|
|
422
422
|
value = self.get_property(GrpcMaterialProperty.THERMAL_CONDUCTIVITY).value
|
|
423
423
|
return value
|
|
424
424
|
except:
|
|
425
|
-
return
|
|
425
|
+
return 0.0
|
|
426
426
|
|
|
427
427
|
@thermal_conductivity.setter
|
|
428
428
|
def thermal_conductivity(self, value):
|
|
@@ -430,7 +430,7 @@ class Material(GrpcMaterialDef):
|
|
|
430
430
|
self.set_property(GrpcMaterialProperty.THERMAL_CONDUCTIVITY, GrpcValue(value))
|
|
431
431
|
|
|
432
432
|
@property
|
|
433
|
-
def mass_density(self):
|
|
433
|
+
def mass_density(self) -> float:
|
|
434
434
|
"""Material mass density.
|
|
435
435
|
|
|
436
436
|
Returns
|
|
@@ -443,7 +443,7 @@ class Material(GrpcMaterialDef):
|
|
|
443
443
|
value = self.get_property(GrpcMaterialProperty.MASS_DENSITY).value
|
|
444
444
|
return value
|
|
445
445
|
except:
|
|
446
|
-
return
|
|
446
|
+
return 0.0
|
|
447
447
|
|
|
448
448
|
@mass_density.setter
|
|
449
449
|
def mass_density(self, value):
|
|
@@ -451,7 +451,7 @@ class Material(GrpcMaterialDef):
|
|
|
451
451
|
self.set_property(GrpcMaterialProperty.MASS_DENSITY, GrpcValue(value))
|
|
452
452
|
|
|
453
453
|
@property
|
|
454
|
-
def youngs_modulus(self):
|
|
454
|
+
def youngs_modulus(self) -> float:
|
|
455
455
|
"""Material young modulus.
|
|
456
456
|
|
|
457
457
|
Returns
|
|
@@ -464,7 +464,7 @@ class Material(GrpcMaterialDef):
|
|
|
464
464
|
value = self.get_property(GrpcMaterialProperty.YOUNGS_MODULUS).value
|
|
465
465
|
return value
|
|
466
466
|
except:
|
|
467
|
-
return
|
|
467
|
+
return 0.0
|
|
468
468
|
|
|
469
469
|
@youngs_modulus.setter
|
|
470
470
|
def youngs_modulus(self, value):
|
|
@@ -472,7 +472,7 @@ class Material(GrpcMaterialDef):
|
|
|
472
472
|
self.set_property(GrpcMaterialProperty.YOUNGS_MODULUS, GrpcValue(value))
|
|
473
473
|
|
|
474
474
|
@property
|
|
475
|
-
def specific_heat(self):
|
|
475
|
+
def specific_heat(self) -> float:
|
|
476
476
|
"""Material specific heat.
|
|
477
477
|
|
|
478
478
|
Returns
|
|
@@ -483,7 +483,7 @@ class Material(GrpcMaterialDef):
|
|
|
483
483
|
try:
|
|
484
484
|
return self.get_property(GrpcMaterialProperty.SPECIFIC_HEAT).value
|
|
485
485
|
except:
|
|
486
|
-
return
|
|
486
|
+
return 0.0
|
|
487
487
|
|
|
488
488
|
@specific_heat.setter
|
|
489
489
|
def specific_heat(self, value):
|
|
@@ -491,7 +491,7 @@ class Material(GrpcMaterialDef):
|
|
|
491
491
|
self.set_property(GrpcMaterialProperty.SPECIFIC_HEAT, GrpcValue(value))
|
|
492
492
|
|
|
493
493
|
@property
|
|
494
|
-
def poisson_ratio(self):
|
|
494
|
+
def poisson_ratio(self) -> float:
|
|
495
495
|
"""Material poisson ratio.
|
|
496
496
|
|
|
497
497
|
Returns
|
|
@@ -502,7 +502,7 @@ class Material(GrpcMaterialDef):
|
|
|
502
502
|
try:
|
|
503
503
|
return self.get_property(GrpcMaterialProperty.POISSONS_RATIO).value
|
|
504
504
|
except:
|
|
505
|
-
return
|
|
505
|
+
return 0.0
|
|
506
506
|
|
|
507
507
|
@poisson_ratio.setter
|
|
508
508
|
def poisson_ratio(self, value):
|
|
@@ -510,7 +510,7 @@ class Material(GrpcMaterialDef):
|
|
|
510
510
|
self.set_property(GrpcMaterialProperty.POISSONS_RATIO, GrpcValue(value))
|
|
511
511
|
|
|
512
512
|
@property
|
|
513
|
-
def thermal_expansion_coefficient(self):
|
|
513
|
+
def thermal_expansion_coefficient(self) -> float:
|
|
514
514
|
"""Material thermal coefficient.
|
|
515
515
|
|
|
516
516
|
Returns
|
|
@@ -522,7 +522,7 @@ class Material(GrpcMaterialDef):
|
|
|
522
522
|
try:
|
|
523
523
|
return self.get_property(GrpcMaterialProperty.THERMAL_EXPANSION_COEFFICIENT).value
|
|
524
524
|
except:
|
|
525
|
-
return
|
|
525
|
+
return 0.0
|
|
526
526
|
|
|
527
527
|
@thermal_expansion_coefficient.setter
|
|
528
528
|
def thermal_expansion_coefficient(self, value):
|
|
@@ -639,7 +639,7 @@ class Materials(object):
|
|
|
639
639
|
return self.__syslib
|
|
640
640
|
|
|
641
641
|
@property
|
|
642
|
-
def materials(self):
|
|
642
|
+
def materials(self) -> dict[str, Material]:
|
|
643
643
|
"""Get materials.
|
|
644
644
|
|
|
645
645
|
Returns
|
|
@@ -652,7 +652,7 @@ class Materials(object):
|
|
|
652
652
|
}
|
|
653
653
|
return materials
|
|
654
654
|
|
|
655
|
-
def add_material(self, name: str, **kwargs):
|
|
655
|
+
def add_material(self, name: str, **kwargs) -> Material:
|
|
656
656
|
"""Add a new material.
|
|
657
657
|
|
|
658
658
|
Parameters
|
|
@@ -690,7 +690,7 @@ class Materials(object):
|
|
|
690
690
|
|
|
691
691
|
return material
|
|
692
692
|
|
|
693
|
-
def add_conductor_material(self, name, conductivity, **kwargs):
|
|
693
|
+
def add_conductor_material(self, name, conductivity, **kwargs) -> Material:
|
|
694
694
|
"""Add a new conductor material.
|
|
695
695
|
|
|
696
696
|
Parameters
|
|
@@ -712,7 +712,7 @@ class Materials(object):
|
|
|
712
712
|
|
|
713
713
|
return material
|
|
714
714
|
|
|
715
|
-
def add_dielectric_material(self, name, permittivity, dielectric_loss_tangent, **kwargs):
|
|
715
|
+
def add_dielectric_material(self, name, permittivity, dielectric_loss_tangent, **kwargs) -> Material:
|
|
716
716
|
"""Add a new dielectric material in library.
|
|
717
717
|
|
|
718
718
|
Parameters
|
|
@@ -745,7 +745,7 @@ class Materials(object):
|
|
|
745
745
|
dc_conductivity=None,
|
|
746
746
|
dc_permittivity=None,
|
|
747
747
|
**kwargs,
|
|
748
|
-
):
|
|
748
|
+
) -> Material:
|
|
749
749
|
"""Add a dielectric using the Djordjevic-Sarkar model.
|
|
750
750
|
|
|
751
751
|
Parameters
|
|
@@ -804,7 +804,7 @@ class Materials(object):
|
|
|
804
804
|
lower_freqency,
|
|
805
805
|
higher_frequency,
|
|
806
806
|
**kwargs,
|
|
807
|
-
):
|
|
807
|
+
) -> Material:
|
|
808
808
|
"""Add a dielectric with the Debye model.
|
|
809
809
|
|
|
810
810
|
Parameters
|
|
@@ -864,7 +864,7 @@ class Materials(object):
|
|
|
864
864
|
permittivities,
|
|
865
865
|
loss_tangents,
|
|
866
866
|
**kwargs,
|
|
867
|
-
):
|
|
867
|
+
) -> Material:
|
|
868
868
|
"""Add a dielectric with the Multipole Debye model.
|
|
869
869
|
|
|
870
870
|
Parameters
|
|
@@ -938,7 +938,7 @@ class Materials(object):
|
|
|
938
938
|
material = Material(self.__edb, material_def)
|
|
939
939
|
return material
|
|
940
940
|
|
|
941
|
-
def duplicate(self, material_name, new_material_name):
|
|
941
|
+
def duplicate(self, material_name, new_material_name) -> Material:
|
|
942
942
|
"""Duplicate a material from the database.
|
|
943
943
|
|
|
944
944
|
Parameters
|
|
@@ -983,7 +983,7 @@ class Materials(object):
|
|
|
983
983
|
)
|
|
984
984
|
self.delete(material_name)
|
|
985
985
|
|
|
986
|
-
def delete(self, material_name):
|
|
986
|
+
def delete(self, material_name) -> bool:
|
|
987
987
|
"""Remove a material from the database.
|
|
988
988
|
|
|
989
989
|
Returns
|
|
@@ -1077,7 +1077,7 @@ class Materials(object):
|
|
|
1077
1077
|
else:
|
|
1078
1078
|
return property_name_to_id["InvalidProperty"]
|
|
1079
1079
|
|
|
1080
|
-
def load_amat(self, amat_file):
|
|
1080
|
+
def load_amat(self, amat_file) -> bool:
|
|
1081
1081
|
"""Load materials from an AMAT file.
|
|
1082
1082
|
|
|
1083
1083
|
Parameters
|
|
@@ -1184,7 +1184,7 @@ class Materials(object):
|
|
|
1184
1184
|
material_description["name"] = match.group(1)
|
|
1185
1185
|
in_material_def = True
|
|
1186
1186
|
|
|
1187
|
-
def read_materials(self, amat_file):
|
|
1187
|
+
def read_materials(self, amat_file) -> dict[str, Material]:
|
|
1188
1188
|
"""Read materials from an AMAT file.
|
|
1189
1189
|
|
|
1190
1190
|
Parameters
|
|
@@ -1207,7 +1207,7 @@ class Materials(object):
|
|
|
1207
1207
|
|
|
1208
1208
|
return res
|
|
1209
1209
|
|
|
1210
|
-
def read_syslib_material(self, material_name):
|
|
1210
|
+
def read_syslib_material(self, material_name) -> dict[str, Material]:
|
|
1211
1211
|
"""Read a specific material from syslib AMAT file.
|
|
1212
1212
|
|
|
1213
1213
|
Parameters
|
|
@@ -92,7 +92,7 @@ class PackageDef(GrpcPackageDef):
|
|
|
92
92
|
return edb_object
|
|
93
93
|
|
|
94
94
|
@property
|
|
95
|
-
def exterior_boundary(self):
|
|
95
|
+
def exterior_boundary(self) -> GrpcPolygonData:
|
|
96
96
|
"""Get the exterior boundary of a package definition.
|
|
97
97
|
|
|
98
98
|
Returns
|
|
@@ -107,7 +107,7 @@ class PackageDef(GrpcPackageDef):
|
|
|
107
107
|
super(PackageDef, self.__class__).exterior_boundary.__set__(self, value)
|
|
108
108
|
|
|
109
109
|
@property
|
|
110
|
-
def maximum_power(self):
|
|
110
|
+
def maximum_power(self) -> float:
|
|
111
111
|
"""Maximum power of the package.
|
|
112
112
|
|
|
113
113
|
Returns
|
|
@@ -122,7 +122,7 @@ class PackageDef(GrpcPackageDef):
|
|
|
122
122
|
super(PackageDef, self.__class__).maximum_power.__set__(self, GrpcValue(value))
|
|
123
123
|
|
|
124
124
|
@property
|
|
125
|
-
def therm_cond(self):
|
|
125
|
+
def therm_cond(self) -> float:
|
|
126
126
|
"""Thermal conductivity of the package.
|
|
127
127
|
|
|
128
128
|
Returns
|
|
@@ -138,7 +138,7 @@ class PackageDef(GrpcPackageDef):
|
|
|
138
138
|
super(PackageDef, self.__class__).thermal_conductivity.__set__(self, GrpcValue(value))
|
|
139
139
|
|
|
140
140
|
@property
|
|
141
|
-
def theta_jb(self):
|
|
141
|
+
def theta_jb(self) -> float:
|
|
142
142
|
"""Theta Junction-to-Board of the package.
|
|
143
143
|
|
|
144
144
|
Returns
|
|
@@ -153,7 +153,7 @@ class PackageDef(GrpcPackageDef):
|
|
|
153
153
|
super(PackageDef, self.__class__).theta_jb.__set__(self, GrpcValue(value))
|
|
154
154
|
|
|
155
155
|
@property
|
|
156
|
-
def theta_jc(self):
|
|
156
|
+
def theta_jc(self) -> float:
|
|
157
157
|
"""Theta Junction-to-Case of the package.
|
|
158
158
|
|
|
159
159
|
Returns
|
|
@@ -168,7 +168,7 @@ class PackageDef(GrpcPackageDef):
|
|
|
168
168
|
super(PackageDef, self.__class__).theta_jc.__set__(self, GrpcValue(value))
|
|
169
169
|
|
|
170
170
|
@property
|
|
171
|
-
def height(self):
|
|
171
|
+
def height(self) -> float:
|
|
172
172
|
"""Height of the package.
|
|
173
173
|
|
|
174
174
|
Returns
|
|
@@ -183,7 +183,7 @@ class PackageDef(GrpcPackageDef):
|
|
|
183
183
|
super(PackageDef, self.__class__).height.__set__(self, GrpcValue(value))
|
|
184
184
|
|
|
185
185
|
@property
|
|
186
|
-
def heat_sink(self):
|
|
186
|
+
def heat_sink(self) -> HeatSink:
|
|
187
187
|
"""Package heat sink.
|
|
188
188
|
|
|
189
189
|
Returns
|
|
@@ -206,7 +206,7 @@ class PackageDef(GrpcPackageDef):
|
|
|
206
206
|
"""
|
|
207
207
|
return self.heat_sink
|
|
208
208
|
|
|
209
|
-
def set_heatsink(self, fin_base_height, fin_height, fin_orientation, fin_spacing, fin_thickness):
|
|
209
|
+
def set_heatsink(self, fin_base_height, fin_height, fin_orientation, fin_spacing, fin_thickness) -> HeatSink:
|
|
210
210
|
"""Set Heat sink.
|
|
211
211
|
Parameters
|
|
212
212
|
----------
|