ECM
 
Documents disponibles :
Algèbre et analyse tensorielle
Cinématique des milieux continus
Équations générales des milieux continus
Comportement élastique
Statique des poutres
Théorie des coques
Éléments finis
Liens intéressants



Packages pour le calcul tensoriel dans Maple et dans Mathematica

Initialement, les deux packages tens3d et tenssurf ont été écrits dans le logiciel de calcul formel Maple à l'intention des étudiants de feu l'Ecole Supérieure de Mécanique de Marseille, pour les aider dans leurs travaux en mécanique des milieux continus.

Le package Tens3D est maintenant aussi disponible dans le logiciel de calcul formel Mathematica (le package TensSurf dans Mathematica est en projet).

Les outils fournis dans ces packages sont des opérateurs mathématiques généraux, non dédiés à la mécanique, ce qui rend leur utilisation possible dans d'autres domaines que la mécanique (tout en restant dans le cadre de la physique classique, l'espace physique est de dimension 3 !).

  • tens3d est un package qui fournit les outils d'algèbre et d'analyse tensorielle pour des tenseurs euclidiens réels dans un espace tridimensionnel, pouvant travailler dans un système de coordonnées quelconque.
  • tenssurf fournit les mêmes outils pour des tenseurs définis sur des variétés courbes de dimension 2 plongées dans E3 (surfaces). Il a été spécialement développé pour les besoins de la théorie des coques en mécanique des solides déformables.
Ces packages sont disponibles pour :
 - Maple V4 (testé avec Maple V4.0b en septembre 97),
 - Maple V5 (testé avec Maple V5.1 en septembre 2000),
 - Maple V6 (testé avec MapleV6.0 en juin 2001),
 - Maple V9 (testé en Sept 2005),
 - Mathematica V5.2 (testé en décembre 2007).

Les concepts sur lesquels sont basés ces packages sont exposés dans le cours Algèbre et analyse tensorielle sur ce site.

Pourquoi ces packages ?

Ils ont été écrits pour combler un certain nombre de défauts dans les fonctions standard des logiciels de calcul formel :
1) Les vecteurs ne sont que des matrices colonnes, sans référence à la base dans laquelle les composantes du vecteur sont valides.
2) Les opérateurs algébriques (le produit scalaire, le produit vectoriel et le produit mixte) supposent que les composantes des vecteurs sont données dans une base orthonormée.
3) Les outils tensoriels sont généralement pensés pour les mécaniciens relativistes, comme si le formalisme tensoriel était inutile ailleurs.
4) Il n'y a pas d'opérateurs algébriques tensoriels tels que le produit tensoriel (contracté ou non).
5) Les opérateurs différentiels gradient, divergence, etc. ne fonctionnent que dans un nombre limité de systèmes de coordonnées et ne sont définis que pour des tenseurs d'ordre 0 ou 1.
6) Les packages complémentaires de calcul vectoriel n'utilisent que des systèmes de coordonnées dont la base naturelle est orthonormale.

Les packages tens3d et tenssurf tentent de résoudre ces difficultés. Dans ces packages :

  • Les tenseurs (et donc en particulier les vecteurs) sont des êtres mathématiques à part entière, et on peut faire des opérations tensorielles entre tenseurs indépendemment de la base dans laquelle on a donné leurs composantes. Ceci est possible car de manière interne, un tenseur est un ensemble (composantes + base). De plus, les bases ne sont pas nécessairement orthonormées.
  • Les systèmes de coordonnées peuvent être absolument quelconques. On les définit en donnant une expression du point courant OM en fonction des coordonnées.
  • Les opérateurs différentiels classiques (gradient, divergence, rotationnel, laplacien) sont définis de manière intrinsèque, c'est-à-dire indépendemment du système de coordonnée. (de manière interne, leurs composantes sont calculées sur la base naturelle associée au système de coordonnées).
L'utilisateur est ainsi dispensé de se soucier des changements de base et les composantes d'un tenseur peuvent être affichées dans la base de son choix.

Les fichiers à télécharger pour Maple :

Les deux packages tens3d et tenssurf et leurs aides en ligne sont groupés dans le même package. Pour les installer, il suffit d'importer les 3 fichiers maple.lib (le code), maple.ind (index des fonctions) et maple.hdb (l'aide en ligne). Ils sont livrés ensemble dans un fichier compressé tensVx.zip à décompresser et dont vous devez placer le contenu dans un même répertoire de votre choix accessible en lecture.

Les fonctionnalités dans les trois versions sont exactement les mêmes, mais les fichiers à télécharger sont différents (les développeurs de Maple ont changé des noms de fonctions en passant de la version 4 à la version 5 !)

POUR MAPLE V4 : les 3 fichiers à la fois : tensV4.zip

POUR MAPLE V5 : les 3 fichiers à la fois : tensV5.zip

POUR MAPLE V6 : les 3 fichiers + initialisations + demos : tensV6.zip
Remarque :On m'a signalé qu'elle fonctionne avec la version 7 mais je ne l'ai pas vérifié personnellement ! En revanche, je l'ai testée dans la démo gratuite version 8.

