Utiliser la fenêtre Chatbot dans COMSOL Multiphysics®

12 juin 2025

Lorsque vous créez des modèles multiphysiques et des applications de simulation, la COMSOL API vous permet d’écrire du code pour automatiser des opérations, d’ajouter des fonctionnalités personnalisées à vos applications et de les associer à des outils externes. La fonctionnalité Chatbot, introduite dans la version 6.3 de COMSOL Multiphysics®, vous connecte directement aux modèles OpenAI™ GPT, vous permettant de générer ou de déboguer le code de la COMSOL API. Par exemple, elle peut aider à convertir des tâches répétitives en des boucles For ou à localiser des erreurs de logique dans une méthode de modèle. Vous pouvez également utiliser la fenêtre Chatbot pour demander des conseils généraux sur la modélisation.

Dans cet article de blog, nous présenterons quelques exemples simples qui illustrent la manière dont cette fonctionnalité peut se révéler utile en tant qu’assistant de modélisation.

Utiliser la fenêtre Chatbot en conjonction avec la fenêtre Java Shell

La fenêtre Chatbot, qui a été élaborée pour une utilisation pratique dans COMSOL Multiphysics®, offre des informations spécifiques à la modélisation et à la simulation et élimine le besoin de copier-coller des messages depuis et vers des outils d’IA externes. A la place, vous pouvez facilement y ajouter des méthodes pour vérifier que ces dernières ne comportent pas de bugs ou exécuter le code API suggéré par le modèle d’IA, les résultats étant immédiatement visibles dans le Constructeur de modèles et la fenêtre Graphiques.

La fenêtre Java Shell, également introduite dans la version 6.3, fournit une invite de commande pour exécuter du code Java de manière interactive. Vous pouvez utiliser la fenêtre Java Shell pour exécuter du code généré par la fenêtre Chatbot. Nous vous montrerons comment procéder dans les exemples ci-dessous.

Pour en apprendre plus sur l’utilisation de la COMSOL API et la fenêtre Java Shell, consultez la section “Running Code in the Java Shell Window” de l’article du Centre d’Apprentissage Overview of the COMSOL API.

Etape 1: Activer la fenêtre Chatbot

La fenêtre Chatbot est disponible pour la version Windows® de COMSOL Multiphysics®. Elle est incluse dans la plateforme mais n’est pas installée par défaut. (Des instructions sur l’installation et la configuration de la fenêtre Chatbot sont disponibles dans cet article du Centre d’Apprentissage.)

Notez que:

  1. Pour utiliser la fonctionnalité Chatbot, vous devrez créer un compte OpenAI et obtenir une clé API OpenAI, ce qui nécessite généralement un abonnement payant. Actuellement, les grands modèles de langage (LLMs) OpenAI™ et Azure® OpenAI™ GPT-4 sont pris en charge.
  2. Concrètement le LLM n’est pas installé dans COMSOL Multiphysics® — la fenêtre Chatbot facilite simplement la communication avec le LLM.

Démos: utiliser la fenêtre Chatbot pour…

  1. Créer une géométrie
  2. Générer des annotations
  3. Déboguer un code
  4. Poser des questions relatives à la modélisation
  5. Identifier les erreurs de configuration des modèles

Créer une géométrie

Des connaissances de base en Java peuvent être utiles pour travailler avec la COMSOL API; en revanche, cela n’est souvent pas nécessaire pour utiliser la fenêtre Chatbot, car celle-ci intègre des fonctionnalités qui aident à comprendre la syntaxe Java et la structure du code.

Pour commencer, voyons comment la fenêtre Chatbot peut nous aider à créer une géométrie de cylindre. Cliquez d’abord sur le bouton Modèle vierge, qui permet de construire tous les aspects du modèle à partir de zéro à l’aide de l’API.

Zoom sur les boutons Assistant de modélisation et Modèle vierge, avec le bouton Modèle vierge mis en évidence. Ensuite, ouvrez la fenêtre Chatbot: dans l’onglet Accueil, allez dans le menu Fenêtres et sélectionnez Chatbot.

