Add FEM Equation Tutorial/fr: Difference between revisions

From FreeCAD Documentation
No edit summary
(Updating to match new version of source page)
 
(43 intermediate revisions by 3 users not shown)
Line 1: Line 1:
<languages/>
<languages/>

{{TutorialInfo/fr
{{TutorialInfo/fr
|Topic=
|Topic=Ajouter des équations FEM
|Level=
|Level=Avancé
|Time=
|Time=1 jour
|Author=[[User:M42kus|M42kus]]
|Author=[[User:JohnWang|JohnWang]]
|FCVersion=
|FCVersion=0.19
|Files=
}}
}}

== Introduction ==


Dans ce tutoriel, nous allons ajouter l'équation de flux à FreeCAD et implémenter le support pour le solveur Elmer. Assurez-vous d'avoir lu et compris [[Extend_FEM_Module/fr|Module d'extension FEM]] avant de lire ce tutoriel.
Dans ce tutoriel, nous allons ajouter l'équation de flux à FreeCAD et implémenter le support pour le solveur Elmer. Assurez-vous d'avoir lu et compris [[Extend_FEM_Module/fr|Module d'extension FEM]] avant de lire ce tutoriel.
Line 17: Line 19:
* Après cela, l'exportation d'analyse sous Elmer doit être étendue pour prendre en charge le nouveau type d'équation.
* Après cela, l'exportation d'analyse sous Elmer doit être étendue pour prendre en charge le nouveau type d'équation.


<span id="New_equation_type"></span>
== Ajout d'un nouveau type d'équation ==
== Ajout d'un nouveau type d'équation ==


Dans cette étape, nous allons modifier les fichiers suivants:
Dans cette étape, nous allons modifier le fichier suivant:

* src/Mod/Fem/femsolver/equationbase.py
* src/Mod/Fem/femcommands/commands.py
* {{FileName|src/Mod/Fem/femsolver/equationbase.py}}

* src/Mod/Fem/Gui/Workbench.cpp
Le type d'équation est partagé entre tous les objets équation des différents solveurs. Chaque type a un spécificateur de chaîne (par exemple, "Heat") et une commande dédiée qui ajoute l'équation au solveur sélectionné. Cela permet une interface graphique plus simple où nous n'avons qu'un seul bouton pour l'équation de chaleur qui est utilisé pour tous les solveurs supportés.
* src/Mod/Fem/Gui/Resources/Fem.qrc

Le type d'équation est partagé par tous les objets d'équation des différents solveurs. Chaque type a un spécificateur de chaîne (par exemple &quot;Heat&quot;) et une commande dédiée qui ajoute l'équation au solveur sélectionné. Cela permet une interface graphique plus simple dans laquelle nous n’avons qu’un bouton pour l’équation de la chaleur utilisée par tous les solveurs supportés.
Tout d'abord, ajoutez la nouvelle équation au module {{Incode|equationbase.py}}. Chaque équation nécessite deux classes. Un proxy de document et un proxy de vue. Ces deux classes seront utilisées plus tard comme classes de base pour les classes d'équation spécifiques à Elmer. Il suffit de les copier-coller depuis un type d'équation existant et d'ajuster le chemin de l'icône dans {{Incode|getIcon(self)}} du proxy d'affichage.


{{Code|code=
Ajoutez d’abord la nouvelle équation au module {{incode|equationbase.py}}. Chaque équation nécessite deux classes. Un proxy document et un proxy vue. Copiez-les simplement à partir d'un type d'équation existant et ajustez le chemin de l'icône à l'intérieur de getIcon(self) du proxy vue.
<pre>class FlowProxy(BaseProxy):
class FlowProxy(BaseProxy):
pass
pass


class FlowViewProxy(BaseViewProxy):
class FlowViewProxy(BaseViewProxy):
def getIcon(self):
def getIcon(self):
return &quot;:/icons/FEM_EquationFlow.svg&quot;</pre>
return ":/icons/FEM_EquationFlow.svg"
}}


<span id="New_Elmer&#039;s_equation_object"></span>
Ces deux classes seront ensuite utilisées comme classes de base pour les classes d'équations spécifiques d'Elmer. En plus de ces classes de base, nous devons créer une nouvelle classe de commandes qui ajoute une équation de flux à l'objet solveur sélectionné. De plus, la nouvelle image .svg doit être enregistrée pour le bouton GUI avec {{incode|<file>icons/FEM_EquationFlow.svg</file>}} dans {{incode|Fem.qrc} (dans {{incode|/Gui/Resources/}}). Le fichier .svg associé doit être placé dans {{incode|/Gui/Resources/icons/}}.
== L'objet équation d'Elmer ==


Dans cette étape, nous allons modifier le fichier suivant:
La commande doit être ajoutée au module {{incode|femcommands/commands.py}}. Copiez simplement une commande existante et ajustez l'icône, le texte du menu et l'info-bulle dans __init __ (auto). N'oubliez pas d'enregistrer la commande au bas du fichier de module en utilisant la méthode addCommand(...). Veuillez consulter la discussion sur le forum à https://forum.freecadweb.org/viewtopic.php?f=18&t=46693&start=10#p402004 si des icônes sont impliquées.
<pre>
class _EquationFlow(CommandManager):
"The FEM_EquationFlow command definition"


* {{FileName|src/Mod/Fem/femsolver/elmer/equations/flow.py}}
def __init__(self):
super(_EquationFlow, self).__init__()
self.menuetext = "Flow equation"
self.tooltip = "Creates a FEM equation for flow"
self.is_active = "with_solver_elmer"
self.do_activated = "add_obj_on_gui_selobj_noset_edit"
...
FreeCADGui.addCommand(
"FEM_EquationFlow",
_EquationFlow()
)
</pre>


et ajoutez le nouveau fichier suivant:
Notre commande nouvellement créée doit toujours être accessible via l'interface graphique de l'atelier de travail FEM. Pour l'ajouter à la barre d'outils, recherchez le bout de code suivant dans {{incode|Workbench.cpp}} et ajoutez la nouvelle commande au reste des commandes d'équation.
<pre>
Gui::ToolBarItem* solve = new Gui::ToolBarItem(root);
solve->setCommand("Solve");
*solve << "FEM_SolverCalculixCxxtools"
<< "FEM_SolverCalculiX"
<< "FEM_SolverElmer"
<< "Separator"
<< "FEM_EquationElasticity"
<< "FEM_EquationElectrostatic"
+ << "FEM_EquationFlow"
<< "FEM_EquationFluxsolver"
<< "FEM_EquationElectricforce"
<< "FEM_EquationHeat"
<< "Separator"
<< "FEM_SolverControl"
<< "FEM_SolverRun";
</pre>
Nous allons également ajouter la commande d’équation de flux au menu de résolution de l'atelier FEM. Pour ce faire, insérez notre équation dans l'extrait de code suivant dans {{incode|Workbench.cpp}}.
<pre>
Gui::MenuItem* solve = new Gui::MenuItem;
root->insertItem(item, solve);
solve->setCommand("&Solve");
*solve << "FEM_SolverCalculixCxxtools"
<< "FEM_SolverCalculiX"
<< "FEM_SolverElmer"
<< "FEM_SolverZ88"
<< "Separator"
<< "FEM_EquationElasticity"
<< "FEM_EquationElectrostatic"
+ << "FEM_EquationFlow"
<< "FEM_EquationFluxsolver"
<< "FEM_EquationElectricforce"
<< "FEM_EquationHeat"
<< "Separator"
<< "FEM_SolverControl"
<< "FEM_SolverRun";
</pre>


* {{FileName|src/Mod/Fem/ObjectsFem.py}}
* {{FileName|src/Mod/Fem/CMakeLists.txt}}


== Ajout de l'équation dans Elmers ==

Dans cette étape, nous allons modifier le fichier suivant:
* src/Mod/Fem/CMakeLists.txt
et ajoutez le nouveau fichier suivant:
* src/Mod/Fem/femsolver/elmer/equations/flow.py
Commençons par le module qui implémente l'objet document. Il peut être copié à partir d'une équation existante.
Commençons par le module qui implémente l'objet document. Il peut être copié à partir d'une équation existante.
* Si la nouvelle équation ne prend en charge que les mots-clés des systèmes '''linéaires''', copiez le module {{incode|femsolver/elmer/equations/elasticity.py}}.
* Si la nouvelle équation ne prend en charge que les mots-clés des systèmes '''linéaires''', copiez le module {{incode|femsolver/elmer/equations/elasticity.py}}.
* S'il prend également en charge les mots-clés '''non linéaires''', copiez {{incode|femsolver/elmer/equations/heat.py}}.
* S'il prend également en charge les mots-clés '''non linéaires''', copiez {{incode|femsolver/elmer/equations/heat.py}}.
L'équation de l'écoulement dans Elmer est une équation potentiellement non linéaire. Cela signifie que nous allons focaliser notre travail sur {{incode|heat.py}}.
L'équation de l'écoulement dans Elmer est une équation potentiellement non linéaire. Cela signifie que nous allons focaliser notre travail sur {{incode|heat.py}}.

<span id="Keywords"></span>
=== Mots-clés ===

* Si la nouvelle équation ne supporte que les mots-clés pour les systèmes "linéaires", copiez le module {{Incode|femsolver/elmer/equations/elasticity.py}}.
* Si la nouvelle équation supporte les mots-clés pour les systèmes ''linéaires'' et ''non linéaires'', copiez le module {{Incode|femsolver/elmer/equations/heat.py}}.

L'équation du flux dans Elmer est une équation potentiellement non linéaire. Cela signifie que nous allons baser notre travail sur {{Incode|heat.py}}.

<span id="Editing_files"></span>
=== Modification des fichiers ===


Après avoir copié {{incode|heat.py}} dans {{incode|flow.py}}, ajustez
Après avoir copié {{incode|heat.py}} dans {{incode|flow.py}}, ajustez
Line 111: Line 72:
* les classes de base des classes {{incode|Proxy}} et {{incode|ViewProxy}}
* les classes de base des classes {{incode|Proxy}} et {{incode|ViewProxy}}
* ainsi que les propriétés ajoutées via la fonction {{incode|obj.addProperty(..)}} à ceux requis par l'équation.
* ainsi que les propriétés ajoutées via la fonction {{incode|obj.addProperty(..)}} à ceux requis par l'équation.

<pre>
{{Code|code=
def create(doc, name=&quot;Flow&quot;):
def create(doc, name="'''Flow'''"):
return femutils.createObject(
return femutils.createObject(
doc, name, Proxy, ViewProxy)
doc, name, Proxy, ViewProxy)


class Proxy(nonlinear.Proxy, equationbase.'''Flow'''Proxy):


Type = "Fem::EquationElmer'''Flow'''"
class Proxy(nonlinear.Proxy, equationbase.FlowProxy):

Type = &quot;Fem::EquationElmerFlow&quot;


def __init__(self, obj):
def __init__(self, obj):
Line 125: Line 86:
obj.Priority = 10
obj.Priority = 10


class ViewProxy(nonlinear.ViewProxy, equationbase.'''Flow'''ViewProxy):

class ViewProxy(nonlinear.ViewProxy, equationbase.FlowViewProxy):
pass
pass
}}
</pre>

Ensuite, vous devez changer les propriétés ajoutées via la fonction {{Incode|obj.addProperty(..)}} pour celles nécessaires à l'équation.

Au moment de la rédaction de ce tutoriel, l'équation de flux Elmer n'a aucunes propriétés particulières. Voir l'équation d'élasticité d'Elmer pour un exemple avec des propriétés.
Au moment de la rédaction de ce tutoriel, l'équation de flux Elmer n'a aucunes propriétés particulières. Voir l'équation d'élasticité d'Elmer pour un exemple avec des propriétés.


Enfin, il faut enregistrer une définition de '''makeEquationStatcurrent''' dans {{incode|ObjectsFem.py}} en dupliquant une entrée disponible.
Enfin et surtout, enregistrez le nouveau fichier de module ({{incode|flow.py}}) dans les deux fichiers CMakeLists.txt comme décrit dans [https://www.freecadweb.org/wiki/Extend_FEM_Module/fr Module d'extension FEM]. Les listes appropriées peuvent être facilement trouvées en recherchant les fichiers de modules d’équations existants d’Elmer.


Enfin et surtout, enregistrez le nouveau fichier de module ({{incode|flow.py}}) dans les deux fichiers {{incode|src/Mod/Fem/CMakeLists.txt}} comme décrit dans [https://www.freecadweb.org/wiki/Extend_FEM_Module/fr Module d'extension FEM]. Les listes appropriées peuvent être facilement trouvées en recherchant les fichiers de modules d’équations existants d’Elmer.

<span id="Extend_Solver_Object"></span>
== Extension de l'objet du solveur ==
== Extension de l'objet du solveur ==


Dans cette étape, nous allons modifier le fichier suivant:
Dans cette étape, nous allons modifier le fichier suivant:

* src/Mod/Fem/femsolver/elmer/solver.py
* {{FileName|src/Mod/Fem/femsolver/elmer/solver.py}}

À l'heure actuelle, nous avons informé FreeCAD qu'il existe un nouveau type d'équation et nous avons même ajouté une commande qui ajoute cette équation à l'objet solveur sélectionné. Nous avons également implémenté un objet d'équation concret pour Elmer. Que reste-t-il à faire maintenant pour faire le lien entre Elmer et l'équation de débit. Cela doit être fait directement dans l'objet solveur Elmer.
À l'heure actuelle, nous avons informé FreeCAD qu'il existe un nouveau type d'équation et nous avons même ajouté une commande qui ajoute cette équation à l'objet solveur sélectionné. Nous avons également implémenté un objet d'équation concret pour Elmer. Que reste-t-il à faire maintenant pour faire le lien entre Elmer et l'équation de débit. Cela doit être fait directement dans l'objet solveur Elmer.


Enregistrez le module dans lequel nous venons d'implémenter notre nouvel objet équation ({{incode|flow.py}}) avec le spécificateur d'équation de l'étape 1 (&quot;Flow&quot;) dans la liste {{incode|_EQUATIONS}} dans {{incode|elmer/solver.py}}.
<div class="mw-translate-fuzzy">

Enregistrez le module dans lequel nous venons d'implémenter notre nouvel objet équation (flow.py) avec le spécificateur d'équation de l'étape 1 ("Flow") dans la liste Proxy._EQUATIONS dans elmer/solver.py.
{{Code|code=
</div>
from .equations import electrostatic
<pre>
+from .equations import flow

...

_EQUATIONS = {
_EQUATIONS = {
&quot;Heat&quot;: heat,
"Heat": heat,
&quot;Elasticity&quot;: elasticity,
"Elasticity": elasticity,
+ &quot;Flow&quot;: flow,
+ "Flow": flow,
}
}
}}
</pre>


<span id="Extend_writer_object"></span>
== Extension de l'analyse à l'export ==
== Extension de l'analyse à l'export ==


Dans cette étape, nous allons modifier le fichier suivant:
Dans cette étape, nous allons modifier le fichier suivant:
* src/Mod/Fem/femsolver/elmer/writer.py
<div class="mw-translate-fuzzy">
C'est la partie la plus exigeante de la mise en œuvre d'une nouvelle équation. Ce fichier contient une classe Writer qui exporte l'analyse au format sif d'Elmer.
</div>


* {{FileName|src/Mod/Fem/femsolver/elmer/writer.py}}
<div class="mw-translate-fuzzy">

C'est la partie la plus exigeante de la mise en œuvre d'une nouvelle équation. Ce fichier contient la classe {{incode|Writer}} qui exporte l'analyse au format sif d'Elmer.

Pour chaque équation prise en charge, il existe une série de méthodes gérant l'exportation de l'équation respective. Copiez-les simplement à partir d'une équation existante et ajustez-les à vos besoins. Notre équation de flux utilise les méthodes suivantes:
Pour chaque équation prise en charge, il existe une série de méthodes gérant l'exportation de l'équation respective. Copiez-les simplement à partir d'une équation existante et ajustez-les à vos besoins. Notre équation de flux utilise les méthodes suivantes:
</div>
* _handleFlow
* _getFlowSolver
* _handleFlowConstants
* _handleFlowMaterial
* _handleFlowInitialVelocity
* _handleFlowBndConditions
* _handleFlowEquation


* {{Incode|_getFlowSolver}}
{{clear}}
* {{Incode|_handleFlow}}

Vous devez enregistrer la méthode {{Incode|_handleFlow}} dans la classe {{Incode|Writer}} :

{{Code|code=
class Writer(object):
...
def write(self):
...
self._handleFlow()

...

}}

{{Incode|_handleFlow}} peut contrôler une série d'autres méthodes détaillées. Notre équation de flux utilise les méthodes détaillées suivantes :

* {{Incode|_handleFlowConstants}}
* {{Incode|_handleFlowMaterial}}
* {{Incode|_handleFlowInitialVelocity}}
* {{Incode|_handleFlowBndConditions}}
* {{Incode|_handleFlowEquation}}

Nous avons maintenant terminé la partie fonction de la nouvelle équation. Ensuite, nous allons connecter la nouvelle équation à travers l'interface graphique.

<span id="Gui_tool_to_create_an_equation"></span>
== Outil de l'interface graphique pour créer une équation ==

Nous venons de créer une nouvelle classe d'équation. Pour y accéder depuis l'interface graphique FEM, nous devons créer un bouton et le lier à la nouvelle classe d'équation. Voici un tutoriel : [[Add_Button_to_FEM_Toolbar_Tutorial/fr|Tutoriel Ajouter un bouton à la barre d'outils FEM]].

[[Category:FEM{{#translation:}}]]
[[Category:FEM{{#translation:}}]]
[[Category:Developer Documentation{{#translation:}}]]

Latest revision as of 10:07, 13 January 2024

Tutoriel
Thème
Ajouter des équations FEM
Niveau
Avancé
Temps d'exécution estimé
1 jour
Auteurs
JohnWang
Version de FreeCAD
0.19
Fichiers exemples
None
Voir aussi
None

Introduction

Dans ce tutoriel, nous allons ajouter l'équation de flux à FreeCAD et implémenter le support pour le solveur Elmer. Assurez-vous d'avoir lu et compris Module d'extension FEM avant de lire ce tutoriel.

La tâche peut être divisée en quatre parties:

  • La première étape consiste à informer l'atelier de travail FEM d'un nouveau type d'équation. Cette étape ne doit être effectuée que si l'équation n'existe pas encore dans FreeCAD (par opposition à une équation qui est déjà dans FreeCAD mais qui n'est pas prise en charge par le solveur cible).
  • La deuxième étape consiste à ajouter un objet document représentant l’équation spécifique d’Elmer.
  • La troisième étape consiste à ajouter la prise en compte de la nouvelle équation dans le solveur d'Elmer.
  • Après cela, l'exportation d'analyse sous Elmer doit être étendue pour prendre en charge le nouveau type d'équation.

Ajout d'un nouveau type d'équation

Dans cette étape, nous allons modifier le fichier suivant:

  • src/Mod/Fem/femsolver/equationbase.py

Le type d'équation est partagé entre tous les objets équation des différents solveurs. Chaque type a un spécificateur de chaîne (par exemple, "Heat") et une commande dédiée qui ajoute l'équation au solveur sélectionné. Cela permet une interface graphique plus simple où nous n'avons qu'un seul bouton pour l'équation de chaleur qui est utilisé pour tous les solveurs supportés.

Tout d'abord, ajoutez la nouvelle équation au module equationbase.py. Chaque équation nécessite deux classes. Un proxy de document et un proxy de vue. Ces deux classes seront utilisées plus tard comme classes de base pour les classes d'équation spécifiques à Elmer. Il suffit de les copier-coller depuis un type d'équation existant et d'ajuster le chemin de l'icône dans getIcon(self) du proxy d'affichage.

class FlowProxy(BaseProxy):
    pass

class FlowViewProxy(BaseViewProxy):
    def getIcon(self):
        return ":/icons/FEM_EquationFlow.svg"

L'objet équation d'Elmer

Dans cette étape, nous allons modifier le fichier suivant:

  • src/Mod/Fem/femsolver/elmer/equations/flow.py

et ajoutez le nouveau fichier suivant:

  • src/Mod/Fem/ObjectsFem.py
  • src/Mod/Fem/CMakeLists.txt

Commençons par le module qui implémente l'objet document. Il peut être copié à partir d'une équation existante.

  • Si la nouvelle équation ne prend en charge que les mots-clés des systèmes linéaires, copiez le module femsolver/elmer/equations/elasticity.py.
  • S'il prend également en charge les mots-clés non linéaires, copiez femsolver/elmer/equations/heat.py.

L'équation de l'écoulement dans Elmer est une équation potentiellement non linéaire. Cela signifie que nous allons focaliser notre travail sur heat.py.

Mots-clés

  • Si la nouvelle équation ne supporte que les mots-clés pour les systèmes "linéaires", copiez le module femsolver/elmer/equations/elasticity.py.
  • Si la nouvelle équation supporte les mots-clés pour les systèmes linéaires et non linéaires, copiez le module femsolver/elmer/equations/heat.py.

L'équation du flux dans Elmer est une équation potentiellement non linéaire. Cela signifie que nous allons baser notre travail sur heat.py.

Modification des fichiers

Après avoir copié heat.py dans flow.py, ajustez

  • l’argument name de la fonction create module,
  • l’attribut Type de la classe Proxy
  • les classes de base des classes Proxy et ViewProxy
  • ainsi que les propriétés ajoutées via la fonction obj.addProperty(..) à ceux requis par l'équation.
def create(doc, name="'''Flow'''"):
    return femutils.createObject(
        doc, name, Proxy, ViewProxy)

class Proxy(nonlinear.Proxy, equationbase.'''Flow'''Proxy):

    Type = "Fem::EquationElmer'''Flow'''"

    def __init__(self, obj):
        super(Proxy, self).__init__(obj)
        obj.Priority = 10

class ViewProxy(nonlinear.ViewProxy, equationbase.'''Flow'''ViewProxy):
    pass

Ensuite, vous devez changer les propriétés ajoutées via la fonction obj.addProperty(..) pour celles nécessaires à l'équation.

Au moment de la rédaction de ce tutoriel, l'équation de flux Elmer n'a aucunes propriétés particulières. Voir l'équation d'élasticité d'Elmer pour un exemple avec des propriétés.

Enfin, il faut enregistrer une définition de makeEquationStatcurrent dans ObjectsFem.py en dupliquant une entrée disponible.

Enfin et surtout, enregistrez le nouveau fichier de module (flow.py) dans les deux fichiers src/Mod/Fem/CMakeLists.txt comme décrit dans Module d'extension FEM. Les listes appropriées peuvent être facilement trouvées en recherchant les fichiers de modules d’équations existants d’Elmer.

Extension de l'objet du solveur

Dans cette étape, nous allons modifier le fichier suivant:

  • src/Mod/Fem/femsolver/elmer/solver.py

À l'heure actuelle, nous avons informé FreeCAD qu'il existe un nouveau type d'équation et nous avons même ajouté une commande qui ajoute cette équation à l'objet solveur sélectionné. Nous avons également implémenté un objet d'équation concret pour Elmer. Que reste-t-il à faire maintenant pour faire le lien entre Elmer et l'équation de débit. Cela doit être fait directement dans l'objet solveur Elmer.

Enregistrez le module dans lequel nous venons d'implémenter notre nouvel objet équation (flow.py) avec le spécificateur d'équation de l'étape 1 ("Flow") dans la liste _EQUATIONS dans elmer/solver.py.

from .equations import electrostatic
+from .equations import flow

...

_EQUATIONS = {
    "Heat": heat,
    "Elasticity": elasticity,
+    "Flow": flow,
}

Extension de l'analyse à l'export

Dans cette étape, nous allons modifier le fichier suivant:

  • src/Mod/Fem/femsolver/elmer/writer.py

C'est la partie la plus exigeante de la mise en œuvre d'une nouvelle équation. Ce fichier contient la classe Writer qui exporte l'analyse au format sif d'Elmer.

Pour chaque équation prise en charge, il existe une série de méthodes gérant l'exportation de l'équation respective. Copiez-les simplement à partir d'une équation existante et ajustez-les à vos besoins. Notre équation de flux utilise les méthodes suivantes:

  • _getFlowSolver
  • _handleFlow

Vous devez enregistrer la méthode _handleFlow dans la classe Writer :

class Writer(object):
...
    def write(self):
...
        self._handleFlow()

...

_handleFlow peut contrôler une série d'autres méthodes détaillées. Notre équation de flux utilise les méthodes détaillées suivantes :

  • _handleFlowConstants
  • _handleFlowMaterial
  • _handleFlowInitialVelocity
  • _handleFlowBndConditions
  • _handleFlowEquation

Nous avons maintenant terminé la partie fonction de la nouvelle équation. Ensuite, nous allons connecter la nouvelle équation à travers l'interface graphique.

Outil de l'interface graphique pour créer une équation

Nous venons de créer une nouvelle classe d'équation. Pour y accéder depuis l'interface graphique FEM, nous devons créer un bouton et le lier à la nouvelle classe d'équation. Voici un tutoriel : Tutoriel Ajouter un bouton à la barre d'outils FEM.