POUR MAPLE V9.x : les 3 fichiers + initialisations + demos : tensV9.zip
Remarque 1 : Une certaine astuce de programmation ne marche plus depuis la version 9. J'ai dû reprogrammer une partie du code. J'en ai profité pour ajouter quelques fonctionnalités que je vous laisse découvrir dans le fichier demo.
Remarque 2 : le package utilise maintenant la bibliothèque LinearAlgebra. Les tableaux de composantes sont dans ce nouveau format, mais les entrées de composantes acceptent l'ancienne syntaxe. Les anciennes feuilles de calcul sont donc normalement opérationnelles sans modifications.

FICHIERS DÉMOS (Maple V4 et Maple V5) : les deux fichiers demo3d.zip et demosurf.zip sont des feuilles de calcul illustrant respectivement les packages tens3d et tenssurf. Ce sont de bons points de départ pour faire connaissance avec leurs fonctionnalités.
Remarque : pour les versions 6 et 9, les demos sont incluses dans les fichiers compressés.

Conseils d'installation pour Maple

Les trois fichiers maple.lib, maple.ind et maple.hdb doivent se trouver dans un même répertoire, par exemple monrep et surtout pas dans le répertoire lib de l'installation de Maple (qui contient des fichiers de même nom contenant les bibliothèques standards).

Pour dire à Maple où sont les nouvelles bibliothèques, il faut commencer la feuille de calcul par l'instruction :

   libname:=`monrep`,libname:

ou bien ajouter l'instruction ci-dessus à la fin du fichier d'initialisation (à créer si nécessaire) :

  • sous WINDOWS, c'est le fichier :
       répertoire_d'installation_de_maple\\lib\\maple.ini
  • sous UNIX/LINUX,c'est le fichier :
        ~/.mapleinit
  • sous UNIX/LINUX, si vous êtes administrateur de la machine et si vous voulez rendre ces packages disponibles à tous les utilisateurs, c'est le fichier :
       répertoire_d'installation_de_maple/lib/init
(Les fichiers d'initialisation contiennent des instructions qui sont exécutées au lancement de Maple. S'ils n'existent pas, vous pouvez les créer.)

Pour la version 5, dans le fichier d'initialisation, vous pouvez ajouter en dessous de l'instruction précédente, les deux instructions suivantes:
INTERFACE_HELP ( insert, topic = "tens3d", browser = "Mathematics/Packages/Tens3d", library = libname[1] ) :
INTERFACE_HELP ( insert, topic = "tenssurf", browser = "Mathematics/Packages/TensSurf", library = libname[1] ) :
afin que les packages apparaissent dans le navigateur de l'aide.

Pour la version 6, le fichier "initialisations" est compris dans le zip. VOUS DEVEZ EN MODIFIER LA PREMIERE LIGNE de la manière suivante :

  • sous WINDOWS, il doit être renommé en répertoire_d'installation_de_maple\bin\maple.ini
  • sous UNIX/LINUX il doit être renommé en ~/.mapleinit ou si vous êtes chef et que vous voulez que tous les utilisateurs en profitent, renommez le en répertoire_d'installation_de_maple/lib/init
  • Pour la version 9, les instructions d'installation sont identiques à la version 6.

    Les fichiers à télécharger pour Mathematica :

    POUR MATHEMATICA V 5.2 : Tens3D.zip
    Ce package ne contient que Tens3D, l'écriture de TensSurf est en projet.

    FICHIER DÉMO (Mathematica V 5.2) : demoTens3D.nb
    Cette feuille de calcul est un bon point de départ pour faire connaissance avec les fonctionnalités.

    Conseils d'installation pour Mathematica 5.2

    1) Dans une feuille de calcul de Mathematica, faire la commande : $Path.
    Cette commande renvoie la liste des répertoires connus de Mathematica.

    2) Décompresser le fichier Tens3D.zip et copier le répertoire Tens3D et son contenu dans l'un des répertoires donnés par la commande précédente (choisir de préférence un répertoire extérieur au répertoire d'installation de Mathematica, afin d'éviter d'écraser le package lors de la prochaine mise à jour).

    3) Dans le menu "Help", lancer "Rebuilt Help Index" pour insérer l'aide du package dans l'onglet "Add-ons & Links" du Help Browser.

    Convention d'utilisation :

    Ces packages ont été testés et vérifiés avec soin. Toutefois, l'erreur est humaine. Même Maple ou Mathematica contiennent des bogues :-)
    En chargeant et en utilisant ces packages, vous acceptez le fait que vous les utilisez à vos risques et périls. L'auteur décline toute responsabilité vis-à-vis des erreurs qui pourraient s'y trouver et des conséquences qui pourraient en résulter.

    Ces packages sont libres de toute diffusion. Il est interdit de les commercialiser. Si vous diffusez ces packages, vous devez les distribuer intégralement, gratuitement, sans modifications et en précisant leur origine.

    En fonction des commentaires, suggestions ou critiques qui me seront parvenus, ces packages seront éventuellement corrigés ou complétés. Dans la mesure du possible, je maintiendrai une compatibilité ascendante des feuilles de calcul.

    La diffusion étant incontrôlée, les modifications ou mises à jour seront faites sans avis. La distribution disponible sur cette page sera toujours la dernière version. Tous commentaires, critiques ou corrections sont les bienvenus chez jean.garrigues@centrale-marseille.fr


    Retour à ma page principale