Le menu déroulant du bouton Fenêtres est affiché, avec l'option Chatbot mise en évidence. La fenêtre Chatbot s’ouvrira dans la partie inférieure droite de l’interface utilisateur.

L'interface utilisateur COMSOL Multiphysics montrant le Constructeur de modèles avec le noeud Paramètres sélectionné, la fenêtre de réglages correspondante, et la fenêtre graphique. Dans la fenêtre Chatbot, il y a trois options de sujets de chat: Géneral, Programmation, et Modélisation. Pour cet exemple, sélectionnez Programmation.

Zoom sur la fenêtre Chatbot et ses options de sujets de chat, incluant, Géneral, Programmation, et Modélisation. Saisissez maintenant le prompt Crée une géométrie de cylindre.

Zoom de la fenêtre Chatbot avec le prompt Crée une géométrie de cylindre en anglais. Cela générera du code pour créer un cylindre d’un rayon et d’une hauteur arbitraires, sans toutefois l’exécuter. Pour exécuter le code, vous devez l’envoyer à la fenêtre Java Shell.

Faites un clic-droit sur le bloc de code et sélectionnez Envoyer au Java Shell.

Zoom de la fenêtre Chatbot et son menu contextuel, avec l'option Envoyer au Java Shell sélectionnée. La fenêtre Java Shell s’ouvre alors avec une copie du même bloc de code.

Zoom de la fenêtre Java Shell. Cliquez sur le bouton Exécuter en bas de la fenêtre Java Shell pour générer le cylindre.

L'interface utilisateur de COMSOL Multiphysics montrant le Constructeur de modèles avec le noeud Cylindre sélectionné, la fenêtre de réglages correspondante, et un modèle de cylindre dans la fenêtre graphique Dans l’exemple présenté ici, le code suivant a été généré:

// Create a 3D geometry

model.geom().create("geom", 3);
// Add a cylinder to the geometry
model.geom("geom").feature().create("cyl", "Cylinder");
// Set cylinder properties: radius and height
model.geom("geom").feature("cyl").set("r", 1); // radius
model.geom("geom").feature("cyl").set("h", 5); // height
// Build the geometry
model.geom("geom").run();

Toutefois, gardez à l’esprit que la fenêtre Chatbot peut produire des variations légèrement différentes du code à chaque fois, en raison d’un faible degré d’aléa dans ses réponses.

Générer des annotations

Le modèle d’IA avec lequel le chatbot communique ne comprend pas tous les aspects de la COMSOL API. Cependant, en utilisant la fonctionnalité Enregistrer le code ou Enregistrer la méthode dans le Constructeur d’applications, nous pouvons le guider pour générer des suggestions de code utiles. L’exemple suivant vous montre comment ajouter des annotations à un modèle, puis à les développer en sollicitant l’appui de la fenêtre Chatbot. Pour commencer, ouvrez le tutoriel Pacemaker Electrode à partir de la Bibliothèque d’applications, sous la branche COMSOL Multiphysics > Electromagnetics.

Zoom de la bibliothèque d'applications avec le modèle Pacemaker Electrode mis en évidence. Si le modèle n’a pas encore été résolu, cliquez sur le bouton Calculer. Le calcul prendra quelques secondes.

L'interface utilisateur de COMSOL Multiphysics montrant le Constructeur de modèles avec un groupe de graphiques 3D sélectionné, la fenêtre de réglages correspondante, et un modèle de pacemaker dans la fenêtre graphique. Ensuite, utilisez la fonctionnalité d’enregistrement de code intégrée pour apprendre à ajouter une annotation. Dans le ruban, allez dans l’onglet Développeur et cliquez sur Enregistrer la méthode pour démarrer l’enregistrement.

Zoom de l'onglet Développeur avec les boutons Java Shell et Enregistrer la méthode mis en évidence. Il vous sera demandé de stocker l’enregistrement sous le nom method1, ce qui convient à notre objectif; vous pouvez renommer cette méthode si vous le souhaitez. Le Constructeur de modèles est maintenant encadré en rouge, indiquant qu’un enregistrement est en cours.

