.. DO NOT EDIT. .. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY. .. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE: .. "examples\02-HFSS\Array.py" .. LINE NUMBERS ARE GIVEN BELOW. .. only:: html .. note:: :class: sphx-glr-download-link-note :ref:`Go to the end ` to download the full example code .. rst-class:: sphx-glr-example-title .. _sphx_glr_examples_02-HFSS_Array.py: HFSS: component antenna array ----------------------------- This example shows how you can use PyAEDT to create an example using a 3D component file. It sets up the analysis, solves it, and uses postprocessing functions to create plots using Matplotlib and PyVista without opening the HFSS user interface. This examples runs only on Windows using CPython. .. GENERATED FROM PYTHON SOURCE LINES 9-12 Perform required imports ~~~~~~~~~~~~~~~~~~~~~~~~ Perform required imports. .. GENERATED FROM PYTHON SOURCE LINES 12-16 .. code-block:: default import os import pyaedt .. GENERATED FROM PYTHON SOURCE LINES 17-21 Set non-graphical mode ~~~~~~~~~~~~~~~~~~~~~~ Set non-graphical mode. You can set ``non_graphical`` either to ``True`` or ``False``. .. GENERATED FROM PYTHON SOURCE LINES 21-24 .. code-block:: default non_graphical = False .. GENERATED FROM PYTHON SOURCE LINES 25-28 Download 3D component ~~~~~~~~~~~~~~~~~~~~~ Download the 3D component that is needed to run the example. .. GENERATED FROM PYTHON SOURCE LINES 28-30 .. code-block:: default example_path = pyaedt.downloads.download_3dcomponent() .. GENERATED FROM PYTHON SOURCE LINES 31-34 Launch HFSS and save project ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Launch HFSS and save the project. .. GENERATED FROM PYTHON SOURCE LINES 34-43 .. code-block:: default project_name = pyaedt.generate_unique_project_name(project_name="array") hfss = pyaedt.Hfss(projectname=project_name, specified_version="2023.2", designname="Array_Simple", non_graphical=non_graphical, new_desktop_session=True) print("Project name " + project_name) .. rst-class:: sphx-glr-script-out .. code-block:: none Initializing new desktop! Project name D:\Temp\pyaedt_prj_CH4\array.aedt .. GENERATED FROM PYTHON SOURCE LINES 44-53 Read array definition from JSON file ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Read the array definition from a JSON file. A JSON file can contain all information needed to import and set up a full array in HFSS. If a 3D component is not available in the design, it is loaded into the dictionary from the path that you specify. The following code edits the dictionary to point to the location of the A3DCOMP file. .. GENERATED FROM PYTHON SOURCE LINES 53-59 .. code-block:: default dict_in = pyaedt.data_handler.json_to_dict(os.path.join(example_path, "array_simple.json")) dict_in["Circ_Patch_5GHz1"] = os.path.join(example_path, "Circ_Patch_5GHz.a3dcomp") dict_in["cells"][(3, 3)] = {"name": "Circ_Patch_5GHz1"} hfss.add_3d_component_array_from_json(dict_in) .. rst-class:: sphx-glr-script-out .. code-block:: none True .. GENERATED FROM PYTHON SOURCE LINES 60-63 Set up simulation ~~~~~~~~~~~~~~~~~ Set up a simulation and analyze it. .. GENERATED FROM PYTHON SOURCE LINES 63-70 .. code-block:: default setup = hfss.create_setup() setup.props["Frequency"] = "5GHz" setup.props["MaximumPasses"] = 3 hfss.analyze(num_cores=4) .. rst-class:: sphx-glr-script-out .. code-block:: none True .. GENERATED FROM PYTHON SOURCE LINES 71-75 Get far field data ~~~~~~~~~~~~~~~~~~ Get far field data. After the simulation completes, the far field data is generated port by port and stored in a data class. .. GENERATED FROM PYTHON SOURCE LINES 75-79 .. code-block:: default ffdata = hfss.get_antenna_ffd_solution_data(sphere_name="Infinite Sphere1", setup_name=hfss.nominal_adaptive, frequencies=[5e9]) .. GENERATED FROM PYTHON SOURCE LINES 80-84 Generate contour plot ~~~~~~~~~~~~~~~~~~~~~ Generate a contour plot. You can define the Theta scan and Phi scan. .. GENERATED FROM PYTHON SOURCE LINES 84-88 .. code-block:: default ffdata.plot_farfield_contour(qty_str='RealizedGain', convert_to_db=True, title='Contour at {}Hz'.format(ffdata.frequency)) .. image-sg:: /examples/02-HFSS/images/sphx_glr_Array_001.png :alt: Contour at 5000000000.0Hz :srcset: /examples/02-HFSS/images/sphx_glr_Array_001.png :class: sphx-glr-single-img .. rst-class:: sphx-glr-script-out .. code-block:: none .. GENERATED FROM PYTHON SOURCE LINES 89-93 Generate 2D cutout plots ~~~~~~~~~~~~~~~~~~~~~~~~ Generate 2D cutout plots. You can define the Theta scan and Phi scan. .. GENERATED FROM PYTHON SOURCE LINES 93-104 .. code-block:: default ffdata.plot_2d_cut(primary_sweep='theta', secondary_sweep_value=[-180, -75, 75], qty_str='RealizedGain', title='Azimuth at {}Hz'.format(ffdata.frequency), convert_to_db=True) ffdata.plot_2d_cut(primary_sweep="phi", secondary_sweep_value=30, qty_str='RealizedGain', title='Elevation', convert_to_db=True) .. rst-class:: sphx-glr-horizontal * .. image-sg:: /examples/02-HFSS/images/sphx_glr_Array_002.png :alt: Azimuth at 5000000000.0Hz :srcset: /examples/02-HFSS/images/sphx_glr_Array_002.png :class: sphx-glr-multi-img * .. image-sg:: /examples/02-HFSS/images/sphx_glr_Array_003.png :alt: Elevation :srcset: /examples/02-HFSS/images/sphx_glr_Array_003.png :class: sphx-glr-multi-img .. rst-class:: sphx-glr-script-out .. code-block:: none
.. GENERATED FROM PYTHON SOURCE LINES 105-109 Generate 3D polar plots in Matplotlib ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Generate 3D polar plots in Matplotlib. You can define the Theta scan and Phi scan. .. GENERATED FROM PYTHON SOURCE LINES 109-113 .. code-block:: default ffdata.polar_plot_3d(qty_str='RealizedGain', convert_to_db=True) .. image-sg:: /examples/02-HFSS/images/sphx_glr_Array_004.png :alt: 3D Plot :srcset: /examples/02-HFSS/images/sphx_glr_Array_004.png :class: sphx-glr-single-img .. GENERATED FROM PYTHON SOURCE LINES 114-119 Generate 3D plots in PyVista ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Generate 3D plots in PyVista. You can define the Theta and Phi scan angles. You can change the easy-to-use interactive plot that is generated on the fly. .. GENERATED FROM PYTHON SOURCE LINES 119-125 .. code-block:: default ffdata.polar_plot_3d_pyvista(qty_str='RealizedGain', convert_to_db=True, export_image_path=os.path.join(hfss.working_directory, "picture.jpg"), show=False) .. rst-class:: sphx-glr-horizontal * .. image-sg:: /examples/02-HFSS/images/sphx_glr_Array_005.png :alt: Array :srcset: /examples/02-HFSS/images/sphx_glr_Array_005.png :class: sphx-glr-multi-img * .. image-sg:: /examples/02-HFSS/images/sphx_glr_Array_006.png :alt: Array :srcset: /examples/02-HFSS/images/sphx_glr_Array_006.png :class: sphx-glr-multi-img .. rst-class:: sphx-glr-script-out .. code-block:: none C:\actions-runner\_work\pyaedt\pyaedt\testenv\lib\site-packages\pyvista\core\dataset.py:2123: PyVistaDeprecationWarning: Use of `DataSet.overwrite` is deprecated. Use `DataSet.copy_from` instead. warnings.warn( True .. GENERATED FROM PYTHON SOURCE LINES 126-129 Release AEDT ~~~~~~~~~~~~ Release AEDT. .. GENERATED FROM PYTHON SOURCE LINES 129-131 .. code-block:: default hfss.release_desktop() .. rst-class:: sphx-glr-script-out .. code-block:: none True .. rst-class:: sphx-glr-timing **Total running time of the script:** (1 minutes 48.605 seconds) .. _sphx_glr_download_examples_02-HFSS_Array.py: .. only:: html .. container:: sphx-glr-footer sphx-glr-footer-example .. container:: sphx-glr-download sphx-glr-download-python :download:`Download Python source code: Array.py ` .. container:: sphx-glr-download sphx-glr-download-jupyter :download:`Download Jupyter notebook: Array.ipynb ` .. only:: html .. rst-class:: sphx-glr-signature `Gallery generated by Sphinx-Gallery `_