pyedb 0.2.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.
- pyedb/__init__.py +17 -0
- pyedb/dotnet/__init__.py +0 -0
- pyedb/dotnet/application/Variables.py +2261 -0
- pyedb/dotnet/application/__init__.py +0 -0
- pyedb/dotnet/clr_module.py +103 -0
- pyedb/dotnet/edb.py +4237 -0
- pyedb/dotnet/edb_core/__init__.py +1 -0
- pyedb/dotnet/edb_core/cell/__init__.py +0 -0
- pyedb/dotnet/edb_core/cell/hierarchy/__init__.py +0 -0
- pyedb/dotnet/edb_core/cell/hierarchy/model.py +66 -0
- pyedb/dotnet/edb_core/components.py +2669 -0
- pyedb/dotnet/edb_core/configuration.py +423 -0
- pyedb/dotnet/edb_core/definition/__init__.py +0 -0
- pyedb/dotnet/edb_core/definition/component_def.py +166 -0
- pyedb/dotnet/edb_core/definition/component_model.py +30 -0
- pyedb/dotnet/edb_core/definition/definition_obj.py +18 -0
- pyedb/dotnet/edb_core/definition/definitions.py +12 -0
- pyedb/dotnet/edb_core/dotnet/__init__.py +0 -0
- pyedb/dotnet/edb_core/dotnet/database.py +1218 -0
- pyedb/dotnet/edb_core/dotnet/layout.py +238 -0
- pyedb/dotnet/edb_core/dotnet/primitive.py +1517 -0
- pyedb/dotnet/edb_core/edb_data/__init__.py +0 -0
- pyedb/dotnet/edb_core/edb_data/components_data.py +938 -0
- pyedb/dotnet/edb_core/edb_data/connectable.py +113 -0
- pyedb/dotnet/edb_core/edb_data/control_file.py +1268 -0
- pyedb/dotnet/edb_core/edb_data/design_options.py +35 -0
- pyedb/dotnet/edb_core/edb_data/edbvalue.py +45 -0
- pyedb/dotnet/edb_core/edb_data/hfss_extent_info.py +330 -0
- pyedb/dotnet/edb_core/edb_data/hfss_simulation_setup_data.py +1607 -0
- pyedb/dotnet/edb_core/edb_data/layer_data.py +576 -0
- pyedb/dotnet/edb_core/edb_data/nets_data.py +281 -0
- pyedb/dotnet/edb_core/edb_data/obj_base.py +19 -0
- pyedb/dotnet/edb_core/edb_data/padstacks_data.py +2080 -0
- pyedb/dotnet/edb_core/edb_data/ports.py +287 -0
- pyedb/dotnet/edb_core/edb_data/primitives_data.py +1397 -0
- pyedb/dotnet/edb_core/edb_data/simulation_configuration.py +2914 -0
- pyedb/dotnet/edb_core/edb_data/simulation_setup.py +716 -0
- pyedb/dotnet/edb_core/edb_data/siwave_simulation_setup_data.py +1205 -0
- pyedb/dotnet/edb_core/edb_data/sources.py +514 -0
- pyedb/dotnet/edb_core/edb_data/terminals.py +632 -0
- pyedb/dotnet/edb_core/edb_data/utilities.py +148 -0
- pyedb/dotnet/edb_core/edb_data/variables.py +91 -0
- pyedb/dotnet/edb_core/general.py +181 -0
- pyedb/dotnet/edb_core/hfss.py +1646 -0
- pyedb/dotnet/edb_core/layout.py +1244 -0
- pyedb/dotnet/edb_core/layout_validation.py +272 -0
- pyedb/dotnet/edb_core/materials.py +939 -0
- pyedb/dotnet/edb_core/net_class.py +335 -0
- pyedb/dotnet/edb_core/nets.py +1215 -0
- pyedb/dotnet/edb_core/padstack.py +1389 -0
- pyedb/dotnet/edb_core/siwave.py +1427 -0
- pyedb/dotnet/edb_core/stackup.py +2703 -0
- pyedb/edb_logger.py +396 -0
- pyedb/generic/__init__.py +0 -0
- pyedb/generic/constants.py +1063 -0
- pyedb/generic/data_handlers.py +320 -0
- pyedb/generic/design_types.py +104 -0
- pyedb/generic/filesystem.py +150 -0
- pyedb/generic/general_methods.py +1535 -0
- pyedb/generic/plot.py +1840 -0
- pyedb/generic/process.py +285 -0
- pyedb/generic/settings.py +224 -0
- pyedb/ipc2581/__init__.py +0 -0
- pyedb/ipc2581/bom/__init__.py +0 -0
- pyedb/ipc2581/bom/bom.py +21 -0
- pyedb/ipc2581/bom/bom_item.py +32 -0
- pyedb/ipc2581/bom/characteristics.py +37 -0
- pyedb/ipc2581/bom/refdes.py +16 -0
- pyedb/ipc2581/content/__init__.py +0 -0
- pyedb/ipc2581/content/color.py +38 -0
- pyedb/ipc2581/content/content.py +55 -0
- pyedb/ipc2581/content/dictionary_color.py +29 -0
- pyedb/ipc2581/content/dictionary_fill.py +28 -0
- pyedb/ipc2581/content/dictionary_line.py +30 -0
- pyedb/ipc2581/content/entry_color.py +13 -0
- pyedb/ipc2581/content/entry_line.py +14 -0
- pyedb/ipc2581/content/fill.py +15 -0
- pyedb/ipc2581/content/layer_ref.py +10 -0
- pyedb/ipc2581/content/standard_geometries_dictionary.py +72 -0
- pyedb/ipc2581/ecad/__init__.py +0 -0
- pyedb/ipc2581/ecad/cad_data/__init__.py +0 -0
- pyedb/ipc2581/ecad/cad_data/assembly_drawing.py +26 -0
- pyedb/ipc2581/ecad/cad_data/cad_data.py +37 -0
- pyedb/ipc2581/ecad/cad_data/component.py +41 -0
- pyedb/ipc2581/ecad/cad_data/drill.py +30 -0
- pyedb/ipc2581/ecad/cad_data/feature.py +54 -0
- pyedb/ipc2581/ecad/cad_data/layer.py +41 -0
- pyedb/ipc2581/ecad/cad_data/layer_feature.py +151 -0
- pyedb/ipc2581/ecad/cad_data/logical_net.py +32 -0
- pyedb/ipc2581/ecad/cad_data/outline.py +25 -0
- pyedb/ipc2581/ecad/cad_data/package.py +104 -0
- pyedb/ipc2581/ecad/cad_data/padstack_def.py +38 -0
- pyedb/ipc2581/ecad/cad_data/padstack_hole_def.py +24 -0
- pyedb/ipc2581/ecad/cad_data/padstack_instance.py +62 -0
- pyedb/ipc2581/ecad/cad_data/padstack_pad_def.py +26 -0
- pyedb/ipc2581/ecad/cad_data/path.py +89 -0
- pyedb/ipc2581/ecad/cad_data/phy_net.py +80 -0
- pyedb/ipc2581/ecad/cad_data/pin.py +31 -0
- pyedb/ipc2581/ecad/cad_data/polygon.py +169 -0
- pyedb/ipc2581/ecad/cad_data/profile.py +40 -0
- pyedb/ipc2581/ecad/cad_data/stackup.py +31 -0
- pyedb/ipc2581/ecad/cad_data/stackup_group.py +42 -0
- pyedb/ipc2581/ecad/cad_data/stackup_layer.py +21 -0
- pyedb/ipc2581/ecad/cad_data/step.py +275 -0
- pyedb/ipc2581/ecad/cad_header.py +33 -0
- pyedb/ipc2581/ecad/ecad.py +19 -0
- pyedb/ipc2581/ecad/spec.py +46 -0
- pyedb/ipc2581/history_record.py +37 -0
- pyedb/ipc2581/ipc2581.py +387 -0
- pyedb/ipc2581/logistic_header.py +25 -0
- pyedb/misc/__init__.py +0 -0
- pyedb/misc/aedtlib_personalib_install.py +14 -0
- pyedb/misc/downloads.py +322 -0
- pyedb/misc/misc.py +67 -0
- pyedb/misc/pyedb.runtimeconfig.json +13 -0
- pyedb/misc/siw_feature_config/__init__.py +0 -0
- pyedb/misc/siw_feature_config/emc/__init__.py +0 -0
- pyedb/misc/siw_feature_config/emc/component_tags.py +46 -0
- pyedb/misc/siw_feature_config/emc/net_tags.py +37 -0
- pyedb/misc/siw_feature_config/emc/tag_library.py +62 -0
- pyedb/misc/siw_feature_config/emc/xml_generic.py +78 -0
- pyedb/misc/siw_feature_config/emc_rule_checker_settings.py +179 -0
- pyedb/misc/utilities.py +27 -0
- pyedb/modeler/geometry_operators.py +2082 -0
- pyedb-0.2.0.dist-info/LICENSE +21 -0
- pyedb-0.2.0.dist-info/METADATA +208 -0
- pyedb-0.2.0.dist-info/RECORD +128 -0
- pyedb-0.2.0.dist-info/WHEEL +4 -0
|
@@ -0,0 +1,1063 @@
|
|
|
1
|
+
import math
|
|
2
|
+
import warnings
|
|
3
|
+
|
|
4
|
+
RAD2DEG = 180.0 / math.pi
|
|
5
|
+
DEG2RAD = math.pi / 180
|
|
6
|
+
HOUR2SEC = 3600.0
|
|
7
|
+
MIN2SEC = 60.0
|
|
8
|
+
SEC2MIN = 1 / 60.0
|
|
9
|
+
SEC2HOUR = 1 / 3600.0
|
|
10
|
+
INV2PI = 0.5 / math.pi
|
|
11
|
+
V2PI = 2.0 * math.pi
|
|
12
|
+
METER2IN = 0.0254
|
|
13
|
+
METER2MILES = 1609.344051499
|
|
14
|
+
MILS2METER = 39370.078740157
|
|
15
|
+
SpeedOfLight = 299792458.0
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
def db20(x, inverse=True): # pragma: no cover
|
|
19
|
+
"""Convert db20 to decimal and vice versa."""
|
|
20
|
+
if inverse:
|
|
21
|
+
return 20 * math.log10(x)
|
|
22
|
+
else:
|
|
23
|
+
return math.pow(10, x / 20.0)
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
def db10(x, inverse=True): # pragma: no cover
|
|
27
|
+
"""Convert db10 to decimal and vice versa."""
|
|
28
|
+
if inverse:
|
|
29
|
+
return 10 * math.log10(x)
|
|
30
|
+
else:
|
|
31
|
+
return math.pow(10, x / 10.0)
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
def dbw(x, inverse=True): # pragma: no cover
|
|
35
|
+
"""Convert W to decimal and vice versa."""
|
|
36
|
+
if inverse:
|
|
37
|
+
return 10 * math.log10(x)
|
|
38
|
+
else:
|
|
39
|
+
return math.pow(10, x / 10.0)
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
def dbm(x, inverse=True): # pragma: no cover
|
|
43
|
+
"""Convert W to decimal and vice versa."""
|
|
44
|
+
if inverse:
|
|
45
|
+
return 10 * math.log10(x) + 30
|
|
46
|
+
else:
|
|
47
|
+
return math.pow(10, x / 10.0) / 1000
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
def fah2kel(val, inverse=True): # pragma: no cover
|
|
51
|
+
"""Convert a temperature from Fahrenheit to Kelvin.
|
|
52
|
+
|
|
53
|
+
Parameters
|
|
54
|
+
----------
|
|
55
|
+
val : float
|
|
56
|
+
Temperature value in Fahrenheit.
|
|
57
|
+
inverse : bool, optional
|
|
58
|
+
The default is ``True``.
|
|
59
|
+
|
|
60
|
+
Returns
|
|
61
|
+
-------
|
|
62
|
+
float
|
|
63
|
+
Temperature value converted to Kelvin.
|
|
64
|
+
|
|
65
|
+
"""
|
|
66
|
+
if inverse:
|
|
67
|
+
return (val - 273.15) * 9 / 5 + 32
|
|
68
|
+
else:
|
|
69
|
+
return (val - 32) * 5 / 9 + 273.15
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
def cel2kel(val, inverse=True): # pragma: no cover
|
|
73
|
+
"""Convert a temperature from Celsius to Kelvin.
|
|
74
|
+
|
|
75
|
+
Parameters
|
|
76
|
+
----------
|
|
77
|
+
val : float
|
|
78
|
+
Temperature value in Celsius.
|
|
79
|
+
inverse : bool, optional
|
|
80
|
+
The default is ``True``.
|
|
81
|
+
|
|
82
|
+
Returns
|
|
83
|
+
-------
|
|
84
|
+
float
|
|
85
|
+
Temperature value converted to Kelvin.
|
|
86
|
+
|
|
87
|
+
"""
|
|
88
|
+
|
|
89
|
+
if inverse:
|
|
90
|
+
return val - 273.15
|
|
91
|
+
else:
|
|
92
|
+
return val + 273.15
|
|
93
|
+
|
|
94
|
+
|
|
95
|
+
def unit_system(units): # pragma: no cover
|
|
96
|
+
"""Retrieve the name of the unit system associated with a unit string.
|
|
97
|
+
|
|
98
|
+
Parameters
|
|
99
|
+
----------
|
|
100
|
+
units : str
|
|
101
|
+
Units for retrieving the associated unit system name.
|
|
102
|
+
|
|
103
|
+
Returns
|
|
104
|
+
-------
|
|
105
|
+
str
|
|
106
|
+
Key from the ``AEDT_units`` when successful. For example, ``"AngularSpeed"``.
|
|
107
|
+
``False`` when the units specified are not defined in AEDT units.
|
|
108
|
+
|
|
109
|
+
"""
|
|
110
|
+
|
|
111
|
+
for unit_type, unit_dict in AEDT_UNITS.items():
|
|
112
|
+
if units in unit_dict:
|
|
113
|
+
return unit_type
|
|
114
|
+
|
|
115
|
+
return False
|
|
116
|
+
|
|
117
|
+
|
|
118
|
+
def _resolve_unit_system(unit_system_1, unit_system_2, operation): # pragma: no cover
|
|
119
|
+
"""Retrieve the unit string of an arithmetic operation on ``Variable`` objects. If no resulting unit system
|
|
120
|
+
is defined for a specific operation (in unit_system_operations), an empty string is returned
|
|
121
|
+
|
|
122
|
+
Parameters
|
|
123
|
+
----------
|
|
124
|
+
unit_system_1 : str
|
|
125
|
+
Name of a unit system, which is a key of ``AEDT_units``.
|
|
126
|
+
unit_system_2 : str
|
|
127
|
+
Name of another unit system, which is a key of ``AEDT_units``.
|
|
128
|
+
operation : str
|
|
129
|
+
Name of an operator within the data set of ``["multiply" ,"divide"]``.
|
|
130
|
+
|
|
131
|
+
Returns
|
|
132
|
+
-------
|
|
133
|
+
str
|
|
134
|
+
Unit system when successful, ``""`` when failed.
|
|
135
|
+
|
|
136
|
+
"""
|
|
137
|
+
try:
|
|
138
|
+
key = "{}_{}_{}".format(unit_system_1, operation, unit_system_2)
|
|
139
|
+
result_unit_system = UNIT_SYSTEM_OPERATIONS[key]
|
|
140
|
+
return SI_UNITS[result_unit_system]
|
|
141
|
+
except KeyError:
|
|
142
|
+
return ""
|
|
143
|
+
|
|
144
|
+
|
|
145
|
+
def unit_converter(values, unit_system="Length", input_units="meter", output_units="mm"): # pragma: no cover
|
|
146
|
+
"""Convert unit in specified unit system.
|
|
147
|
+
|
|
148
|
+
Parameters
|
|
149
|
+
----------
|
|
150
|
+
values : float, list
|
|
151
|
+
Values to convert.
|
|
152
|
+
unit_system : str
|
|
153
|
+
Unit system. Default is `"Length"`.
|
|
154
|
+
input_units : str
|
|
155
|
+
Input units. Default is `"meter"`.
|
|
156
|
+
output_units : str
|
|
157
|
+
Output units. Default is `"mm"`.
|
|
158
|
+
|
|
159
|
+
Returns
|
|
160
|
+
-------
|
|
161
|
+
float, list
|
|
162
|
+
Converted value.
|
|
163
|
+
"""
|
|
164
|
+
if unit_system in AEDT_UNITS:
|
|
165
|
+
if input_units not in AEDT_UNITS[unit_system]:
|
|
166
|
+
warnings.warn("Unknown units: '{}'".format(input_units))
|
|
167
|
+
return values
|
|
168
|
+
elif output_units not in AEDT_UNITS[unit_system]:
|
|
169
|
+
warnings.warn("Unknown units: '{}'".format(output_units))
|
|
170
|
+
return values
|
|
171
|
+
else:
|
|
172
|
+
input_is_list = isinstance(values, list)
|
|
173
|
+
if not input_is_list:
|
|
174
|
+
values = [values]
|
|
175
|
+
converted_values = []
|
|
176
|
+
for value in values:
|
|
177
|
+
if unit_system == "Temperature":
|
|
178
|
+
value = AEDT_UNITS[unit_system][input_units](value, False)
|
|
179
|
+
value = AEDT_UNITS[unit_system][output_units](value, output_units != "kel")
|
|
180
|
+
elif not callable(AEDT_UNITS[unit_system][input_units]) and not callable(
|
|
181
|
+
AEDT_UNITS[unit_system][output_units]
|
|
182
|
+
):
|
|
183
|
+
value = value * AEDT_UNITS[unit_system][input_units] / AEDT_UNITS[unit_system][output_units]
|
|
184
|
+
elif not callable(AEDT_UNITS[unit_system][input_units]) and callable(
|
|
185
|
+
AEDT_UNITS[unit_system][output_units]
|
|
186
|
+
):
|
|
187
|
+
value = value * AEDT_UNITS[unit_system][input_units]
|
|
188
|
+
value = AEDT_UNITS[unit_system][output_units](value, True)
|
|
189
|
+
elif callable(AEDT_UNITS[unit_system][input_units]) and not callable(
|
|
190
|
+
AEDT_UNITS[unit_system][output_units]
|
|
191
|
+
):
|
|
192
|
+
value = AEDT_UNITS[unit_system][input_units](value, False) / AEDT_UNITS[unit_system][output_units]
|
|
193
|
+
else:
|
|
194
|
+
value = AEDT_UNITS[unit_system][input_units](value, False)
|
|
195
|
+
value = AEDT_UNITS[unit_system][output_units](value, True)
|
|
196
|
+
|
|
197
|
+
converted_values.append(value)
|
|
198
|
+
if input_is_list:
|
|
199
|
+
return converted_values
|
|
200
|
+
else:
|
|
201
|
+
return converted_values[0]
|
|
202
|
+
warnings.warn("No system unit found")
|
|
203
|
+
return values
|
|
204
|
+
|
|
205
|
+
|
|
206
|
+
def scale_units(scale_to_unit): # pragma: no cover
|
|
207
|
+
"""Find the scale_to_unit into main system unit.
|
|
208
|
+
|
|
209
|
+
Parameters
|
|
210
|
+
----------
|
|
211
|
+
scale_to_unit : str
|
|
212
|
+
Unit to Scale.
|
|
213
|
+
|
|
214
|
+
Returns
|
|
215
|
+
-------
|
|
216
|
+
float
|
|
217
|
+
Return the scaling factor if any.
|
|
218
|
+
"""
|
|
219
|
+
sunit = 1.0
|
|
220
|
+
for val in list(AEDT_UNITS.values()):
|
|
221
|
+
for unit, scale_val in val.items():
|
|
222
|
+
if scale_to_unit.lower() == unit.lower():
|
|
223
|
+
sunit = scale_val
|
|
224
|
+
break
|
|
225
|
+
else:
|
|
226
|
+
continue
|
|
227
|
+
break
|
|
228
|
+
return sunit
|
|
229
|
+
|
|
230
|
+
|
|
231
|
+
def validate_enum_class_value(cls, value): # pragma: no cover
|
|
232
|
+
"""Check whether the value for the class ``enumeration-class`` is valid.
|
|
233
|
+
|
|
234
|
+
Parameters
|
|
235
|
+
----------
|
|
236
|
+
cls : class
|
|
237
|
+
Enumeration-style class with integer members in range(0, N) where cls.Invalid equals N-1.
|
|
238
|
+
value : int
|
|
239
|
+
Value to check.
|
|
240
|
+
|
|
241
|
+
Returns
|
|
242
|
+
-------
|
|
243
|
+
bool
|
|
244
|
+
``True`` when the value is valid for the ``enumeration-class``, ``False`` otherwise.
|
|
245
|
+
"""
|
|
246
|
+
return isinstance(value, int) and value >= 0 and value < cls.Invalid
|
|
247
|
+
|
|
248
|
+
|
|
249
|
+
AEDT_UNITS = {
|
|
250
|
+
"AngularSpeed": {
|
|
251
|
+
"deg_per_hr": HOUR2SEC * DEG2RAD,
|
|
252
|
+
"rad_per_hr": HOUR2SEC,
|
|
253
|
+
"deg_per_min": MIN2SEC * DEG2RAD,
|
|
254
|
+
"rad_per_min": MIN2SEC,
|
|
255
|
+
"deg_per_sec": DEG2RAD,
|
|
256
|
+
"rad_per_sec": 1.0,
|
|
257
|
+
"rev_per_sec": V2PI,
|
|
258
|
+
"per_sec": V2PI,
|
|
259
|
+
"rpm": SEC2MIN * V2PI,
|
|
260
|
+
},
|
|
261
|
+
"Angle": {"deg": DEG2RAD, "rad": 1.0, "degmin": DEG2RAD * SEC2MIN, "degsec": DEG2RAD * SEC2HOUR},
|
|
262
|
+
"Area": {
|
|
263
|
+
"fm2": 1e-30,
|
|
264
|
+
"pm2": 1e-24,
|
|
265
|
+
"nm2": 1e-18,
|
|
266
|
+
"um2": 1e-12,
|
|
267
|
+
"mm2": 1e-6,
|
|
268
|
+
"cm2": 1e-4,
|
|
269
|
+
"dm2": 1e-2,
|
|
270
|
+
"m2": 1.0,
|
|
271
|
+
"meter2": 1.0,
|
|
272
|
+
"km2": 1e6,
|
|
273
|
+
"uin2": METER2IN * 1e-12,
|
|
274
|
+
"mil2": METER2IN * 1e-6,
|
|
275
|
+
"in2": METER2IN,
|
|
276
|
+
"ft2": METER2IN * 24,
|
|
277
|
+
"yd2": METER2IN * 288,
|
|
278
|
+
},
|
|
279
|
+
"Capacitance": {"fF": 1e-15, "pF": 1e-12, "nF": 1e-9, "uF": 1e-6, "mF": 1e-3, "F": 1.0},
|
|
280
|
+
"Conductance": {"fSie": 1e-15, "pSie": 1e-12, "nSie": 1e-9, "uSie": 1e-6, "mSie": 1e-3, "Sie": 1.0},
|
|
281
|
+
"Current": {
|
|
282
|
+
"fA": 1e-15,
|
|
283
|
+
"pA": 1e-12,
|
|
284
|
+
"nA": 1e-9,
|
|
285
|
+
"uA": 1e-6,
|
|
286
|
+
"mA": 1e-3,
|
|
287
|
+
"A": 1.0,
|
|
288
|
+
"kA": 1e3,
|
|
289
|
+
"MegA": 1e6,
|
|
290
|
+
"gA": 1e9,
|
|
291
|
+
"dBA": (db20,),
|
|
292
|
+
},
|
|
293
|
+
"Flux": {"Wb": 1.0, "mx": 1e-8, "vh": 3600, "vs": 1.0},
|
|
294
|
+
"Force": {
|
|
295
|
+
"fNewton": 1e-15,
|
|
296
|
+
"pNewton": 1e-12,
|
|
297
|
+
"nNewton": 1e-9,
|
|
298
|
+
"uNewton": 1e-6,
|
|
299
|
+
"mNewton": 1e-3,
|
|
300
|
+
"newton": 1.0,
|
|
301
|
+
"kNewton": 1e3,
|
|
302
|
+
"megNewton": 1e6,
|
|
303
|
+
"gNewton": 1e9,
|
|
304
|
+
"dyne": 1e-5,
|
|
305
|
+
"kp": 9.80665,
|
|
306
|
+
"PoundsForce": 4.44822,
|
|
307
|
+
},
|
|
308
|
+
"Freq": {"Hz": 1.0, "kHz": 1e3, "MHz": 1e6, "GHz": 1e9, "THz": 1e12, "rps": 1.0, "per_sec": 1.0},
|
|
309
|
+
"Inductance": {"fH": 1e-15, "pH": 1e-12, "nH": 1e-9, "uH": 1e-6, "mH": 1e-3, "H": 1.0},
|
|
310
|
+
"Length": {
|
|
311
|
+
"fm": 1e-15,
|
|
312
|
+
"pm": 1e-12,
|
|
313
|
+
"nm": 1e-9,
|
|
314
|
+
"um": 1e-6,
|
|
315
|
+
"mm": 1e-3,
|
|
316
|
+
"cm": 1e-2,
|
|
317
|
+
"dm": 1e-1,
|
|
318
|
+
"meter": 1.0,
|
|
319
|
+
"meters": 1.0,
|
|
320
|
+
"km": 1e3,
|
|
321
|
+
"uin": METER2IN * 1e-6,
|
|
322
|
+
"mil": METER2IN * 1e-3,
|
|
323
|
+
"in": METER2IN,
|
|
324
|
+
"ft": METER2IN * 12,
|
|
325
|
+
"yd": METER2IN * 144,
|
|
326
|
+
},
|
|
327
|
+
"Mass": {"ug": 1e-9, "mg": 1e-6, "g": 1e-3, "kg": 1.0, "ton": 1000, "oz": 0.0283495, "lb": 0.453592},
|
|
328
|
+
"None": {
|
|
329
|
+
"f": 1e-15,
|
|
330
|
+
"p": 1e-12,
|
|
331
|
+
"n": 1e-9,
|
|
332
|
+
"u": 1e-6,
|
|
333
|
+
"m": 1e-3,
|
|
334
|
+
"": 1.0,
|
|
335
|
+
"k": 1e3,
|
|
336
|
+
"meg": 1e6,
|
|
337
|
+
"g": 1e9,
|
|
338
|
+
"t": 1e12,
|
|
339
|
+
},
|
|
340
|
+
"Resistance": {"uOhm": 1e-6, "mOhm": 1e-3, "ohm": 1.0, "kOhm": 1e3, "megohm": 1e6, "GOhm": 1e9},
|
|
341
|
+
"Speed": {
|
|
342
|
+
"mm_per_sec": 1e-3,
|
|
343
|
+
"cm_per_sec": 1e-2,
|
|
344
|
+
"m_per_sec": 1.0,
|
|
345
|
+
"km_per_sec": 1e3,
|
|
346
|
+
"inches_per_sec": METER2IN,
|
|
347
|
+
"feet_per_sec": METER2IN * 12,
|
|
348
|
+
"feet_per_min": METER2IN * 12 * SEC2MIN,
|
|
349
|
+
"km_per_min": 60e3,
|
|
350
|
+
"m_per_h": 3600,
|
|
351
|
+
"miles_per_hour": METER2MILES * SEC2HOUR,
|
|
352
|
+
"miles_per_minute": METER2MILES * SEC2MIN,
|
|
353
|
+
"miles_per_sec": METER2MILES,
|
|
354
|
+
},
|
|
355
|
+
"Time": {
|
|
356
|
+
"fs": 1e-15,
|
|
357
|
+
"ps": 1e-12,
|
|
358
|
+
"ns": 1e-9,
|
|
359
|
+
"us": 1e-6,
|
|
360
|
+
"ms": 1e-3,
|
|
361
|
+
"s": 1,
|
|
362
|
+
"min": 60,
|
|
363
|
+
"hour": 3600,
|
|
364
|
+
"day": 3600 * 12,
|
|
365
|
+
},
|
|
366
|
+
"Torque": {
|
|
367
|
+
"fNewtonMeter": 1e-15,
|
|
368
|
+
"pNewtonMeter": 1e-12,
|
|
369
|
+
"nNewtonMeter": 1e-9,
|
|
370
|
+
"uNewtonMeter": 1e-6,
|
|
371
|
+
"mNewtonMeter": 1e-3,
|
|
372
|
+
"cNewtonMeter": 1e-2,
|
|
373
|
+
"NewtonMeter": 1,
|
|
374
|
+
"kNewtonMeter": 1e3,
|
|
375
|
+
"megNewtonMeter": 1e6,
|
|
376
|
+
"gNewtonMeter": 1e9,
|
|
377
|
+
},
|
|
378
|
+
"Voltage": {
|
|
379
|
+
"fV": 1e-15,
|
|
380
|
+
"pV": 1e-12,
|
|
381
|
+
"nV": 1e-9,
|
|
382
|
+
"uV": 1e-6,
|
|
383
|
+
"mV": 1e-3,
|
|
384
|
+
"V": 1.0,
|
|
385
|
+
"kV": 1e3,
|
|
386
|
+
"MegV": 1e6,
|
|
387
|
+
"gV": 1e9,
|
|
388
|
+
"dBV": db20,
|
|
389
|
+
},
|
|
390
|
+
"Temperature": {"kel": lambda x, y: x, "cel": cel2kel, "fah": fah2kel},
|
|
391
|
+
"Power": {
|
|
392
|
+
"fW": 1e-15,
|
|
393
|
+
"pW": 1e-12,
|
|
394
|
+
"nW": 1e-9,
|
|
395
|
+
"uW": 1e-6,
|
|
396
|
+
"mW": 1e-3,
|
|
397
|
+
"W": 1.0,
|
|
398
|
+
"kW": 1e3,
|
|
399
|
+
"megW": 1e6,
|
|
400
|
+
"gW": 1e9,
|
|
401
|
+
"Btu_per_hr": 3.4129693,
|
|
402
|
+
"Btu_per_sec": 9.48047e-4,
|
|
403
|
+
"dBm": dbm,
|
|
404
|
+
"dBW": dbw,
|
|
405
|
+
"HP": 1.34102e-3,
|
|
406
|
+
"erg_per_sec": 1e7,
|
|
407
|
+
},
|
|
408
|
+
"B-field": {
|
|
409
|
+
"ftesla": 1e-15,
|
|
410
|
+
"ptesla": 1e-12,
|
|
411
|
+
"ntesla": 1e-9,
|
|
412
|
+
"utesla": 1e-6,
|
|
413
|
+
"mtesla": 1e-3,
|
|
414
|
+
"tesla": 1.0,
|
|
415
|
+
"ktesla": 1e3,
|
|
416
|
+
"megtesla": 1e6,
|
|
417
|
+
"gtesla": 1e9,
|
|
418
|
+
},
|
|
419
|
+
"E-field": {
|
|
420
|
+
"fV_per_m": 1e-15,
|
|
421
|
+
"pV_per_m": 1e-12,
|
|
422
|
+
"nV_per_m": 1e-9,
|
|
423
|
+
"uV_per_m": 1e-6,
|
|
424
|
+
"mV_per_m": 1e-3,
|
|
425
|
+
"V_per_m": 1.0,
|
|
426
|
+
"kV_per_m": 1e3,
|
|
427
|
+
"megV_per_m": 1e6,
|
|
428
|
+
"gV_per_m": 1e9,
|
|
429
|
+
"fV_per_meter": 1e-15,
|
|
430
|
+
"pV_per_meter": 1e-12,
|
|
431
|
+
"nV_per_meter": 1e-9,
|
|
432
|
+
"uV_per_meter": 1e-6,
|
|
433
|
+
"mV_per_meter": 1e-3,
|
|
434
|
+
"V_per_meter": 1.0,
|
|
435
|
+
"kV_per_meter": 1e3,
|
|
436
|
+
"megV_per_meter": 1e6,
|
|
437
|
+
"gV_per_meter": 1e9,
|
|
438
|
+
},
|
|
439
|
+
"H-field": {
|
|
440
|
+
"fA_per_m": 1e-15,
|
|
441
|
+
"pA_per_m": 1e-12,
|
|
442
|
+
"nA_per_m": 1e-9,
|
|
443
|
+
"uA_per_m": 1e-6,
|
|
444
|
+
"mA_per_m": 1e-3,
|
|
445
|
+
"A_per_m": 1.0,
|
|
446
|
+
"kA_per_m": 1e3,
|
|
447
|
+
"megA_per_m": 1e6,
|
|
448
|
+
"gA_per_m": 1e9,
|
|
449
|
+
"fA_per_meter": 1e-15,
|
|
450
|
+
"pA_per_meter": 1e-12,
|
|
451
|
+
"nA_per_meter": 1e-9,
|
|
452
|
+
"uA_per_meter": 1e-6,
|
|
453
|
+
"mA_per_meter": 1e-3,
|
|
454
|
+
"A_per_meter": 1.0,
|
|
455
|
+
"kA_per_meter": 1e3,
|
|
456
|
+
"megA_per_meter": 1e6,
|
|
457
|
+
"gA_per_meter": 1e9,
|
|
458
|
+
},
|
|
459
|
+
"SurfaceHeat": {
|
|
460
|
+
"uW_per_m2": 1e-6,
|
|
461
|
+
"mW_per_m2": 1e-3,
|
|
462
|
+
"irrad_W_per_m2": 1.0,
|
|
463
|
+
"W_per_m2": 1.0,
|
|
464
|
+
"kW_per_m2": 1e3,
|
|
465
|
+
"megW_per_m2": 1e6,
|
|
466
|
+
"irrad_W_per_cm2": 1e4,
|
|
467
|
+
"W_per_cm2": 1e4,
|
|
468
|
+
"W_per_in2": 1550,
|
|
469
|
+
"erg_per_s_per_cm2": 1e-3,
|
|
470
|
+
"btu_per_hr_per_ft2": 3.15,
|
|
471
|
+
"btu_per_s_per_ft2": 11356.53,
|
|
472
|
+
"irrad_W_per_mm2": 1e6,
|
|
473
|
+
"irrad_met": 1.0,
|
|
474
|
+
},
|
|
475
|
+
"J-field": {
|
|
476
|
+
"fA_per_m2": 1e-15,
|
|
477
|
+
"pA_per_m2": 1e-12,
|
|
478
|
+
"nA_per_m2": 1e-9,
|
|
479
|
+
"uA_per_m2": 1e-6,
|
|
480
|
+
"mA_per_m2": 1e-3,
|
|
481
|
+
"A_per_m2": 1.0,
|
|
482
|
+
"kA_per_m2": 1e3,
|
|
483
|
+
"megA_per_m2": 1e6,
|
|
484
|
+
"gA_per_m2": 1e9,
|
|
485
|
+
"fA_per_meter2": 1e-15,
|
|
486
|
+
"pA_per_meter2": 1e-12,
|
|
487
|
+
"nA_per_meter2": 1e-9,
|
|
488
|
+
"uA_per_meter2": 1e-6,
|
|
489
|
+
"mA_per_meter2": 1e-3,
|
|
490
|
+
"A_per_meter2": 1.0,
|
|
491
|
+
"kA_per_meter2": 1e3,
|
|
492
|
+
"megA_per_meter2": 1e6,
|
|
493
|
+
"gA_per_meter2": 1e9,
|
|
494
|
+
},
|
|
495
|
+
}
|
|
496
|
+
SI_UNITS = {
|
|
497
|
+
"AngularSpeed": "rad_per_sec",
|
|
498
|
+
"Angle": "rad",
|
|
499
|
+
"Area": "m2",
|
|
500
|
+
"Capacitance": "F",
|
|
501
|
+
"Conductance": "Sie",
|
|
502
|
+
"Current": "A",
|
|
503
|
+
"Flux": "vs",
|
|
504
|
+
"Force": "newton",
|
|
505
|
+
"Freq": "Hz",
|
|
506
|
+
"Inductance": "H",
|
|
507
|
+
"Length": "meter",
|
|
508
|
+
"Mass": "kg",
|
|
509
|
+
"None": "",
|
|
510
|
+
"Resistance": "ohm",
|
|
511
|
+
"Speed": "m_per_sec",
|
|
512
|
+
"SurfaceHeat": "W_per_m2",
|
|
513
|
+
"Time": "s",
|
|
514
|
+
"Torque": "NewtonMeter",
|
|
515
|
+
"Voltage": "V",
|
|
516
|
+
"Temperature": "kel",
|
|
517
|
+
"Power": "W",
|
|
518
|
+
"B-field": "tesla",
|
|
519
|
+
"E-field": "V_per_meter",
|
|
520
|
+
"H-field": "A_per_meter",
|
|
521
|
+
"J-field": "A_per_m2",
|
|
522
|
+
}
|
|
523
|
+
UNIT_SYSTEM_OPERATIONS = {
|
|
524
|
+
# Multiplication of physical domains
|
|
525
|
+
"Voltage_multiply_Current": "Power",
|
|
526
|
+
"Torque_multiply_AngularSpeed": "Power",
|
|
527
|
+
"AngularSpeed_multiply_Time": "Angle",
|
|
528
|
+
"Current_multiply_Resistance": "Voltage",
|
|
529
|
+
"AngularSpeed_multiply_Inductance": "Resistance",
|
|
530
|
+
"Speed_multiply_Time": "Length",
|
|
531
|
+
# Division of Physical Domains
|
|
532
|
+
"Power_divide_Voltage": "Current",
|
|
533
|
+
"Power_divide_Current": "Voltage",
|
|
534
|
+
"Power_divide_AngularSpeed": "Torque",
|
|
535
|
+
"Power_divide_Torque": "AngularSpeed",
|
|
536
|
+
"Angle_divide_AngularSpeed": "Time",
|
|
537
|
+
"Angle_divide_Time": "AngularSpeed",
|
|
538
|
+
"Voltage_divide_Current": "Resistance",
|
|
539
|
+
"Voltage_divide_Resistance": "Current",
|
|
540
|
+
"Resistance_divide_AngularSpeed": "Inductance",
|
|
541
|
+
"Resistance_divide_Inductance": "AngularSpeed",
|
|
542
|
+
"None_divide_Freq": "Time",
|
|
543
|
+
"None_divide_Time": "Freq",
|
|
544
|
+
"Length_divide_Time": "Speed",
|
|
545
|
+
"Length_divide_Speed": "Time",
|
|
546
|
+
}
|
|
547
|
+
|
|
548
|
+
|
|
549
|
+
class INFINITE_SPHERE_TYPE(object):
|
|
550
|
+
"""INFINITE_SPHERE_TYPE Enumerator class."""
|
|
551
|
+
|
|
552
|
+
(ThetaPhi, AzOverEl, ElOverAz) = ("Theta-Phi", "Az Over El", "El Over Az")
|
|
553
|
+
|
|
554
|
+
|
|
555
|
+
class FILLET(object):
|
|
556
|
+
"""FilletType Enumerator class."""
|
|
557
|
+
|
|
558
|
+
(Round, Mitered) = range(0, 2)
|
|
559
|
+
|
|
560
|
+
|
|
561
|
+
class AXIS(object):
|
|
562
|
+
"""CoordinateSystemAxis Enumerator class."""
|
|
563
|
+
|
|
564
|
+
(X, Y, Z) = range(0, 3)
|
|
565
|
+
|
|
566
|
+
|
|
567
|
+
class PLANE(object):
|
|
568
|
+
"""CoordinateSystemPlane Enumerator class."""
|
|
569
|
+
|
|
570
|
+
(YZ, ZX, XY) = range(0, 3)
|
|
571
|
+
|
|
572
|
+
|
|
573
|
+
class GRAVITY(object):
|
|
574
|
+
"""GravityDirection Enumerator class."""
|
|
575
|
+
|
|
576
|
+
(XNeg, YNeg, ZNeg, XPos, YPos, ZPos) = range(0, 6)
|
|
577
|
+
|
|
578
|
+
|
|
579
|
+
class VIEW(object):
|
|
580
|
+
"""View Enumerator class."""
|
|
581
|
+
|
|
582
|
+
(XY, YZ, ZX, ISO) = ("XY", "YZ", "ZX", "iso")
|
|
583
|
+
|
|
584
|
+
|
|
585
|
+
class GLOBALCS(object):
|
|
586
|
+
"""GlobalCS Enumerator class."""
|
|
587
|
+
|
|
588
|
+
(XY, YZ, ZX) = ("Global:XY", "Global:YZ", "Global:XZ")
|
|
589
|
+
|
|
590
|
+
|
|
591
|
+
class MATRIXOPERATIONSQ3D(object):
|
|
592
|
+
"""Matrix Reduction types."""
|
|
593
|
+
|
|
594
|
+
(JoinSeries, JoinParallel, FloatNet, GroundNet, FloatTerminal, FloatInfinity, ReturnPath, AddSink, MoveSink) = (
|
|
595
|
+
"JoinSeries",
|
|
596
|
+
"JoinParallel",
|
|
597
|
+
"FloatNet",
|
|
598
|
+
"GroundNet",
|
|
599
|
+
"FloatTerminal",
|
|
600
|
+
"FloatInfinity",
|
|
601
|
+
"ReturnPath",
|
|
602
|
+
"AddSink",
|
|
603
|
+
"MoveSink",
|
|
604
|
+
)
|
|
605
|
+
|
|
606
|
+
|
|
607
|
+
class MATRIXOPERATIONSQ2D(object):
|
|
608
|
+
"""Matrix Reduction types."""
|
|
609
|
+
|
|
610
|
+
(AddGround, SetReferenceGround, Float, Parallel, DiffPair) = (
|
|
611
|
+
"AddGround",
|
|
612
|
+
"SetReferenceGround",
|
|
613
|
+
"Float",
|
|
614
|
+
"Parallel",
|
|
615
|
+
"DiffPair",
|
|
616
|
+
)
|
|
617
|
+
|
|
618
|
+
|
|
619
|
+
class CATEGORIESQ3D(object):
|
|
620
|
+
"""Plot Categories for Q2d and Q3d."""
|
|
621
|
+
|
|
622
|
+
class Q2D(object):
|
|
623
|
+
(
|
|
624
|
+
CMatrix,
|
|
625
|
+
GMatrix,
|
|
626
|
+
RMatrix,
|
|
627
|
+
LMatrix,
|
|
628
|
+
LumpedC,
|
|
629
|
+
LumpedG,
|
|
630
|
+
LumpedR,
|
|
631
|
+
LumpedL,
|
|
632
|
+
CharacteristicImpedance,
|
|
633
|
+
CrossTalkForward,
|
|
634
|
+
LumpedCrossTalkForward,
|
|
635
|
+
CrossTalkBackward,
|
|
636
|
+
) = ("C", "G", "R", "L", "lumpC", "lumpG", "lumpR", "lumpL", "Z0", "Kf", "lumpKf", "Kb")
|
|
637
|
+
|
|
638
|
+
class Q3D(object):
|
|
639
|
+
(C, G, DCL, DCR, ACL, ACR) = ("C", "G", "DCL", "DCR", "ACL", "ACR")
|
|
640
|
+
|
|
641
|
+
|
|
642
|
+
class CSMODE(object):
|
|
643
|
+
"""COORDINATE SYSTEM MODE Enumerator class."""
|
|
644
|
+
|
|
645
|
+
(View, Axis, ZXZ, ZYZ, AXISROTATION) = ("view", "axis", "zxz", "zyz", "axisrotation")
|
|
646
|
+
|
|
647
|
+
|
|
648
|
+
class SEGMENTTYPE(object):
|
|
649
|
+
"""CROSSSECTION Enumerator class."""
|
|
650
|
+
|
|
651
|
+
(Line, Arc, Spline, AngularArc) = range(0, 4)
|
|
652
|
+
|
|
653
|
+
|
|
654
|
+
class CROSSSECTION(object):
|
|
655
|
+
"""CROSSSECTION Enumerator class."""
|
|
656
|
+
|
|
657
|
+
(NONE, Line, Circle, Rectangle, Trapezoid) = range(0, 5)
|
|
658
|
+
|
|
659
|
+
|
|
660
|
+
class SWEEPDRAFT(object):
|
|
661
|
+
"""SweepDraftType Enumerator class."""
|
|
662
|
+
|
|
663
|
+
(Extended, Round, Natural, Mixed) = range(0, 4)
|
|
664
|
+
|
|
665
|
+
|
|
666
|
+
class FlipChipOrientation(object):
|
|
667
|
+
"""Chip orientation enumerator class."""
|
|
668
|
+
|
|
669
|
+
(Up, Down) = range(0, 2)
|
|
670
|
+
|
|
671
|
+
|
|
672
|
+
class SolverType(object):
|
|
673
|
+
"""Provides solver type classes."""
|
|
674
|
+
|
|
675
|
+
(Hfss, Siwave, Q3D, Maxwell, Nexxim, TwinBuilder, Hfss3dLayout, SiwaveSYZ, SiwaveDC) = range(0, 9)
|
|
676
|
+
|
|
677
|
+
|
|
678
|
+
class CutoutSubdesignType(object):
|
|
679
|
+
(BoundingBox, Conformal, ConvexHull, Invalid) = range(0, 4)
|
|
680
|
+
|
|
681
|
+
|
|
682
|
+
class RadiationBoxType(object):
|
|
683
|
+
(BoundingBox, Conformal, ConvexHull, Polygon, Invalid) = range(0, 5)
|
|
684
|
+
|
|
685
|
+
|
|
686
|
+
class SweepType(object):
|
|
687
|
+
(Linear, LogCount, Invalid) = range(0, 3)
|
|
688
|
+
|
|
689
|
+
|
|
690
|
+
class BasisOrder(object):
|
|
691
|
+
"""Enumeration-class for HFSS basis order settings.
|
|
692
|
+
|
|
693
|
+
|
|
694
|
+
Warning: the value ``single`` has been renamed to ``Single`` for consistency. Please update references to
|
|
695
|
+
``single``.
|
|
696
|
+
"""
|
|
697
|
+
|
|
698
|
+
(Mixed, Zero, Single, Double, Invalid) = (-1, 0, 1, 2, 3)
|
|
699
|
+
|
|
700
|
+
|
|
701
|
+
class NodeType(object):
|
|
702
|
+
"""Type of node for source creation."""
|
|
703
|
+
|
|
704
|
+
(Positive, Negative, Floating) = range(0, 3)
|
|
705
|
+
|
|
706
|
+
|
|
707
|
+
class SourceType(object):
|
|
708
|
+
"""Type of excitation enumerator."""
|
|
709
|
+
|
|
710
|
+
(CoaxPort, CircPort, LumpedPort, Vsource, Isource, Rlc, DcTerminal) = range(0, 7)
|
|
711
|
+
|
|
712
|
+
|
|
713
|
+
class SOLUTIONS(object):
|
|
714
|
+
"""Provides the names of default solution types."""
|
|
715
|
+
|
|
716
|
+
class Hfss(object):
|
|
717
|
+
"""Provides HFSS solution types."""
|
|
718
|
+
|
|
719
|
+
(DrivenModal, DrivenTerminal, EigenMode, Transient, SBR, Characteristic) = (
|
|
720
|
+
"Modal",
|
|
721
|
+
"Terminal",
|
|
722
|
+
"Eigenmode",
|
|
723
|
+
"Transient Network",
|
|
724
|
+
"SBR+",
|
|
725
|
+
"Characteristic",
|
|
726
|
+
)
|
|
727
|
+
|
|
728
|
+
class Maxwell3d(object):
|
|
729
|
+
"""Provides Maxwell 3D solution types."""
|
|
730
|
+
|
|
731
|
+
(
|
|
732
|
+
Transient,
|
|
733
|
+
Magnetostatic,
|
|
734
|
+
EddyCurrent,
|
|
735
|
+
ElectroStatic,
|
|
736
|
+
ElectroDCConduction,
|
|
737
|
+
ElectroDCTransient,
|
|
738
|
+
TransientAPhiFormulation,
|
|
739
|
+
) = (
|
|
740
|
+
"Transient",
|
|
741
|
+
"Magnetostatic",
|
|
742
|
+
"EddyCurrent",
|
|
743
|
+
"Electrostatic",
|
|
744
|
+
"ElectroDCConduction",
|
|
745
|
+
"ElectricTransient",
|
|
746
|
+
"TransientAPhiFormulation",
|
|
747
|
+
)
|
|
748
|
+
|
|
749
|
+
class Maxwell2d(object):
|
|
750
|
+
"""Provides Maxwell 2D solution types."""
|
|
751
|
+
|
|
752
|
+
(
|
|
753
|
+
TransientXY,
|
|
754
|
+
TransientZ,
|
|
755
|
+
MagnetostaticXY,
|
|
756
|
+
MagnetostaticZ,
|
|
757
|
+
EddyCurrentXY,
|
|
758
|
+
EddyCurrentZ,
|
|
759
|
+
ElectroStaticXY,
|
|
760
|
+
ElectroStaticZ,
|
|
761
|
+
ElectroDCConductionX,
|
|
762
|
+
ElectroDCConductionZ,
|
|
763
|
+
ElectroDCTransientXY,
|
|
764
|
+
ElectroDCTransientZ,
|
|
765
|
+
) = (
|
|
766
|
+
"TransientXY",
|
|
767
|
+
"TransientZ",
|
|
768
|
+
"MagnetostaticXY",
|
|
769
|
+
"MagnetostaticZ",
|
|
770
|
+
"EddyCurrentXY",
|
|
771
|
+
"EddyCurrentZ",
|
|
772
|
+
"ElectrostaticXY",
|
|
773
|
+
"ElectrostaticZ",
|
|
774
|
+
"ElectroDCConductionXY",
|
|
775
|
+
"ElectroDCConductionZ",
|
|
776
|
+
"ElectricTransientXY",
|
|
777
|
+
"ElectricTransientZ",
|
|
778
|
+
)
|
|
779
|
+
|
|
780
|
+
class Icepak(object):
|
|
781
|
+
"""Provides Icepak solution types."""
|
|
782
|
+
|
|
783
|
+
(
|
|
784
|
+
SteadyTemperatureAndFlow,
|
|
785
|
+
SteadyTemperatureOnly,
|
|
786
|
+
SteadyFlowOnly,
|
|
787
|
+
TransientTemperatureAndFlow,
|
|
788
|
+
TransientTemperatureOnly,
|
|
789
|
+
TransientFlowOnly,
|
|
790
|
+
) = (
|
|
791
|
+
"SteadyStateTemperatureAndFlow",
|
|
792
|
+
"SteadyStateTemperatureOnly",
|
|
793
|
+
"SteadyStateFlowOnly",
|
|
794
|
+
"TransientTemperatureAndFlow",
|
|
795
|
+
"TransientTemperatureOnly",
|
|
796
|
+
"TransientFlowOnly",
|
|
797
|
+
)
|
|
798
|
+
|
|
799
|
+
class Circuit(object):
|
|
800
|
+
"""Provides Circuit solution types."""
|
|
801
|
+
|
|
802
|
+
(
|
|
803
|
+
NexximLNA,
|
|
804
|
+
NexximDC,
|
|
805
|
+
NexximTransient,
|
|
806
|
+
NexximQuickEye,
|
|
807
|
+
NexximVerifEye,
|
|
808
|
+
NexximAMI,
|
|
809
|
+
NexximOscillatorRSF,
|
|
810
|
+
NexximOscillator1T,
|
|
811
|
+
NexximOscillatorNT,
|
|
812
|
+
NexximHarmonicBalance1T,
|
|
813
|
+
NexximHarmonicBalanceNT,
|
|
814
|
+
NexximSystem,
|
|
815
|
+
NexximTVNoise,
|
|
816
|
+
HSPICE,
|
|
817
|
+
TR,
|
|
818
|
+
) = (
|
|
819
|
+
"NexximLNA",
|
|
820
|
+
"NexximDC",
|
|
821
|
+
"NexximTransient",
|
|
822
|
+
"NexximQuickEye",
|
|
823
|
+
"NexximVerifEye",
|
|
824
|
+
"NexximAMI",
|
|
825
|
+
"NexximOscillatorRSF",
|
|
826
|
+
"NexximOscillator1T",
|
|
827
|
+
"NexximOscillatorNT",
|
|
828
|
+
"NexximHarmonicBalance1T",
|
|
829
|
+
"NexximHarmonicBalanceNT",
|
|
830
|
+
"NexximSystem",
|
|
831
|
+
"NexximTVNoise",
|
|
832
|
+
"HSPICE",
|
|
833
|
+
"TR",
|
|
834
|
+
)
|
|
835
|
+
|
|
836
|
+
class Mechanical(object):
|
|
837
|
+
"""Provides Mechanical solution types."""
|
|
838
|
+
|
|
839
|
+
(Thermal, Structural, Modal) = ("Thermal", "Structural", "Modal")
|
|
840
|
+
|
|
841
|
+
|
|
842
|
+
class SETUPS(object):
|
|
843
|
+
"""Provides constants for the default setup types."""
|
|
844
|
+
|
|
845
|
+
(
|
|
846
|
+
HFSSDrivenAuto,
|
|
847
|
+
HFSSDrivenDefault,
|
|
848
|
+
HFSSEigen,
|
|
849
|
+
HFSSTransient,
|
|
850
|
+
HFSSSBR,
|
|
851
|
+
MaxwellTransient,
|
|
852
|
+
Magnetostatic,
|
|
853
|
+
EddyCurrent,
|
|
854
|
+
Electrostatic,
|
|
855
|
+
ElectrostaticDC,
|
|
856
|
+
ElectricTransient,
|
|
857
|
+
SteadyTemperatureAndFlow,
|
|
858
|
+
SteadyTemperatureOnly,
|
|
859
|
+
SteadyFlowOnly,
|
|
860
|
+
Matrix,
|
|
861
|
+
NexximLNA,
|
|
862
|
+
NexximDC,
|
|
863
|
+
NexximTransient,
|
|
864
|
+
NexximQuickEye,
|
|
865
|
+
NexximVerifEye,
|
|
866
|
+
NexximAMI,
|
|
867
|
+
NexximOscillatorRSF,
|
|
868
|
+
NexximOscillator1T,
|
|
869
|
+
NexximOscillatorNT,
|
|
870
|
+
NexximHarmonicBalance1T,
|
|
871
|
+
NexximHarmonicBalanceNT,
|
|
872
|
+
NexximSystem,
|
|
873
|
+
NexximTVNoise,
|
|
874
|
+
HSPICE,
|
|
875
|
+
HFSS3DLayout,
|
|
876
|
+
Open,
|
|
877
|
+
Close,
|
|
878
|
+
MechTerm,
|
|
879
|
+
MechModal,
|
|
880
|
+
GRM,
|
|
881
|
+
TR,
|
|
882
|
+
TransientTemperatureAndFlow,
|
|
883
|
+
TransientTemperatureOnly,
|
|
884
|
+
TransientFlowOnly,
|
|
885
|
+
DFIG,
|
|
886
|
+
TPIM,
|
|
887
|
+
SPIM,
|
|
888
|
+
TPSM,
|
|
889
|
+
BLDC,
|
|
890
|
+
ASSM,
|
|
891
|
+
PMDC,
|
|
892
|
+
SRM,
|
|
893
|
+
LSSM,
|
|
894
|
+
UNIM,
|
|
895
|
+
DCM,
|
|
896
|
+
CPSM,
|
|
897
|
+
NSSM,
|
|
898
|
+
) = range(0, 52)
|
|
899
|
+
|
|
900
|
+
|
|
901
|
+
CSS4_COLORS = {
|
|
902
|
+
"chocolate": "#D2691E",
|
|
903
|
+
"darkgreen": "#006400",
|
|
904
|
+
"orangered": "#FF4500",
|
|
905
|
+
"darkseagreen": "#8FBC8F",
|
|
906
|
+
"darkmagenta": "#8B008B",
|
|
907
|
+
"saddlebrown": "#8B4513",
|
|
908
|
+
"mediumaquamarine": "#66CDAA",
|
|
909
|
+
"limegreen": "#32CD32",
|
|
910
|
+
"blue": "#0000FF",
|
|
911
|
+
"mediumseagreen": "#3CB371",
|
|
912
|
+
"peru": "#CD853F",
|
|
913
|
+
"turquoise": "#40E0D0",
|
|
914
|
+
"darkcyan": "#008B8B",
|
|
915
|
+
"olivedrab": "#6B8E23",
|
|
916
|
+
"cyan": "#00FFFF",
|
|
917
|
+
"aquamarine": "#7FFFD4",
|
|
918
|
+
"powderblue": "#B0E0E6",
|
|
919
|
+
"hotpink": "#FF69B4",
|
|
920
|
+
"palegreen": "#98FB98",
|
|
921
|
+
"darkturquoise": "#00CED1",
|
|
922
|
+
"magenta": "#FF00FF",
|
|
923
|
+
"slateblue": "#6A5ACD",
|
|
924
|
+
"lightgreen": "#90EE90",
|
|
925
|
+
"sienna": "#A0522D",
|
|
926
|
+
"darkorchid": "#9932CC",
|
|
927
|
+
"orange": "#FFA500",
|
|
928
|
+
"forestgreen": "#228B22",
|
|
929
|
+
"palegoldenrod": "#EEE8AA",
|
|
930
|
+
"blueviolet": "#8A2BE2",
|
|
931
|
+
"royalblue": "#4169E1",
|
|
932
|
+
"teal": "#008080",
|
|
933
|
+
"darkgoldenrod": "#B8860B",
|
|
934
|
+
"lightskyblue": "#87CEFA",
|
|
935
|
+
"lime": "#00FF00",
|
|
936
|
+
"orchid": "#DA70D6",
|
|
937
|
+
"mediumorchid": "#BA55D3",
|
|
938
|
+
"indigo": "#4B0082",
|
|
939
|
+
"mediumspringgreen": "#00FA9A",
|
|
940
|
+
"tomato": "#FF6347",
|
|
941
|
+
"mediumblue": "#0000CD",
|
|
942
|
+
"midnightblue": "#191970",
|
|
943
|
+
"deepskyblue": "#00BFFF",
|
|
944
|
+
"salmon": "#FA8072",
|
|
945
|
+
"rosybrown": "#BC8F8F",
|
|
946
|
+
"mediumslateblue": "#7B68EE",
|
|
947
|
+
"moccasin": "#FFE4B5",
|
|
948
|
+
"paleturquoise": "#AFEEEE",
|
|
949
|
+
"darkblue": "#00008B",
|
|
950
|
+
"navy": "#000080",
|
|
951
|
+
"steelblue": "#4682B4",
|
|
952
|
+
"crimson": "#DC143C",
|
|
953
|
+
"red": "#FF0000",
|
|
954
|
+
"bisque": "#FFE4C4",
|
|
955
|
+
"darkslategray": "#2F4F4F",
|
|
956
|
+
"maroon": "#800000",
|
|
957
|
+
"mediumpurple": "#9370DB",
|
|
958
|
+
"darkslateblue": "#483D8B",
|
|
959
|
+
"darksalmon": "#E9967A",
|
|
960
|
+
"deeppink": "#FF1493",
|
|
961
|
+
"seagreen": "#2E8B57",
|
|
962
|
+
"mediumvioletred": "#C71585",
|
|
963
|
+
"greenyellow": "#ADFF2F",
|
|
964
|
+
"springgreen": "#00FF7F",
|
|
965
|
+
"sandybrown": "#F4A460",
|
|
966
|
+
"brown": "#A52A2A",
|
|
967
|
+
"lightpink": "#FFB6C1",
|
|
968
|
+
"olive": "#808000",
|
|
969
|
+
"burlywood": "#DEB887",
|
|
970
|
+
"dodgerblue": "#1E90FF",
|
|
971
|
+
"darkolivegreen": "#556B2F",
|
|
972
|
+
"lightsalmon": "#FFA07A",
|
|
973
|
+
"aqua": "#00FFFF",
|
|
974
|
+
"khaki": "#F0E68C",
|
|
975
|
+
"pink": "#FFC0CB",
|
|
976
|
+
"green": "#008000",
|
|
977
|
+
"darkorange": "#FF8C00",
|
|
978
|
+
"rebeccapurple": "#663399",
|
|
979
|
+
"coral": "#FF7F50",
|
|
980
|
+
"darkviolet": "#9400D3",
|
|
981
|
+
"purple": "#800080",
|
|
982
|
+
"palevioletred": "#DB7093",
|
|
983
|
+
"lightseagreen": "#20B2AA",
|
|
984
|
+
"indianred": "#CD5C5C",
|
|
985
|
+
"darkkhaki": "#BDB76B",
|
|
986
|
+
"lightcoral": "#F08080",
|
|
987
|
+
"mediumturquoise": "#48D1CC",
|
|
988
|
+
"peachpuff": "#FFDAB9",
|
|
989
|
+
"skyblue": "#87CEEB",
|
|
990
|
+
"fuchsia": "#FF00FF",
|
|
991
|
+
"navajowhite": "#FFDEAD",
|
|
992
|
+
"lawngreen": "#7CFC00",
|
|
993
|
+
"cornflowerblue": "#6495ED",
|
|
994
|
+
"tan": "#D2B48C",
|
|
995
|
+
"darkred": "#8B0000",
|
|
996
|
+
"firebrick": "#B22222",
|
|
997
|
+
"gold": "#FFD700",
|
|
998
|
+
"yellow": "#FFFF00",
|
|
999
|
+
"wheat": "#F5DEB3",
|
|
1000
|
+
"chartreuse": "#7FFF00",
|
|
1001
|
+
"goldenrod": "#DAA520",
|
|
1002
|
+
"violet": "#EE82EE",
|
|
1003
|
+
"yellowgreen": "#9ACD32",
|
|
1004
|
+
"cadetblue": "#5F9EA0",
|
|
1005
|
+
"plum": "#DDA0DD",
|
|
1006
|
+
}
|
|
1007
|
+
|
|
1008
|
+
|
|
1009
|
+
class LineStyle(object):
|
|
1010
|
+
"""Provides trace line style constants."""
|
|
1011
|
+
|
|
1012
|
+
(Solid, Dot, ShortDash, DotShortDash, Dash, DotDash, DotDot, DotDotDash, LongDash) = (
|
|
1013
|
+
"Solid",
|
|
1014
|
+
"Dot",
|
|
1015
|
+
"ShortDash",
|
|
1016
|
+
"DotShortDash",
|
|
1017
|
+
"Dash",
|
|
1018
|
+
"DotDash",
|
|
1019
|
+
"DotDot",
|
|
1020
|
+
"DotDotDash",
|
|
1021
|
+
"LongDash",
|
|
1022
|
+
)
|
|
1023
|
+
|
|
1024
|
+
|
|
1025
|
+
class TraceType(object):
|
|
1026
|
+
"""Provides trace type constants."""
|
|
1027
|
+
|
|
1028
|
+
(Continuous, Discrete, StickZero, StickInfinity, BarZero, BarInfinity, Histogram, Step, Stair, Digital) = (
|
|
1029
|
+
"Continuous",
|
|
1030
|
+
"Discrete",
|
|
1031
|
+
"Stick Zero",
|
|
1032
|
+
"Stick Infinity",
|
|
1033
|
+
"Bar Zero",
|
|
1034
|
+
"Bar Infinity",
|
|
1035
|
+
"Histogram",
|
|
1036
|
+
"Step",
|
|
1037
|
+
"Stair",
|
|
1038
|
+
"Digital",
|
|
1039
|
+
)
|
|
1040
|
+
|
|
1041
|
+
|
|
1042
|
+
class SymbolStyle(object):
|
|
1043
|
+
"""Provides symbol style constants."""
|
|
1044
|
+
|
|
1045
|
+
(
|
|
1046
|
+
Box,
|
|
1047
|
+
Circle,
|
|
1048
|
+
VerticalEllipse,
|
|
1049
|
+
HorizontalEllipse,
|
|
1050
|
+
VerticalUpTriangle,
|
|
1051
|
+
VerticalDownTriangle,
|
|
1052
|
+
HorizontalLeftTriangle,
|
|
1053
|
+
HorizontalRightTriangle,
|
|
1054
|
+
) = (
|
|
1055
|
+
"Box",
|
|
1056
|
+
"Circle",
|
|
1057
|
+
"VerticalEllipse",
|
|
1058
|
+
"HorizontalEllipse",
|
|
1059
|
+
"VerticalUpTriangle",
|
|
1060
|
+
"VerticalDownTriangle",
|
|
1061
|
+
"HorizontalLeftTriangle",
|
|
1062
|
+
"HorizontalRightTriangle",
|
|
1063
|
+
)
|