Dans l’arborescence du modèle, faites un clic-droit sur Groupe de graphiques 3D 3 et sélectionnez Annotation.

L'interface utilisateur de COMSOL Multiphysics montrant le Constructeur de modèles avec le Groupe de graphiques 3D sélectionné et le menu déroulant correspondant, avec Annotation mise en évidence. Dans la fenêtre de Réglages du noeud Annotation, dans le champ Texte, tapez eval(V). Cela permet d’évaluer et d’afficher la valeur local du champ potentiel électrique. Ensuite, pour le réglage Position, entrez 0.001, 0.002, 0.003 pour les coordonnées x, y, et z, respectivement.

L'interface utilisateur de COMSOL Multiphysics montrant le Constructeur de modèles avec le noeud Annotation sélectionné et la fenêtre de réglages correspondante. Cliquez sur le bouton Afficher pour créer l’annotation.

Zoom sur le modèle Pacemaker Electrode, montrant une annotation. Dans l’onglet Développeur, cliquez sur Arrêter l’enregistrement.

Zoom sur l'onglet Développeur avec les boutons Arrêter l'enregistrement et Java Shell mis en évidence. Cliquez maintenant sur le bouton Constructeur d’applications et double-cliquez sur le noeud method1 au niveau de l’arborescence. Le code enregistré s’affiche alors dans l’éditeur de méthodes.

Zoom sur le Constructeur d'applications avec le noeud method1 mis en évidence et la fenêtre method1 correspondante. Copiez ce code et revenez au Constructeur de modèles.

Avant d’utiliser la fenêtre Chatbot pour créer automatiquement des noeuds Annotation, vous devez supprimer le noeud Annotation qui vient d’être généré pour éviter les conflits. Dans l’arborescence du modèle, faites un clic-droit sur le noeud Annotation et sélectionnez Supprimer.

Zoom sur le noeud Annotation 1 mis en évidence et le menu contextuel correspondant, avec l'option Supprimer sélectionnée. Dans la fenêtre Chatbot, sélectionnez l’option Programmation et tapez les instructions suivantes, en collant le code que vous avez copié dans l’éditeur de méthodes:

Voici comment créer une annotation dans COMSOL Multiphysics:

model.result(“pg3”).create(“ann1”, “Annotation”);
model.result(“pg3”).feature(“ann1”).set(“posxexpr”, 0.001);
model.result(“pg3”).feature(“ann1”).set(“posyexpr”, 0.002);
model.result(“pg3”).feature(“ann1”).set(“poszexpr”, 0.003);
model.result(“pg3”).feature(“ann1”).set(“text”, “eval(V)”);

Peux-tu créer une boucle qui placerait ces annotation en 10 endroits le long d’une ligne allant de (x,y,z)=(0,0,-0.02) à (x,y,z)=(0,0,0).

Appuyez sur la touche Entrée ou cliquez sur le bouton Soumettre.

Zoom sur la fenêtre Chatbot avec le prompt: Crée des annotations. Faites un clic-droit sur la zone contenant le code généré et sélectionnez Envoyez au Java Shell.

Zoom sur l'option Envoyer au Java Shell mise en évidence dans un menu contextuel. Dans la fenêtre Java Shell, cliquez sur Exécuter pour ajouter les annotations.

Zoom sur la fenêtre Java Shell avec l'option Exécuter sélectionnée.

L'interface utilisateur de COMSOL Multiphysics montrant le Constructeur de modèles avec le noeud Annotation sélectionné, la fenêtre de réglages correspondante, et un modèle de pacemaker dans la fenêtre graphique. Essayons maintenant quelque chose d’un peu plus avancé. Commencez par supprimer tous les noeuds Annotation générés. Pour ce faire, maintenez la touche Shift enfoncée pour sélectionner plusieurs noeuds, puis cliquez avec le bouton droit et choisissez Supprimer dans le menu contextuel.

