ansys / pyaedt

AEDT Python Client Package
https://aedt.docs.pyansys.com
MIT License
213 stars 129 forks source link

Unable to deembed parasitic port inductance for edge port in Hfss3dlayout #5026

Closed swang0528 closed 3 months ago

swang0528 commented 3 months ago

Before submitting the issue

Description of the bug

I am unable to set the 'DeembedParasiticPortInductance' property to "true" in PyAEDT to deembed edge port inductance. I have tried multiple methods, including using the hfss3dlayout change_property method and directly calling the oDesign object to excute the change. The change_property() method even print success message but the deembed option remains false when I print the property or check the design in the GUI. The change_property_method: self.hfss3d_proj.change_property(aedt_object=self.hfss3d_proj.odesign, property_object=f"Excitations:{port_name}", property_name="DeembedParasiticPortInductance", property_value="true", tab_name="EM Design") The output: PyAEDT INFO: Property DeembedParasiticPortInductance Changed correctly. The properties after change: BoundaryProps([('Port', 'TL-0PORT-F'), ('Boundary Type', 'Port'), ('Impedance', '50ohm'), ('Magnitude', '1V'), ('Phase', '0deg'), ('Renormalize', 'true'), ('Renormalize Impedence', '50ohm + 0i ohm'), ('DeembedParasiticPortInductance', 'false'), ('PlanarEM', ''), ('Type', 'Circuit'), ('HFSS', ''), ('HFSS Type', 'Circuit'), ('Layer Alignment', 'Lower')])

Steps To Reproduce

self.hfss3d_proj = pyaedt.Hfss3dLayout(project=project_name, design=design_name,
                                               version="2024.1", non_graphical=True, new_desktop=True,
                                               close_on_exit=True, student_version=False)
# port_tline_obj is a line object in hfss3dlayout
new_edge_port = self.hfss3d_proj.create_edge_port(assignment=port_tline_obj, edge_number=port_edge_id, reference_primitive=ref_obj_name, is_circuit_port=True)

self.hfss3d_proj.change_property(aedt_object=self.hfss3d_proj.odesign,
                                         property_object=f"Excitations:{port_name}",
                                         property_name="DeembedParasiticPortInductance",
                                          property_value="true", tab_name="EM Design")

Which Operating System are you using?

Linux

Which Python version are you using?

3.10

Installed packages

annotated-types==0.7.0 ansys-pythonnet==3.1.0rc3 astroid==3.1.0 attrs==23.2.0 certifi==2024.6.2 cffi==1.16.0 charset-normalizer==3.3.2 clr-loader==0.2.6 contourpy==1.2.1 cycler==0.12.1 defusedxml==0.7.1 dill==0.3.8 distro==1.9.0 dotnetcore2==3.1.23 filelock==3.15.4 fonttools==4.53.0 fpdf2==2.7.9 fsspec==2024.6.1 idna==3.7 isort==5.13.2 Jinja2==3.1.4 jsonschema==4.22.0 jsonschema-specifications==2023.12.1 kiwisolver==1.4.5 MarkupSafe==2.1.5 matplotlib==3.9.0 mccabe==0.7.0 mpmath==1.3.0 networkx==3.3 numpy==1.26.4 nvidia-cublas-cu12==12.1.3.1 nvidia-cuda-cupti-cu12==12.1.105 nvidia-cuda-nvrtc-cu12==12.1.105 nvidia-cuda-runtime-cu12==12.1.105 nvidia-cudnn-cu12==9.1.0.70 nvidia-cufft-cu12==11.0.2.54 nvidia-curand-cu12==10.3.2.106 nvidia-cusolver-cu12==11.4.5.107 nvidia-cusparse-cu12==12.1.0.106 nvidia-nccl-cu12==2.20.5 nvidia-nvjitlink-cu12==12.6.20 nvidia-nvtx-cu12==12.1.105 packaging==24.0 pandas==2.2.2 -e git+https://bitbucket.analog.com/scm/~abudak/panoptic.git@f2f310e0633809311dad9555bb2b26e4b69c9239#egg=panoptic pexpect==4.9.0 pillow==10.3.0 platformdirs==4.2.2 plumbum==1.8.3 ply==3.11 pooch==1.8.2 psutil==5.9.8 ptyprocess==0.7.0 pyads==3.4.0 pyaedt==0.9.4 pycparser==2.22 pydantic==2.7.3 pydantic_core==2.18.4 pyedb==0.12.1 pylint==3.1.0 pyparsing==3.1.2 python-dateutil==2.9.0.post0 pytomlpp==1.0.13 pytz==2024.1 pyverilog==1.3.0 pyvista==0.43.9 PyYAML==6.0.1 referencing==0.35.1 requests==2.32.3 rpds-py==0.18.1 rpyc==6.0.0 Rtree==1.2.0 scipy==1.14.0 scooby==0.10.0 six==1.16.0 sympy==1.13.1 toml==0.10.2 tomli==2.0.1 tomlkit==0.12.4 torch==2.4.0 torchaudio==2.4.0+cpu torchvision==0.19.0 triton==3.0.0 typing_extensions==4.12.1 tzdata==2024.1 urllib3==2.2.1 vtk==9.3.0

Samuelopez-ansys commented 3 months ago

Hi @swang0528 ,

In this case you have enabled the object_properties object which is replacing the "props" properties because it accesses to the Object Oriented Programming of AEDT (GetChildObject, GetChildNames....). So in your case you can just:

new_edge_port .object_properties.props['DeembedParasiticPortInductance'] = True

If you want to use the "props" object, no problem, you just need to check that the boolean value parsed from AEDT is an string, so you just need the following:

new_edge_port .props['DeembedParasiticPortInductance'] = "true"

image