Download this example
Download this example as a Jupyter Notebook or as a Python script.
Configuration files#
This example shows how to use PyAEDT to export configuration files and reuse them to import in a new project. A configuration file is supported by these applications:
HFSS
2D Extractor and Q3D Extractor
Maxwell
Icepak (in AEDT)
Mechanical (in AEDT)
The following topics are covered:
Variables
Mesh operations (except Icepak)
Setup and optimetrics
Material properties
Object properties
Boundaries and excitations
When a boundary is attached to a face, PyAEDT tries to match it with a FaceByPosition
on the same object name on the target design. If for any reason this face position has changed or the object name in the target design has changed, the boundary fails to apply.
Keywords: AEDT, general, configuration file, setup.
Perform imports and define constants#
Import the required packages.
[1]:
import os
import tempfile
import time
import ansys.aedt.core
Define constants.
[2]:
AEDT_VERSION = "2024.2"
NG_MODE = False # Open AEDT UI when it is launched.
Create temporary directory#
Create the temporary directory. If you’d like to retrieve the project data for subsequent use, the temporary folder name is given by temp_folder.name
.
[3]:
temp_folder = tempfile.TemporaryDirectory(suffix=".ansys")
Download project#
Download the Icepack project.
[4]:
project_full_name = ansys.aedt.core.downloads.download_icepak(
destination=temp_folder.name
)
Open project#
Open the Icepak project from the project folder.
[5]:
ipk = ansys.aedt.core.Icepak(
project=project_full_name,
version=AEDT_VERSION,
new_desktop=True,
non_graphical=NG_MODE,
)
ipk.autosave_disable()
PyAEDT INFO: Parsing C:\Users\ansys\AppData\Local\Temp\tmpn_s6u19j.ansys\icepak\Graphics_card.aedt.
PyAEDT INFO: Python version 3.10.11 (tags/v3.10.11:7d4cc5a, Apr 5 2023, 00:38:17) [MSC v.1929 64 bit (AMD64)].
PyAEDT INFO: PyAEDT version 0.15.dev0.
PyAEDT INFO: Initializing new Desktop session.
PyAEDT INFO: Log on console is enabled.
PyAEDT INFO: Log on file C:\Users\ansys\AppData\Local\Temp\pyaedt_ansys_bc221dbc-ff2c-418a-b27f-e9a42faf9c00.log is enabled.
PyAEDT INFO: Log on AEDT is enabled.
PyAEDT INFO: Debug logger is disabled. PyAEDT methods will not be logged.
PyAEDT INFO: Launching PyAEDT with gRPC plugin.
PyAEDT INFO: New AEDT session is starting on gRPC port 52928.
PyAEDT INFO: File C:\Users\ansys\AppData\Local\Temp\tmpn_s6u19j.ansys\icepak\Graphics_card.aedt correctly loaded. Elapsed time: 0m 0sec
PyAEDT WARNING: Electronics Desktop license not found on the default license server.
PyAEDT INFO: Electronics Desktop started on gRPC port: 52928 after 1.5317718982696533 seconds.
PyAEDT INFO: AEDT installation Path C:\Program Files\AnsysEM\v242\Win64
PyAEDT INFO: Ansoft.ElectronicsDesktop.2024.2 version started with process ID 10328.
PyAEDT INFO: Project Graphics_card has been opened.
PyAEDT INFO: Active Design set to IcepakDesign1
PyAEDT INFO: Active Design set to IcepakDesign1
PyAEDT INFO: Aedt Objects correctly read
[5]:
True
Create source blocks#
Create a source block on the CPU and memories.
[6]:
ipk.create_source_block(object_name="CPU", input_power="25W")
ipk.create_source_block(object_name=["MEMORY1", "MEMORY1_1"], input_power="5W")
PyAEDT INFO: Modeler class has been initialized! Elapsed time: 0m 1sec
PyAEDT INFO: Materials class has been initialized! Elapsed time: 0m 0sec
PyAEDT INFO: Boundary Block CPU has been created.
PyAEDT INFO: Boundary Block MEMORY1 has been created.
[6]:
<ansys.aedt.core.modules.boundary.common.BoundaryObject at 0x20438235c60>
Assign boundaries#
Assign the opening and grille.
[7]:
region = ipk.modeler["Region"]
ipk.assign_openings(air_faces=region.bottom_face_x.id)
ipk.assign_grille(air_faces=region.top_face_x.id, free_area_ratio=0.8)
PyAEDT INFO: Parsing design objects. This operation can take time
PyAEDT INFO: Refreshing bodies from Object Info
PyAEDT INFO: Bodies Info Refreshed Elapsed time: 0m 0sec
PyAEDT INFO: 3D Modeler objects parsed. Elapsed time: 0m 0sec
PyAEDT INFO: Boundary Opening Opening_JTJZTV has been created.
PyAEDT INFO: Boundary Grille Grille_JO3XVE has been created.
[7]:
<ansys.aedt.core.modules.boundary.common.BoundaryObject at 0x20439792e30>
Create setup#
Create the setup. Properties can be set up from the setup
object with getters and setters. They don’t have to perfectly match the property syntax.
[8]:
setup1 = ipk.create_setup()
setup1["FlowRegime"] = "Turbulent"
setup1["Max Iterations"] = 5
setup1["Solver Type Pressure"] = "flex"
setup1["Solver Type Temperature"] = "flex"
ipk.save_project()
PyAEDT INFO: Key FlowRegime matched internal key 'Flow Regime' with confidence of 94.
PyAEDT INFO: Key Max Iterations matched internal key 'Convergence Criteria - Max Iterations' with confidence of 54.
PyAEDT INFO: Key Solver Type Pressure matched internal key 'Linear Solver Type - Pressure' with confidence of 80.
PyAEDT INFO: Key Solver Type Temperature matched internal key 'Linear Solver Type - Temperature' with confidence of 82.
PyAEDT INFO: Project Graphics_card Saved correctly
[8]:
True
Export project to step file#
Export the project to the step file.
[9]:
filename = ipk.design_name
file_path = os.path.join(ipk.working_directory, filename + ".step")
ipk.export_3d_model(
file_name=filename,
file_path=ipk.working_directory,
file_format=".step",
assignment_to_export=[],
assignment_to_remove=[],
)
[9]:
True
Export configuration files#
Export the configuration files. You can optionally disable the export and import sections. Supported formats are JSON and TOML files.
[10]:
conf_file = ipk.configurations.export_config(
os.path.join(ipk.working_directory, "config.toml")
)
ipk.close_project()
PyAEDT INFO: Parsing C:/Users/ansys/AppData/Local/Temp/tmpn_s6u19j.ansys/icepak/Graphics_card.aedt.
PyAEDT INFO: File C:/Users/ansys/AppData/Local/Temp/tmpn_s6u19j.ansys/icepak/Graphics_card.aedt correctly loaded. Elapsed time: 0m 0sec
PyAEDT INFO: aedt file load time 0.04693460464477539
PyAEDT WARNING: Property Command is read-only.
PyAEDT INFO: Mesh class has been initialized! Elapsed time: 0m 0sec
PyAEDT WARNING: Property Command is read-only.
PyAEDT WARNING: Property Command is read-only.
PyAEDT WARNING: Property Command is read-only.
PyAEDT WARNING: Property Command is read-only.
PyAEDT WARNING: Property Command is read-only.
PyAEDT WARNING: Property Command is read-only.
PyAEDT WARNING: Property Command is read-only.
PyAEDT WARNING: Property Command is read-only.
PyAEDT WARNING: Property Command is read-only.
PyAEDT WARNING: Property Command is read-only.
PyAEDT INFO: Python version 3.10.11 (tags/v3.10.11:7d4cc5a, Apr 5 2023, 00:38:17) [MSC v.1929 64 bit (AMD64)].
PyAEDT INFO: PyAEDT version 0.15.dev0.
PyAEDT INFO: Returning found Desktop session with PID 10328!
PyAEDT INFO: Project temp_proj has been created.
PyAEDT INFO: No design is present. Inserting a new design.
PyAEDT INFO: Added design 'Icepak_3IP' of type Icepak.
PyAEDT INFO: Aedt Objects correctly read
PyAEDT INFO: Parsing design objects. This operation can take time
PyAEDT INFO: Refreshing bodies from Object Info
PyAEDT INFO: Bodies Info Refreshed Elapsed time: 0m 0sec
PyAEDT INFO: 3D Modeler objects parsed. Elapsed time: 0m 0sec
PyAEDT INFO: Deleted 10 Objects: SERIAL_PORT,ALPHA_MAIN_PCB,Region,CAPACITOR_1,CPU,HEAT_SINK,CAPACITOR,KB,MEMORY1_1,MEMORY1.
PyAEDT INFO: Modeler class has been initialized! Elapsed time: 0m 0sec
PyAEDT INFO: Closing the AEDT Project temp_proj
PyAEDT INFO: Project temp_proj closed correctly
PyAEDT INFO: C:\Users\ansys\AppData\Local\Temp\tmpn_s6u19j.ansys\icepak\Graphics_card.pyaedt\IcepakDesign1\config.toml correctly created.
PyAEDT INFO: Json file C:\Users\ansys\AppData\Local\Temp\tmpn_s6u19j.ansys\icepak\Graphics_card.pyaedt\IcepakDesign1\config.toml created correctly.
PyAEDT INFO: Closing the AEDT Project Graphics_card
PyAEDT INFO: Project Graphics_card closed correctly
[10]:
True
Create project#
Create an Icepak project and import the step.
[11]:
new_project = os.path.join(temp_folder.name, "example.aedt")
app = ansys.aedt.core.Icepak(version=AEDT_VERSION, project=new_project)
app.modeler.import_3d_cad(file_path)
PyAEDT INFO: Python version 3.10.11 (tags/v3.10.11:7d4cc5a, Apr 5 2023, 00:38:17) [MSC v.1929 64 bit (AMD64)].
PyAEDT INFO: PyAEDT version 0.15.dev0.
PyAEDT INFO: Returning found Desktop session with PID 10328!
PyAEDT INFO: Project example has been created.
PyAEDT INFO: No design is present. Inserting a new design.
PyAEDT INFO: Added design 'Icepak_GNQ' of type Icepak.
PyAEDT INFO: Aedt Objects correctly read
PyAEDT INFO: Modeler class has been initialized! Elapsed time: 0m 0sec
PyAEDT INFO: Step file C:\Users\ansys\AppData\Local\Temp\tmpn_s6u19j.ansys\icepak\Graphics_card.pyaedt\IcepakDesign1\IcepakDesign1.step imported
[11]:
True
Import and apply configuration file#
Import and apply the configuration file. You can apply all or part of the JSON file that you import using options in the configurations
object.
[12]:
out = app.configurations.import_config(conf_file)
is_conf_imported = app.configurations.results.global_import_success
PyAEDT INFO: Parsing C:/Users/ansys/AppData/Local/Temp/tmpn_s6u19j.ansys/example.aedt.
PyAEDT INFO: File C:/Users/ansys/AppData/Local/Temp/tmpn_s6u19j.ansys/example.aedt correctly loaded. Elapsed time: 0m 0sec
PyAEDT INFO: aedt file load time 0.0
PyAEDT INFO: Dataset Ceramic_material_39 doesn't exist.
PyAEDT INFO: Dataset $Ceramic_material_39 created successfully.
PyAEDT INFO: Materials class has been initialized! Elapsed time: 0m 0sec
PyAEDT WARNING: Material Al-Extruded already exists. Renaming to Al-Extruded_FUHTWN
PyAEDT WARNING: Material air already exists. Renaming to air_OGT2SO
PyAEDT WARNING: Material Ceramic_material already exists. Renaming to Ceramic_material_ATN6Y6
PyAEDT WARNING: No mesh operation found.
PyAEDT WARNING: No mesh region found.
PyAEDT WARNING: Property Command is read-only.
PyAEDT INFO: Mesh class has been initialized! Elapsed time: 0m 0sec
PyAEDT INFO: Object Properties updated.
PyAEDT INFO: Boundary Operation CPU added.
PyAEDT INFO: Boundary Operation MEMORY1 added.
PyAEDT INFO: Boundary Operation Opening_JTJZTV added.
PyAEDT INFO: Boundary Operation Grille_JO3XVE added.
PyAEDT INFO: Setup Setup added.
Release AEDT#
Close the project and release AEDT.
[13]:
app.release_desktop()
time.sleep(3) # Allow AEDT to shut down before cleaning the temporary project folder.
PyAEDT INFO: Desktop has been released and closed.
Clean up#
All project files are saved in the folder temp_folder.name
. If you’ve run this example as a Jupyter notebook, you can retrieve those project files. The following cell removes all temporary files, including the project folder.
[14]:
temp_folder.cleanup()
Download this example
Download this example as a Jupyter Notebook or as a Python script.