Zoom sur les 10 noeuds Annotation mis en évidence et le menu contextuel correspondant, avec l'option Supprimer mise en évidence. Allez dans la fenêtre Chatbot et tapez le prompt:

A la place, crée plutôt des annotations dans un motif hélicoïdal centré le long de la même ligne avec un rayon d’hélice de 0.0025.

Zoom sur le prompt dans la fenêtre Chatbot, configuré sur: A la place, crée plutôt des annotations dans un motif hélicoïdal centré le long de la même ligne avec un rayon d'hélice de 0.0025, écrit en anglais Cliquez sur le bouton Soumettre ou appuyez sur la touche Entrée.

Zoom sur le prompt dans la fenêtre Chatbot. Maintenant, répétez la procédure précédente. Faites un clic-droit sur le code généré, envoyez-le au Java Shell, et cliquez sur Exécuter pour afficher les annotations.

Zoom sur un modèle de pacemaker avec 10 annotations en évidence. Ensuite, augmentons la densité des annotations. Supprimez d’abord les 10 noeuds Annotation qui ont été créés. Puis, utilisez le prompt suivant dans la fenêtre Chatbot:

Maintenant, double la fréquence et crée 20 annotations.

Une fois de plus, faites un clic-droit sur le code généré et envoyez le au Java Shell, qui apparaîtra comme suit.

Zoom sur la fenêtre Java Shell montrant le code généré pour créer les annotations. Cliquez sur Exécuter pour afficher les annotations.

Zoom sur le modèle de pacemaker avec 20 annotations en évidence. Ces exemples vous donnent un aperçu de la manière dont la fonctionnalité chatbot peut être utilisée pour résoudre très rapidement des tâches d’automatisation sophistiquées. En utilisant une combinaison des fonctionnalités Enregistrer la méthode (ou Enregistrer le code) et les prompts dans la fenêtre Chatbot, vous pouvez guider les réponses du chatbot afin d’augmenter rapidement la complexité de votre code. Pour une utilisation répétée du même code, au lieu d’utiliser la fenêtre Java Shell, vous pouvez saisir le code dans une méthode dans l’éditeur de méthodes. Notez également que nous aurions pu enregistrer la suppression des noeuds Annotation et automatiser cette partie du processus.

Déboguer un code

Une autre utilisation de la fonctionnalité chatbot consiste à détecter les bugs subtils dans votre code qui vont au-delà de simples erreurs de syntaxe. Pour illustrer cela, utilisons l’application de simulation Tuning Fork de la bibliothèque d’applications, disponible sous COMSOL Multiphysics > Applications. Le tutoriel associé à cette application ne nécessite aucun produit complémentaire.

Zoom sur la bibliothèque d'applications avec l'application de simulation Tuning Fork mise en évidence. Accédez au Constructeur d’applications et, dans la branche Méthodes, double-cliquez sur la méthode setMaterial.

L'interface du Constructeur d'applications avec la méthode setMaterial sélectionnée, la fenêtre de réglages correspondante, et la fenêtre de Chatbot ouverte en bas. Pour trouver les erreurs de syntaxe, vous pouvez cliquer sur le bouton Vérifier la syntaxe dans l’onglet Méthode. Cette fonctionnalité n’utilise pas la fenêtre Chatbot mais réalise une vérification au niveau du compilateur. A l’aide du compilateur Java intégré, l’éditeur de méthodes compile automatiquement une méthode quand, par exemple, vous quittez une fenêtre ou enregistrez votre application ou votre modèle.

Zoom sur l'onglet Méthode avec l'option Vérifier la syntaxe mise en évidence. Pour trouver des bugs dans le code qui ne sont pas liés à la syntaxe, la fenêtre Chatbot peut être utile.

Introduisons un bug dans le code pour montrer comment cette fonctionnalité peut être utilisée. Dans la méthode setMaterial, remplacez la référence au matériau mat4 par mat3. Désormais, quand un utilisateur sélectionne le matériau iron, avec l’étiquette “mat4”, l’application de simulation utilisera à la place les propriétés du matériau copper, avec l’étiquette “mat3”.

