Introduction & consignes

Présentation succincte de FEMM

FEMM, pour Finite Element Method Magnetics, est un logiciel de calcul du champ électromagnétique en 2D dans l'approximation des régimes quasi-statiques (ARQS) par la méthode des éléments finis.

C'est un logiciel en source accessible et gratuit, mais non libre (Aladdin Free Public License), développé par une seule personne : David Meeker. Le code s'appuie sur le mailleur libre Triangle et le langage de script Lua, et peut être piloté depuis un logiciel de calcul externe via son propre langage de script.

Il peut résoudre des problèmes en :

  • Électrostatique (Electrostatics Problem) ;
  • Électrocinétique (Current Flow Problem) ;
  • Thermique stationnaire (Heat Flow Problem) ;
  • Magnétostatique et magnétoharmonique (Magnetics Problem).

Pour nous, ses principaux points forts seront :

  • sa facilité d'utilisation ;
  • le fait qu'il soit dédié aux problématiques du Génie Électrique ;
  • sa très bonne intégration avec :
    • des logiciels de calcul scientifique : GNU Octave / MATLAB, Scilab ou encore Mathematica.
    • des langages de programmation : Python ou Lua.

Ses principaux inconvénients sont :

  • l'absence de résolution magnétique en transitoire et donc de couplage circuit ;
  • l'impossibilité de charger une densité de puissance non uniforme par bloc (issue d'une résolution magnétoharmonique par exemple) dans un problème de thermique ;
  • le fait que l'exécutable soit un binaire purement Windows (même s'il est parfaitement compatible avec Wine).

But des Travaux Pratiques

L'objectif des séances de TP est de vous apprendre à définir proprement des problèmes de magnétostatique et magnétoharmonique dans FEMM et les résoudre. Nous privilégierons l'utilisation des fonctionnalités de scriptage via MATLAB (compte-tenu que vous êtes sensés déjà connaître ce logiciel de calcul numérique), ou Python pour ceux qui préfèrent.

À l'issue des séances, vous devriez connaître les bases et certaines particularités de FEMM, et être capables de l'utiliser par la suite pour résoudre des problèmes plus compliqués ou relevant d'autres physiques.

Déroulement des séances

Les sujets ne sont pas calibrés pour correspondre à une séance particulière. Il faut voir l'ensemble des 16 heures prévues comme un unique micro-projet dans lequel seront traités les différents énoncés.

Les séances se dérouleront en salle informatique à l'ENSEM où tout ce qu'il faut est installé par défaut sur les postes de travail (FEMM, MATLAB, Python, GNU Octave).

Si, malheureusement, nous étions obligés d'effectuer les séances en mode « distanciel » via visioconférence : FEMM et MATLAB sont accessibles depuis le portail Virt'UL.

Remarque : Vous pouvez également installer sur votre PC personnel :

Note pour les éventuels linuxiens :

  1. Vous devrez installer FEMM avec Wine, la dernière version stable (avril 2019) fonctionne parfaitement (y compris en 64-bits), testée sans problème sous Debian ou Void.
    Edit 2023 : Il peut y avoir de légers soucis avec les versions récentes de Wine (problème de DLL manquantes). Si cela vous arrive, un winetricks -q vcrun2008 dans un terminal devrait régler le problème. Demandez-moi comment faire si besoin.
  2. Il vous faudra utiliser GNU Octave au lieu de MATLAB, et modifier les fichiers openfemm.m et callfemm.m. Voir ici.
    Je vous donne une version des deux fichiers à utiliser (et à copier dans ~/.wine/drive_c/femm42/mfiles/) :openfemm.m et callfemm.m. Demandez-moi comment faire si besoin (c'est mon mode d'utilisation par défaut).
  3. Pour ceux qui préfère Python, le module PyFEMM fonctionne parfaitement out of the box, testé sans problème sous Debian ou Void.

Note (bis) pour les maceux : il vous faudra procéder comme les linuxiens : Wine+FEMM combiné avec GNU/Octave ou Python. Si vous rencontrez des problèmes, utilisez une machine virtuelle Linux.

Pour résumé, voici les différents modes d'utilisation disponibles et possibles :

  1. FEMM + MATLAB :
  • Salles infos
  • Virt'UL
  • PC personnel sous :
    • Windows
    • Linux
    • MacOS
  1. FEMM + Python (PyFEMM) :
  • Salles infos
  • Virt'UL
  • PC personnel sous :
    • Windows
    • Linux
    • MacOS
  1. FEMM + GNU/Octave :
  • Salles infos
  • Virt'UL
  • PC personnel sous :
    • Windows
    • Linux
    • MacOS

Modalités d'évaluation

Chaque étudiant sera évalué grâce à un compte-rendu unique et personnel synthétisant le travail effectué dans le cadre du micro-projet. Je vous demande d'être synthétique, et limite volontairement la taille de ce rapport à 10 pages maximum.

Faites tout de même un effort de rédaction. Un rapport, c'est : une introduction exposant la problématique, un développement du travail réalisé (pas nécessairement linéaire), et une conclusion pertinente.

Bien que le compte-rendu soit personnel, vous pouvez et êtes même encouragés à travailler en petit groupe (en binôme par exemple).

En plus du rapport, je ferai un court entretien avec chaque groupe en dernière séance, celui-ci sera évalué et permettra de moduler la note de compte-rendu.