1. Introduction et précautions d’emploi#
Dans Code_Aster , la plupart des commandes sont programmées en fortran. Les structures de données produites ne sont accessibles que par l’intermédiaire du gestionnaire de mémoire JEVEUX, lui même écrit en fortran. Dans une exécution standard du code, seuls les noms des concepts (et non des objets portant eux-mêmes l’information calculée) sont transmis au niveau du superviseur, de commande à commande par les mots-clés.
Dans une utilisation plus avancée de Python que la simple déclaration de commandes Code_Aster , le fichier de commande écrit en Python peut utiliser le contenu des structures de données propres à Code_Aster . En effet, Python peut être utilisé dans les fichiers de commandes pour créer des macro‑commandes et des opérations comme des boucles (for, while,…), des tests (if,…), des exécutions de commandes externes (via le module os), etc… La page «Utilisation / Exemples / Exemples d’utilisation de Python dans Aster» du site web www.code‑aster.org regroupe un certain nombre de cas d’application. Il est alors intéressant pour l’utilisateur de récupérer le produit des calculs fortran dans l’espace python, c’est-à-dire son fichier de commandes. Plusieurs méthodes Python ont été développées afin d’accéder au contenu d’autres structures de données.
Pour récupérer des données calculées (dans la mémoire JEVEUX), il est absolument nécessaire que les instructions entraînant leur obtention aient bien été exécutées au préalable. Autrement dit, il est indispensable d’exécuter le code en mode PAR_LOT=’NON’ (mot clé de la commande DEBUT ou POURSUITE). En effet, dans ce cas, il n’y a pas d’analyse globale du fichier de commande, mais chaque instruction est exécutée séquentiellement. Quand on arrive sur une instruction, tous les concepts la précédant ont donc déjà été calculés.
DEBUT ( PAR_LOT = ‘NON’)
Il faut alors noter que le fichier de commande ainsi produit n’est pas lisible par EFICAS qui ne tolère que les fichiers exclusivement composés de commandes propres à Code_Aster. Seules les variables simples (réels, entiers, strings) définies en mode déclaratif \(a=’\mathit{toto}’\) ou algébrique \(n=3+4\) sont lisibles par EFICAS.
L’information relue dans la mémoire JEVEUX, produit d’un calcul préalable, peut être exploitée par exemple pour (liste non exhaustive) :
Enchaîner conditionnellement d’autres commandes (exécution de boucle while jusqu’à obtention d’une valeur calculée de contrainte limite)
Manipuler en python du contenu d’une table, d’une fonction, à fins de calculs
Récupérer les attributs d’un maillage: liste des groupes de nœuds et de mailles, coordonnées.