Skip to content

Commit

Permalink
Merge branch 'main' into release/0.11
Browse files Browse the repository at this point in the history
  • Loading branch information
Samuelopez-ansys committed Nov 22, 2024
2 parents b9e532f + 5b682d0 commit 49386a4
Show file tree
Hide file tree
Showing 70 changed files with 7,026 additions and 5,569 deletions.
39 changes: 34 additions & 5 deletions .github/workflows/ci_cd.yml
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,7 @@ jobs:
python-version: ${{ env.MAIN_PYTHON_VERSION }}
sphinxopts: '-j auto --color -w build_errors.txt'
check-links: false
needs-quarto: true

smoke-tests:
name: Build wheelhouse and smoke tests
Expand Down Expand Up @@ -88,7 +89,7 @@ jobs:
- name: Run unit tests
uses: ansys/actions/tests-pytest@v8
with:
pytest-markers: -m unit
pytest-postargs: 'tests/unit'
pytest-extra-args: ${{ env.PYTEST_ARGUMENTS }}
python-version: ${{ env.MAIN_PYTHON_VERSION }}
optional-dependencies-name: unit-tests
Expand All @@ -108,13 +109,41 @@ jobs:
path: junit/test-results.xml
if: ${{ always() }}

integration-tests:
name: Running integration tests
needs: [unit-tests]
runs-on: ubuntu-latest
steps:
- name: Run integration tests
uses: ansys/actions/tests-pytest@v8
with:
pytest-postargs: 'tests/integration'
pytest-extra-args: ${{ env.PYTEST_ARGUMENTS }}
python-version: ${{ env.MAIN_PYTHON_VERSION }}
optional-dependencies-name: integration-tests

- name: Upload coverage to Codecov
uses: codecov/codecov-action@v4
with:
token: ${{ secrets.CODECOV_TOKEN }}
name: codecov-integration-tests
file: ./coverage.xml
flags: linux_integration

- name: Upload pytest test results
uses: actions/upload-artifact@v4
with:
name: pytest-integration
path: junit/test-results.xml
if: ${{ always() }}

# # =================================================================================================
# # vvvvvvvvvvvvvvvvvvvvvvvvvvvvvv RUNNING ON SELF-HOSTED RUNNER vvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
# # =================================================================================================

system-tests-solvers-windows:
name: Testing solvers and coverage (Windows)
needs: [unit-tests]
needs: [integration-tests]
if: github.event.pull_request.draft == false
runs-on: [ self-hosted, Windows, pyaedt ]
steps:
Expand Down Expand Up @@ -173,7 +202,7 @@ jobs:

system-tests-solvers-linux:
name: Testing solvers and coverage (Linux)
needs: [unit-tests]
needs: [integration-tests]
if: github.event.pull_request.draft == false
runs-on: [ self-hosted, Linux, pyaedt ]
env:
Expand Down Expand Up @@ -229,7 +258,7 @@ jobs:

system-tests-general-windows:
name: Testing and coverage (Windows)
needs: [unit-tests]
needs: [integration-tests]
if: github.event.pull_request.draft == false
runs-on: [ self-hosted, Windows, pyaedt ]
steps:
Expand Down Expand Up @@ -294,7 +323,7 @@ jobs:
system-tests-general-linux:
name: Testing and coverage (Linux)
if: github.event.pull_request.draft == false
needs: [unit-tests]
needs: [integration-tests]
runs-on: [ self-hosted, Linux, pyaedt ]
env:
ANSYSEM_ROOT242: '/opt/AnsysEM/v242/Linux64'
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,7 @@ sharing of best practices, and increased collaboration.
[AEDT](https://www.ansys.com/products/electronics) is a platform that enables true
electronics system design. AEDT provides access to the Ansys gold-standard
electro-magnetics simulation solutions, such as Ansys HFSS, Ansys Maxwell,
Ansys Q3D Extractor, Ansys Siwave, and Ansys Icepak using electrical CAD (ECAD) and
Ansys Q3D Extractor, Ansys SIwave, and Ansys Icepak using electrical CAD (ECAD) and
Mechanical CAD (MCAD) workflows.

In addition, AEDT includes direct links to the complete Ansys portfolio of thermal, fluid,
Expand Down
2 changes: 1 addition & 1 deletion README_CN.md
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ pip install pyaedt[all]

## 关于 AEDT

`Ansys Electronics Desktop (AEDT)` 是一个真正支持电子系统设计的平台。[AEDT](https://www.ansys.com/products/electronics) 使用 `电气CAD(ECAD)``机械CAD(MCAD)` 工作流程提供对 Ansys gold-standard electro-magnetics 仿真解决方案的访问,例如 `Ansys HFSS``Ansys Maxwell``Ansys Q3D Extractor``Ansys Siwave``Ansys Icepak`。此外,它还包括与完整的 `Ansys热求解器(Thermal)``流体求解器(Fluid)``机械求解器(Mechanical)` 产品组合的直接连接,用于全面的多物理场分析。这些解决方案之间的紧密集成提供了前所未有的设置易用性,并更快地解决了用于设计和优化的复杂仿真。
`Ansys Electronics Desktop (AEDT)` 是一个真正支持电子系统设计的平台。[AEDT](https://www.ansys.com/products/electronics) 使用 `电气CAD(ECAD)``机械CAD(MCAD)` 工作流程提供对 Ansys gold-standard electro-magnetics 仿真解决方案的访问,例如 `Ansys HFSS``Ansys Maxwell``Ansys Q3D Extractor``Ansys SIwave``Ansys Icepak`。此外,它还包括与完整的 `Ansys热求解器(Thermal)``流体求解器(Fluid)``机械求解器(Mechanical)` 产品组合的直接连接,用于全面的多物理场分析。这些解决方案之间的紧密集成提供了前所未有的设置易用性,并更快地解决了用于设计和优化的复杂仿真。

<p align="center">
<img width="100%" src="https://images.ansys.com/is/image/ansys/ansys-electronics-technology-collage?wid=941&op_usm=0.9,1.0,20,0&fit=constrain,0" title="AEDT Applications" herf="https://www.ansys.com/products/electronics"
Expand Down
2 changes: 1 addition & 1 deletion doc/source/API/Application.rst
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ Available PyAEDT apps are:
ansys.aedt.core.maxwellcircuit.MaxwellCircuit
ansys.aedt.core.emit.Emit
ansys.aedt.core.twinbuilder.TwinBuilder

ansys.aedt.core.filtersolutions.FilterSolutions

All other classes and methods are inherited into the app class.
AEDT, which is also referred to as the desktop app, is implicitly launched in any PyAEDT app.
Expand Down
2 changes: 1 addition & 1 deletion doc/source/API/FilterSolutions.rst
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
Filter solutions
Filter design
==========================
The ``FilterSolutions`` module contains all classes needed to create and edit an object including.

Expand Down
2 changes: 1 addition & 1 deletion doc/source/API/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ to view API documentation.
The Ansys Electronics Desktop (AEDT) is a platform that enables true electronics system design.
`AEDT <https://www.ansys.com/products/electronics>`_ provides access to the Ansys gold-standard
electro-magnetics simulation solutions such as Ansys HFSS,
Ansys Maxwell, Ansys Q3D Extractor, Ansys Siwave, and Ansys Icepak using electrical CAD (ECAD) and
Ansys Maxwell, Ansys Q3D Extractor, Ansys SIwave, and Ansys Icepak using electrical CAD (ECAD) and
Mechanical CAD (MCAD) workflows.
In addition, it includes direct links to the complete Ansys portfolio of thermal, fluid,
and Mechanical solvers for comprehensive multiphysics analysis.
Expand Down
52 changes: 52 additions & 0 deletions doc/source/API/visualization/advanced.rst
Original file line number Diff line number Diff line change
Expand Up @@ -116,6 +116,58 @@ If you have existing farfield data, or you want to export it manually, you can s
:alt: Farfield data with AEDT


Monostatic RCS
~~~~~~~~~~~~~~

PyAEDT offers sophisticated tools for advanced monostatic radar cross section (RCS) post-processing.
There are three complementary classes: ``MonostaticRCSExporter``, ``MonostaticRCSData``, and ``MonostaticRCSPlotter``.

- MonostaticRCSExporter: Enables efficient export and manipulation of RCS data. It allows users to convert simulation results into a standard metadata format for further analysis, or reporting.

- MonostaticRCSData: Focuses on the direct access and processing of RCS solution data. It supports a comprehensive set of postprocessing operations, from visualizing radiation patterns to computing key performance metrics.

- MonostaticRCSPlotter: Focuses on the post-processing of RCS solution data.


.. currentmodule:: ansys.aedt.core.visualization.advanced.rcs_visualization

.. autosummary::
:toctree: _autosummary
:nosignatures:

MonostaticRCSData
MonostaticRCSPlotter


This code shows how you can get the RCS data and perform some post-processing:

.. code:: python
from ansys.aedt.core import Hfss
from ansys.aedt.core.visualization.advanced.rcs_visualization import MonostaticRCSPlotter
app = Hfss()
rcs_object = app.get_rcs_data()
rcs_plotter = MonostaticRCSPlotter(rcs_data=rcs_object.rcs_data)
rcs_plotter.plot_rcs()
If you exported the RCS data previously, you can directly get the RCS data:

.. code:: python
from ansys.aedt.core.visualization.advanced.rcs_visualization import MonostaticRCSPlotter
from ansys.aedt.core.visualization.advanced.rcs_visualization import MonostaticRCSData
input_file = r"path_to_data\pyaedt_rcs_metadata.json"
rcs_data = MonostaticRCSData(input_file)
rcs_plotter = MonostaticRCSPlotter(rcs_data)
rcs_plotter.plot_cut()
The following diagram shows both classes work. You can use them independently or from the ``get_rcs_data`` method.

.. image:: ../../_static/rcs_visualization_pyaedt.png
:width: 800
:alt: RCS data with PyAEDT


Heterogeneous data message
~~~~~~~~~~~~~~~~~~~~~~~~~~

Expand Down
34 changes: 33 additions & 1 deletion doc/source/API/visualization/post.rst
Original file line number Diff line number Diff line change
Expand Up @@ -15,12 +15,14 @@ Core

The following classes grant access to the core post-processing functionalities of AEDT:

* **PostProcessor3D**: This class is utilized across all 3D applications, including HFSS, HFSS 3D Layout, Maxwell 3D and 2D, Q3D Extractor, and Mechanical AEDT.
* **PostProcessor3D**: This class is utilized across all 3D applications, including HFSS, Maxwell 3D and 2D, Q3D Extractor, and Mechanical AEDT.

* **PostProcessorIcepak**: A specialized class for Icepak, which extends the ``PostProcessor3D`` class by adding features tailored to thermal analysis.

* **PostProcessorCircuit**: This class handles schematic post-processing, supporting Circuit and Twin Builder applications.

* **PostProcessor3DLayout**: A specialized class for HFSS 3D Layout, which extends the ``PostProcessor3D`` class.


.. currentmodule:: ansys.aedt.core.visualization.post.post_common_3d

Expand All @@ -30,6 +32,7 @@ The following classes grant access to the core post-processing functionalities o

PostProcessor3D


.. currentmodule:: ansys.aedt.core.visualization.post.post_icepak

.. autosummary::
Expand All @@ -38,6 +41,7 @@ The following classes grant access to the core post-processing functionalities o

PostProcessorIcepak


.. currentmodule:: ansys.aedt.core.visualization.post.post_circuit

.. autosummary::
Expand All @@ -47,6 +51,15 @@ The following classes grant access to the core post-processing functionalities o
PostProcessorCircuit


.. currentmodule:: ansys.aedt.core.visualization.post.post_3dlayout

.. autosummary::
:toctree: _autosummary
:nosignatures:

PostProcessor3DLayout


You can access these classes directly from the design object:

.. code:: python
Expand Down Expand Up @@ -202,6 +215,25 @@ If you need to export HFSS far field data, then you can use the following featur
antenna_data = app.post.get_antenna_data()
app.release_desktop(False, False)
If you need to export HFSS monostatic RCS data, then you can use the following feature to obtain the RCS metadata:

.. currentmodule:: ansys.aedt.core.visualization.post.rcs_exporter

.. autosummary::
:toctree: _autosummary
:nosignatures:

MonostaticRCSExporter

.. code:: python
from ansys.aedt.core import Hfss
app = Hfss()
rcs_data = app.post.get_rcs_data()
app.release_desktop(False, False)
Icepak
~~~~~~
Expand Down
2 changes: 1 addition & 1 deletion doc/source/API/visualization/report.rst
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ The following code shows how to use report modules in standalone mode.
p1 = app.modeler.create_polyline(test_points)
setup = app.create_setup()
report = Fields(app=app, report_category="Fields",
report = Fields(app=app.post, report_category="Fields",
setup_name=setup.name + " : LastAdaptive",
expressions="Mag_E")
report.polyline = p1.name
Expand Down
2 changes: 1 addition & 1 deletion doc/source/Getting_started/About.rst
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ About AEDT
`AEDT <https://www.ansys.com/products/electronics>`_ is a platform that enables true
electronics system design. AEDT provides access to the Ansys gold-standard
electro-magnetics simulation solutions, such as Ansys HFSS, Ansys Maxwell,
Ansys Q3D Extractor, Ansys Siwave, and Ansys Icepak using electrical CAD (ECAD) and
Ansys Q3D Extractor, Ansys SIwave, and Ansys Icepak using electrical CAD (ECAD) and
Mechanical CAD (MCAD) workflows.

In addition, AEDT includes direct links to the complete Ansys portfolio of thermal, fluid,
Expand Down
2 changes: 1 addition & 1 deletion doc/source/Getting_started/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ Desktop (AEDT) installed.
The Ansys Electronics Desktop (AEDT) is a platform that enables true electronics system design.
`AEDT <https://www.ansys.com/products/electronics>`_ provides access to the Ansys gold-standard
electro-magnetics simulation solutions such as Ansys HFSS,
Ansys Maxwell, Ansys Q3D Extractor, Ansys Siwave, and Ansys Icepak using electrical CAD (ECAD) and
Ansys Maxwell, Ansys Q3D Extractor, Ansys SIwave, and Ansys Icepak using electrical CAD (ECAD) and
Mechanical CAD (MCAD) workflows.
In addition, it includes direct links to the complete Ansys portfolio of thermal, fluid,
and Mechanical solvers for comprehensive multiphysics analysis.
Expand Down
Binary file added doc/source/_static/rcs_visualization_pyaedt.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
4 changes: 4 additions & 0 deletions doc/source/cheatsheet/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
*
!cheat_sheet.qmd
!.gitignore
/.quarto/
Loading

0 comments on commit 49386a4

Please sign in to comment.