EGIM
 
Documents disponibles :
Algèbre et analyse tensorielle
Mécanique des milieux continus
Élasticité linéaire
Statique des poutres
Théorie des coques
Éléments finis
Grandes déformations
Liens intéressants



Packages pour le calcul tensoriel dans Maple et dans Mathematica

Initialement, les deux packages tens3d et tenssurf ont été écrits dans 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 Mathematica (le package TensSurf dans Mathematica est en projet).

Les outils fournis dans le package sont des opérateurs mathématiques généraux, et 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 sur des variétés 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és avec Maple V4.0b en Sept 97), Maple V5 (testés avec Maple V5.1 en Sept 2000), Maple V6 (testés avec MapleV6.0 en Juin 2001), Maple V9 (testés en Sept 2005), et enfin dans Mathematica (version 5.2 testée en décembre 2007).

Les concepts sur lesquels sont basés ces packages sont exposés dans le chapitre 1 de mon livre :
"Fondements de la mécanique des milieux continus" de Jean Garrigues
aux éditions Hermes (ISBN 978-2-7462-1607-5).

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) Beaucoup d'opérateurs (notamment le produit scalaire de deux vecteurs et le produit vectoriel de deux vecteurs) supposent que les composantes sont 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).
On 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 les mêmes fichiers. Pour les installer, il suffit d'importer les 3 fichiers maple.lib maple.ind et maple.hdb, et de les enregistrer 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 à la fois : tens.zip
les 3 à la fois :tens.tar.gz

POUR MAPLE V5 :
les 3 à la fois : tens.zip
les 3 à la fois : tens.tar.gz

POUR MAPLE V6 (on m'a signalé qu'elle fonctionne avec la version 7 mais je ne l'ai pas vérifié personnellement! Par contre, je l'ai testée dans la démo gratuite version 8.) :
les 3 à la fois + initialisations + demos : tensv6.zip
les 3 à la fois + initialisations + demos :tensv6.tar.gz

POUR MAPLE V9.x :
les 3 à la fois + initialisations + demos : tens3dtenssurf9.zip
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.
Autre remarque : le package utilise maintenant la bibliothèque LinearAlgebra. Les sorties de composantes sont dans ce format, mais les entrées de composantes acceptent l'ancienne syntaxe. Les anciennes feuilles de calcul sont donc normalement opérationnelles sans modifications.

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

Fichiers de démonstration (Maple V4 et Maple V5)

Les deux fichiers
demo3d.mws
demosurf.mws
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.

Note : pour les versions 6 et 9, les demos sont inclus dans les fichiers compressés.

Fichier de démonstration (Mathematica)
La feuille de calcul demoTens3D.zip est un bon point de départ pour faire connaissance avec leurs fonctionnalité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 cette instruction à 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
  • ou sous UNIX/LINUX,c'est le fichier :
    ~/.mapleinit
  • ou sous UNIX/LINUX, et que vous êtes chef et que vous voulez rendre ces packages disponibles à tous les utilisateurs, c'est le fichier :
    répertoire_d'installation_de_maple/lib/init
(Ces fichiers 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 tar (ou le zip). VOUS DEVEZ EN MODIFIER LA PREMIERE LIGNE.

  • 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.

    Conseils d'installation pour Mathematica

    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 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, pour é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 :

    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.

    COPYRIGHT_NOTICE , DESIGN_SCIENCE_LICENCE , (Infos sur ce copyleft.)

    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.

    Les commentaires, critiques et suggestions sont les bienvenus chez jean.garrigues@centrale-marseille.fr.


    Retour à ma page personnelle