Skill PyAEDT HFSS Antenne/RF
Que résout ce skill ?
Il structure le processus "un agent pilote Ansys HFSS en Python pour simuler des antennes/RF". Il apporte trois choses :
- Guide d'initialisation – comment trouver AEDT sur la machine, utiliser gRPC ou COM, éviter les conflits de licence.
- Pipeline standard de simulation d'antenne – créer un projet → modéliser → conditions aux limites/excitation → paramètres de solveur → balayage en fréquence → résolution → post‑traitement, chaque étape avec un squelette de code prêt à copier et adapter.
- Trois templates de tâches courantes – extraction de paramètres S, diagramme de rayonnement en champ lointain, balayage paramétrique, directement utilisables comme point de départ.
Il ne conçoit pas l'antenne à votre place (géométrie, alimentation, bande de fréquence sont du ressort de l'ingénieur) ; il se contente de fluidifier le chemin "conception connue → résultat de simulation".
Quand déclencher ce skill
- L'utilisateur dit "simuler cette antenne avec HFSS", "extraire les paramètres S", "balayer de 2 à 6 GHz", "tracer le diagramme de rayonnement", "afficher le gain".
- L'utilisateur fournit un projet
.aedt/.aedtz/.hfsset demande une exécution automatique ou par lots. - L'utilisateur écrit du code
import ansys.aedt.core/from pyaedt import Hfss. - L'utilisateur demande "comment lancer HFSS avec pyaedt", "pourquoi je n'arrive pas à me connecter à AEDT", "que faire si la licence est bloquée".
Workflow standard (fil conducteur)
Quelle que soit la tâche, la simulation d'antenne/RF suit ce fil. Construisez d'abord votre carte mentale le long de ce fil, puis sautez au template correspondant :
[1] Initialisation → Vérifier version AEDT + version Python + interface de communication
Voir references/environment-setup.md
En cas de doute, exécuter scripts/check_env.py
[2] Créer/Ouvrir projet → Hfss(project=..., design=..., version=..., new_desktop=...)
Important : non_graphical=True pour CI/lots
new_desktop=False pour réutiliser un bureau déjà ouvert
close_on_exit=True pour libérer la licence après exécution
[3] Modélisation géométrique → hfss.modeler.create_box / create_cylinder / create_polyline ...
Ou hfss.modeler.import_3d_cad("xxx.step")
Conseil : définir d'abord des variables (voir ci‑dessous), puis piloter la géométrie par variables
[4] Paramétrisation → hfss[" $patch_w "] = "30mm" (variable de projet, avec $)
hfss["patch_l"] = "32mm" (variable de conception, sans $)
Mettre en variable toute dimension susceptible d'être balayée
[5] Conditions limites & excitations → Radiation : hfss.assign_radiation_boundary_to_objects(["AirBox"])
Port : hfss.lumped_port / hfss.wave_port / hfss.create_floquet_port
Masse : hfss.assign_perfecte_to_sheets(...)
[6] Configuration du solveur → setup = hfss.create_setup("Setup1", Frequency="3GHz",
MaximumPasses=15, MaxDeltaS=0.02)
sweep = setup.create_linear_count_sweep(
unit="GHz", start_frequency=2, stop_frequency=6,
num_of_freq_points=401, sweep_type="Interpolating")
[7] Résolution → hfss.analyze(setup="Setup1", cores=8) # bloquant
ou hfss.analyze_setup("Setup1")
[8] Post‑traitement → Paramètres S : hfss.post.get_solution_data("S(1,1)")
Champ lointain : hfss.insert_infinite_sphere(...)
hfss.post.get_far_field_data(...)
Export : data.export_data_to_csv("xxx.csv")
[9] Nettoyage → hfss.save_project()
hfss.release_desktop(close_projects=False, close_desktop=True)
Ne pas libérer la licence = blocage au prochain lancement !
Comment utiliser ce skill
Au premier contact avec une tâche de simulation antenne/RF
- Lire d'abord
references/environment-setup.md– pour savoir quelle version d'AEDT, quelle version de Python, et s'il faut installer pyaedt. En cas de doute, lancerscripts/check_env.py. - Lire ensuite
references/antenna-workflow.md– c'est la version "zoomée" du fil conducteur ci‑dessus, avec pour chaque étape l'API détaillée et les paramètres courants. - Avant de rencontrer une erreur, jeter un œil à
references/common-pitfalls.md– 80% des problèmes "connexion impossible / ne s'exécute pas / résultat faux" y sont listés.
Pour écrire du code
Aller dans templates/ et choisir le template le plus proche de la tâche, copier‑coller le bloc entier puis modifier :
| Type de tâche | Template |
|---|---|
| Projet unique, balayage S11/S21 mono ou multi‑fréquence | templates/sparam_extraction.py |
| Diagramme de rayonnement en champ lointain, gain, efficacité de rayonnement, diagramme 3D | templates/far_field_pattern.py |
| Balayage de dimensions / matériaux, extraction de multiples résultats | templates/parametric_sweep.py |
Les templates sont des scripts exécutables indépendamment. En haut, ils exposent des paramètres communs comme PROJECT_PATH / DESIGN_NAME / FREQ_*. Modifier d'abord le haut, puis la partie géométrie/conditions limites.
Principes clés
- Petit d'abord, grand ensuite : lors du premier lancement d'un script, mettre
MaximumPassesà 3‑5, le nombre de points de balayage à 21, faire fonctionner le pipeline, puis affiner. Aller trop vite coûte des heures. - Toujours
release_desktop: ne pas libérer la licence = erreur au lancement suivant. Encadrer la fin du script avectry/finally. non_graphicalpar défautTrue: sauf si on veut voir la géométrie ou déboguer, ne pas ouvrir l'interface graphique pour économiser la mémoire et permettre le parallélisme.- Utiliser des chemins absolus : un chemin relatif peut ne pas pointer là où vous pensez dans le processus AEDT.
- Variables d'abord : toute dimension susceptible d'être modifiée doit être une variable, pas une valeur en dur, sinon le balayage paramétrique oblige à tout réécrire.
Installer pyaedt (si pas déjà fait)
# Combinaison recommandée (2025 R2 / 2026 R1)
pip install pyaedt
# Anciens AEDT avec anciens pyaedt (voir references/environment-setup.md pour la correspondance)
pip install pyaedt==0.17.5 # AEDT 2025 R1
pip install pyaedt==0.13.3 # AEDT 2024 R2
Ce qu'il ne faut pas faire
- Ne pas importer directement
pyaedt– depuis la version 1.0, la méthode recommandée estimport ansys.aedt.core as pyaedtoufrom ansys.aedt.core import Hfss. L'ancien codefrom pyaedt import Hfssfonctionne encore mais est déprécié. - Ne pas utiliser
new_desktop=Truequand l'interface graphique AEDT est déjà ouverte – cela ouvrirait un nouveau processus et doublerait la licence. Pour réutiliser le bureau existant, utilisernew_desktop=False. - Ne pas espérer un AEDT natif sur Mac – AEDT fonctionne uniquement sous Windows/Linux. Sur Mac, soit se connecter à distance à une machine Windows, soit utiliser PyEDB pour manipuler le fichier EDB sans HFSS.
- Ne pas oublier
hfss.save_project()– il faut sauvegarder avant lerelease, sinon les modifications seront perdues. - Ne pas livrer des résultats avec un
MaxDeltaStrop relâché (>0.05) – une convergence insuffisante donne un S11 qui est du bruit, pas de la physique.
Liste des fichiers de référence
pyaedt-hfss-antenna/
├── SKILL.md ← Vous êtes ici
├── references/
│ ├── environment-setup.md ← Correspondances de versions, installation, gRPC/COM, licence
│ ├── antenna-workflow.md ← Détail de l'API du workflow principal
│ └── common-pitfalls.md ← Erreurs fréquentes et solutions
├── templates/
│ ├── sparam_extraction.py ← Extraction des paramètres S par balayage
│ ├── far_field_pattern.py ← Diagramme de champ lointain / gain
│ └── parametric_sweep.py ← Balayage paramétrique de variables
└── scripts/
└── check_env.py ← Détecter AEDT/Python/pyaedt sur la machine
Ordre de lecture suggéré : ce fichier → environment-setup → haut des templates → antenna-workflow (selon l'étape) → common-pitfalls en cas de problème.