Zoom sur le code dans la fenêtre Chatbot avec le menu contextuel ouvert, et l'option Trouver des Bugs dans setMaterial sélectionnée. La méthode est maintenant associée à la fenêtre Chatbot avec le prompt prédéfini I need help finding potential bugs in setMaterial, ignoring any code style issues.. (Les deux autres options du sous-menu Envoyer au Chatbot, Conversation à propos de setMaterial et Suggérer des améliorations à setMaterial, ont des prompts prédéfinis différents.)

Appuyez sur la touche Entrée ou cliquez sur le bouton Soumettre.

Zoom sur la fenêtre Chatbot avec le réglage Conversation configuré sur: Nouvelle conversation. La fenêtre Chatbot détecte l’erreur et affiche le message suivant:

**Duplicate Material Selection for Copper and Iron:**
– Both “copper” and “iron” are setting the selection for `mat3`. This might be intentional, but if different materials are expected, this is a bug.

Il souligne également deux autres problèmes potentiels. En revanche, dans ce cas, il s’agit de faux positifs, car la fenêtre Chatbot n’a pas reçu toutes les informations concernant les autres méthodes et fonctionnalités de l’application.

Zoom sur la fenêtre Chatbot avec Conversation configurée sur: I need help find potential bugs in setMaterial, ignoring any code style issues. Dans ce cas, le bug était relativement facile à détecter sans l’aide de la fenêtre Chatbot. Toutefois, imaginez que l’application prenne en charge 40 ou 50 matériaux au lieu de seulement cinq; auquel cas, quand vous travaillez avec des blocs de code plus longs, utiliser la fenêtre Chatbot peut considérablement accélérer le processus de débogage.

Vous pouvez également demander des conseils de modélisation dans la fenêtre Chatbot. Supposons que nous sommes novices dans le domaine de la modélisation électrostatique et que nous souhaitons savoir quelles conditions aux limites sont importantes pour ce type de modèles. Pour cela, dans la fenêtre Chatbot, sélectionnez le sujet Modélisation. Entrez le prompt:

Quelles sont les conditions aux limites les plus importantes pour l’électrostatique?

La fenêtre Chatbot donne une réponse assez satisfaisante. Notez, cependant, qu’elle mentionne le type “Conditions aux limites mixtes”. Bien que cette condition aux limites soit disponible dans le logiciel COMSOL®, elle nécessite le module AC/DC et porte un nom différent: Capacité distribuée.

Zoom sur la fenêtre Chatbot avec le prompt: Quelles sont les conditions aux limites les plus importantes pour l'électrostatique? écrit en anglais En général, pour les questions d’introduction à la modélisation, la fenêtre Chatbot peut constituer un point de départ utile. En revanche, pour les sujets plus avancés, il est conseillé de consulter également la Documentation COMSOL (disponible aussi dans le logiciel via la fenêtre Aide) et les manuels pertinents sur le sujet. Si vous sélectionnez l’option Général au lieu de Programmation ou Modélisation, vous pouvez soumettre des prompts sur n’importe quel sujet, y compris ceux qui ne sont pas liés à COMSOL Multiphysics®.

Identifier les erreurs de configuration des modèles

Vous pouvez également utiliser la fenêtre Chatbot pour détecter des erreurs simples dans la configuration de votre modèle. Bien que la fonctionnalité chatbot ne comprenne pas tous les aspects de la modélisation et de la simulation, elle peut tout de même s’avérer utile; par exemple, elle peut identifier les fautes de frappe dans les expressions utilisées dans le Constructeur de modèles.

Pour essayer cette fonctionnalité, ouvrez le tutoriel Laser Heating of a Silicon Wafer de la Bibliothèque d’applications sous COMSOL Multiphysics > Heat Transfer. Ce modèle, qui illustre une simulation transitoire d’un laser se déplaçant sur une plaquette de silicium, ne nécessite aucun produit complémentaire.

