Les deux packages tens3d et tenssurf ont été initialement écrits dans le logiciel de calcul formel Maple® pour aider les étudiants de feu l'École Supérieure de Mécanique de Marseille (ESM2) dans leurs travaux en mécanique des milieux continus tridimensionnels et en théorie des coques.
Le package Tens3d, de fonctionnalités quasi identiques, a été développé ultérieurement dans le logiciel de calcul formel Mathematica® (le développement du package TensSurf dans Mathematica® est resté à l'état de projet).
Les outils fournis par 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 de la physique classique (l'espace physique est borné à la 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, décrit par 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 plongées dans l'espace). Il a été spécialement développé pour les besoins de la théorie des coques.
Ils ont été écrits pour combler un certain nombre de défauts constatés dans les fonctions standard des logiciels de calcul formel :
Les vecteurs ne sont que des listes de nombres, sans référence à la base dans laquelle les composantes du vecteur sont valides.
Les opérateurs algébriques vectoriels (produit scalaire, produit vectoriel et produit mixte) supposent que les composantes des vecteurs sont données dans une base orthonormée.
Les outils tensoriels, quand ils existent, sont généralement pensés pour les mécaniciens relativistes, comme si le formalisme tensoriel était inutile ailleurs.
Il n'y a pas d'opérateurs algébriques tensoriels tels que les produits tensoriels contractés ou non.
Les opérateurs différentiels gradient, divergence, rotationnel et laplacien ne sont prévus que dans un nombre limité de systèmes de coordonnées prédéterminés et ne sont définis que pour des champs de tenseurs d'ordre zéro (champs scalaires) ou 1 (champs vectoriels).
Les éventuels packages complémentaires de calcul vectoriel, le plus souvent développés par des contributeurs bénévoles, n'utilisent que des systèmes de coordonnées traditionnels dont la base naturelle est orthogonale.
Les packages tens3d et tenssurf tentent de résoudre ces lacunes :
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épendamment 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 l'expression d'un point courant en fonction de ses coordonnées.
Les opérateurs différentiels classiques (gradient, divergence, rotationnel et laplacien) sont définis de manière intrinsèque, c'est-à-dire indépendamment du système de coordonnées employé (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.
Mises à jour
Ces packages sont disponibles pour les versions de logiciels suivantes :
Maple® v4 (validé en septembre 97),
Maple® v5 (validé en septembre 2000),
Maple® v6 (validé en juin 2001),
Maple® v9 (validé en Sept 2005),
Mathematica® v5.2 (validé en décembre 2007).
La diffusion étant incontrôlée, les éventuelles modifications ou mises à jour seront faites sans avis. La distribution disponible sur cette page sera toujours la dernière version.
Avis aux amateurs
Ayant des activités plus intéressantes à faire, j'ai décidé de ne plus suivre les mises à jour des logiciels, que ce soit Maple® ou Mathematica®. Elles rendent parfois invalides les packages développés dans les versions antérieures en changeant des noms de fonctions standards ou leur syntaxe. Par ailleurs, la manière d'insérer des aides ("help") change aussi de version en version. Si un lecteur spécialiste de l'un ou l'autre de ces deux logiciels de calcul formel manifeste le désir de prendre en charge la survie de ces packages dans des versions récentes, je suis prêt à lui fournir les codes et les feuilles d'aide à la condition expresse qu'il s'engage à ne pas en faire un usage commercial.
!-- Pour Geoffroy : Supprimer le paragraphe suivant -->
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.
Téléchargements
Les fonctionnalités dans les trois versions 4, 5 et 6 sont exactement les mêmes, mais les fichiers à télécharger sont différents (car les développeurs de Maple ont changé des noms de certaines fonctions en passant de la version 4 à la version 5 !)
Pour Maple® v6 :
maple.lib
+ maple.ind
+ maple.hdb
+ initialisations + demos :
tensV6.zip
Remarque : on m'a signalé qu'elle fonctionne aussi dans la version 7 mais je ne l'ai pas vérifié personnellement. En revanche, je l'ai testée dans une démo gratuite de la version 8.
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.
Les packages tens3d et tenssurf utilisent maintenant la nouvelle bibliothèque LinearAlgebra. Les tableaux de composantes des tenseurs sont dans un nouveau format, mais les entrées de composantes acceptent encore l'ancienne syntaxe. Les anciennes feuilles de calcul devraient donc normalement être opérationnelles sans modifications.
Fichiers de démonstration
Ce sont de bons points de départ pour faire connaissance avec les fonctionnalités des packages.
Pour les versions 4 et 5, les deux fichiers
demo3d.zip
et
demosurf.zip
sont des feuilles de calcul illustrant respectivement les packages tens3d et tenssurf.
Pour les versions 6 à 9, les feuilles de démonstration sont incluses dans les fichiers compressés.
Conseils d'installation
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® (ce répertoire contient des fichiers de même nom contenant les bibliothèques standards qui seraient écrasés).
Pour dire à Maple® où vous avez rangé les bibliothèques des packages tens3d et tenssurf, il faut :
soit commencer toutes vos feuilles de calcul par l'instruction :
libname := `monrep` , libname :
soit 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,
sous UNIX/LINUX, c'est le fichier : ~/.mapleinit ,
sous UNIX/LINUX, si vous êtes administrateur de la machine et que 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.)
Aide en ligne pour la version 5 : afin que les packages apparaissent dans le navigateur de l'aide, vous pouvez ajouter en dessous de l'instruction précédente dans le fichier d'initialisation, 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] ):
Pour les version 6 à 9, un fichier d'initialisations tout prêt est fourni dans le zip. Vous devez en modifier la première ligne et le renommer :
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.
Installation dans Mathematica® v5.2
Ce package ne contient que Tens3D, le développement de TensSurf est resté à l'état de projet.
Télécharger la feuille de calcul (Mathematica® v5.2) :
demoTens3D.nb
Cette feuille de calcul est un bon point de départ pour faire connaissance avec les fonctionnalités du package.
Conseils d'installation dans Mathematica® v5.2
Cette procédure est valable quel que soit le système d'exploitation.
Dans une feuille de calcul de Mathematica®, faire la commande :
$Path
Cette commande renvoie la liste des répertoires connus de Mathematica® dans votre installation.
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).
Dans le menu "Help", lancer la commande "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 erreurs !
En télé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. Le meilleur moyen d'assurer la diffusion de la dernière version est de diffuser un lien sur cette page.