project_description
Explore the docs »
View Demo · Report Bug · Request Feature
The Ansys 5G Wizard can be used to calculate Power Density or Cumulative Distribution Function. These calculations use a codebook to define the mag/phase value on ports for each beam ID. The codebook definition will be imported into your HFSS design, where you can now control the mag/phase on all ports by simply changing the post processing variable “BeamID.”
Power Density (PD): The PD is calculated based on IEC_IEEE_63195-2_2021_05_06_V301. The calculations described in this document are implemented in the 5G Wizard. Specifically, equations (4), 5(), and (8) are implemented as PD_N+, PD_Tot+ and PD_Mod+ as described in section 8.5. The average PD for each PD type is performed by rotating a square around each evaluation point on the grid, performing the average for each rotation, then selecting the maximum across all these rotations as the averaged value. This process is described in more detail in Annex D of the 63195-2 document.
Cumulative Distribution Function (CDF): CDF if calculated as the maximum gain across all beam ID’s defined in the codebook.
Validation: The calculation from the local Poynting vector to each PD type is validated using the IEEE provided reference data. These can also be validated within the 5G wizard by selecting “Run Validation.”
The result of the averaging algorithm implemented in the 5G wizard can be compared with the provided reference data by running “Run Validation” from within the wizard. The resulting validation shows less than 1% difference between validation data and the output from the 5G wizard.
(back to top)
python
pyAEDT
(back to top)
Download stand-alone executable from releases, or clone repository to run script version of the 5G wizard.
To run the 5G wizard, you must have a local licenced copy of AEDT 2021 R2 or 2022 R1.
The 5G wizard can be run by executing the standalone 5G_Wizard.exe or by using one of the scripts (5G_Wizard_Standalone_NoGUI.py or 5G_Wizard.py)
If you want to specify which version of AEDT to use, modify the aedt_version.txt file located in the root directory. If this file does not exist
Clone the repo
git clone
If you want to run the 5G wizard as a script (not using the executable), a python environment will need to be configured. See README_python_env.txt for an example of how to setup a python envionrment. If you want to re-build the applicaiton as an exe, see README_creating_application.txt.
Standalone Executable with GUI:
5G_Wizard.exe
Script with GUI:
5G_Wizard.py
Script without GUI:
5G_Wizard_Standalone_NoGUI.py
There is current issue with the stand-alone .exe, very slow to launch on some systems. This is a result of a virus scanner, or windows defender scanning the file and all the extracted temporary files everytime it is launched. A solution is to either add this to exclusions, or move all the contents of the installtion to a folder the exlusions list. To see folders that are excluded, Start > Settings > Update & Security > Windows Security > Virus & threat protection Settings > Manage Settings. From within manage settings, under Exlusions, select Add or remove exclusions. If an exclusion cannot be added, try moving the 5G wizard and all folder to a folder that is already included in the exclusions list.
Codebook: The codebook defines the mag/phase values defined on each port per beam ID. The beamID is used for the basis of all CDF and PD calculations. For PD, every beam ID defined in the codebook will be evaluated for maximum average PD. For CDF, the envelope far field pattern, the corresponding beam ID for the max field pattern, and the CDF plot will be created using each beam ID. The codebook should look like the following examples (saved as csv files).
Codebook Example:
Beam_ID,Module_Name,Ant_Feed,Amplitude,Phase,Paired_With 0,module1,2468,1111,0000,-1 1,module1,2468,1111,0204060,-1 2,module1,2468,1111,04080120,-1 3,module1,2468,1111,0-20-40-60,-1 4,module1,2468,1111,0-40-80-120,-1
Codebook Example (including renormalization):
Beam_ID,Module_Name,Ant_Feed,Amplitude,Phase,Paired_With,Prad_Renorm 0,module1,2468,1111,0000,-1,1 1,module1,2468,1111,0204060,-1,1 2,module1,2468,1111,04080120,-1,1 3,module1,2468,1111,0-20-40-60,-1,1 4,module1,2468,1111,0-40-80-120,-1,1
Each column of data is comma delimited. Within each column, subdivisions are defined with a semicolon, ";". In the above example, the Ant_Feed column contains "2;4;6;7" as the entries. This means ports with the name "2" "4" "6" and "8" are included in that beam ID definitions. The corresponding magnitude and phase defined in the Amplitude and Phase columns. For example, if we look at beamID=2, This beam excites port 2 with a magnitude 1 and phase 0. Port 4 is excited with a magnitude of 1 and phase 40...etc. A beamID can be paired with any other beam in the codebook. Using the Paired_With column, this will excite both beams simultaneously. If a -1 is defined for Paired_With, the beam does not have a beam pair and no other beams will be excited when the beam is selected. It is assumed that if a beam pair is used, it is reciprocal for both beams. Prad_Renorm is an optional parameter. This parameter can be used to renormalize the total radiated power to the specified value. If not defined, the total radiated power will be calculated based on the Amplitude defined for the ports. Note: if Prad_Renorm is not defined, the GUI interface will allow a renormalization to be defined. The value used in the codebook will always override any GUI settings
Power Density: Select the PD type to be calculated, area, and surface to calculate PD over. The grid spacing on the surface will be defined as 1mm or lambda/10, whichever is smaller. Beam power can be renormalized, if a single value is used, all beams will be renormalized to this amount of radiated power. If an array of values (ie. 1,3,1,0.5). The beams corrosponding to the order they are defined in the codebook, would be renomalized to these different amount of radiated power.
CDF: CDF is calculated based on user selected coordinate system. The peak (100th percentile) CDF can be renormalized to a user specified value.
Multi-Run: If multi-run is selected as the operation mode, a single file can be loaded with multiple jobs (calculations to run). This multi-run file effectively has all the required inputs for CDF or PD within a single csv file. Each row of the file is one calculation, where each column would correspond to the inputs of the GUI. This will allow any number of calculations to be run with a single user interaction. For example, if you wanted to calculate the PD on multiple surfaces using the same codebook, the multirun file would look something like the following:
Multi-Run Example - Power Density:
Job_ID,Project_Name,Design_Name,Solution_Name,Freq,Evaluation_Surface,PD_Type,Averaging_Area,Codebook_Name 0, test_project, design1,Setup1:sweep, 28GHz, rectangle1, PD_n_plus, 1cm^2, Codebook.csv 1, test_project, design1,Setup1:sweep, 28GHz, rectangle1, PD_n_plus, 1cm^2, Codebook.csv
With CDF, if multi-run is selected, the CDF for each individual job will be reported along with the CDF across all jobs. This total CDF will reprsent if all the jobs were included in a single simulation. For example, you may want to calculate the CDF of multiple 5G modules on a single device. But instead of running a single simulation with all the devices in them, you may run multiple simulations, where each simulation only contains a single 5G module. The total CDF will incorporate tehh sum of all the different designs in a single CDF report.
Multi-Run Example - CDF:
Job_ID,Project_Name,Design_Name,Solution_Name,Freq,CS_Name,Codebook_Name 0,5G_28GHz_AntennaModule,4x1_array2,Setup1:LastAdaptive,28GHz,Global,CodebookExample_Hpol.csv 1,5G_28GHz_AntennaModule,4x1_array2,Setup1:LastAdaptive,28GHz,Global,CodebookExample_Vpol.csv
Results will be written to an HTML file located in your specified output directory. The results displayed in the html file are also available directly within the results folder. This includes data stored as json and hdf5 formats for easy access by users for output customization.
(back to top)
See the open issues for a full list of proposed features (and known issues).
(back to top)
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!
Fork the Project
Create your Feature Branch (git checkout -b feature/AmazingFeature
)
Commit your Changes (git commit -m 'Add some AmazingFeature'
)
Push to the Branch (git push origin feature/AmazingFeature
)
Open a Pull Request
(back to top)
Distributed under the MIT License. See LICENSE.txt
for more information.
(back to top)