Introduisons maintenant une faute de frappe volontaire dans l’une des définitions de variables. L’expression qui définit la distance par rapport au point focal s’écrit correctement comme suit:

sqrt((x-x_focus)^2+(y-y_focus)^2)

L'interface utilisateur de COMSOL Multiphysics montrant le Constructeur de modèles avec le noeud Variables 1 sélectionné et la fenêtre de réglages correspondante. Nous remplacerons celle-ci par l’expression incorrecte, où le second terme utilise par erreur x_focus au lieu de y_focus:

sqrt((x-x_focus)^2+(y-x_focus)^2)

Enregistrez, ensuite le fichier en sélectionnant Enregistrez sous dans le menu Fichier et en choisissant l’option Modèle au format Java (.java).

Zoom sur le menu déroulant: Fichier, avec l'option Enregistrer en tant que... mise en évidence.

Zoom sur le menu déroulant: Enregistrer en tant que, avec l'option Modèle au format Java mise en évidence. Ceci créera un fichier texte avec une extension .java, qui peut être compilé en un fichier .class Java pour être utilisé comme composant Java autonome. Cette approche permet d’exécuter COMSOL Multiphysics® sans l’interface utilisateur COMSOL Desktop®. Le fichier .java contient l’ensemble de la configuration du modèle via le code API. Dans ce cas, nous utiliserons le fichier uniquement pour identifier les problèmes potentiels dans la définition du modèle. (Notez que l’utilisation de cette fonctionnalité n’a aucun rapport avec la compilation d’applications de simulation avec COMSOL Compiler™.)

Ouvrez le fichier .java dans un éditeur de texte, copiez le code et collez-le dans la fenêtre Chatbot, en utilisant un prompt tel que:

Peux-tu trouver des erreurs dans ce modèle:

zoom sur la fenêtre Chatbot avec le prompt: Peux-tu trouver des erreurs dans ce modèle, rédigé en anglais. En effet, le premier problème détecté par la fenêtre Chatbot est la faute de frappe que nous venons d’introduire. Il indique:

Here are a few potential issues in the provided code:

1. **Duplicate Variable Definition**: The variable `r_focus` is defined twice with different expressions. The first definition is correct:
“`java
model.component(“comp1”).variable(“var1”).set(“r_focus”, “sqrt((x-x_focus)^2+(y-y_focus)^2)”);
“`
The second definition at the end of the method seems incorrect:
“`java
model.component(“comp1”).variable(“var1”).set(“r_focus”, “sqrt((x-x_focus)^2+(y-x_focus)^2)”);
“`
Ensure you use the correct expression for `r_focus`.

Zoom sur la fenêtre  Chatbot, listant quelques problèmes potentiels dans le code du modèle fourni. Ce type de débogage peut être utile pour détecter les petites erreurs dans la configuration du modèle. Pour les modèles plus complexes, vous pouvez supprimer les redondances et simplifier le code avant d’enregistrer le modèle sous forme de fichier .java. Pour cela, vous pouvez compacter l’historique afin que le fichier ne contienne que les paramètres actuels du modèle (Fichier > Compacter l’historique).

Prochaine étape

Dans cet article de blog, nous avons mis en avant les capacités de la fonctionnalité Chatbot à l’aide du tutoriel Pacemaker Electrode. Si vous souhaitez explorez vous-même le fichier utilisé pour créer l’exemple Pacemaker Electrode, cliquez sur le bouton ci-dessous.

Pour aller plus loin

Vous souhaitez en savoir plus sur le Constructeur d’applications et la COMSOL API? Consultez la documentation associée:

 
Microsoft et Azure sont des marques commerciales du groupe de sociétés Microsoft. OpenAI est une marque commerciale de OpenAI, Inc. Oracle et Java sont des marques déposées de Oracle et/ou ses sociétés affiliées.

Catégories


Commentaires (0)

Laisser un commentaire
Connexion | Inscription
Chargement ...
VISITEZ LE BLOG COMSOL