12. Définir son propre matériau#
Ce paragraphe est à mi-chemin entre l’utilisation et le développement. On utilise une surcharge non qualifiée qui est de la responsabilité de l’utilisateur/développeur.
On aborde ici la définition d’un catalogue pour un matériau donné par un utilisateur.
Le catalogue ainsi développé pourra intégrer le catalogue géré en configuration après la qualification requise, mais en attendant, il peut être utilisé en surcharge.
Pour cela, il suffit de définir un répertoire particulier où sera stocké le nouveau catalogue, et utiliser l’argument -rep_mat [nom du répertoire] dans le lancement de l’étude ( cf. [u1.04.00]).
12.1. Gestion de l’unité de longueur du maillage#
Pour gérer le changement d’unité, on dispose de la fonction coef_unit.
coef_unit(n) vaut 1. si UNITE_LONGUEUR vaut “M”, et vaut \({10}^{n}\) si UNITE_LONGUEUR vaut “MM”.
Par exemple, pour une grandeur en MPa, on écrira:
E = 2.1e11 * coef_unit(-6)
12.2. Extraction et évaluation en fonction de la température#
Dans l’écriture du catalogue, il faut déterminer quels sont les mots-clés retournés en présence d’EXTRACTION et ceux qui ne le sont pas.
Exemple: Si on ne demande pas l’extraction à une température donnée, on souhaite obtenir les propriétés élastiques dépendant de la température, mot-clé ELAS_FO. Alors que si on demande ces propriétés à 20°C, on souhaite obtenir le mot-clé facteur ELAS.
On écrira extraction=True (dans le catalogue) pour indiquer que le mot-clé facteur doit être conservé si EXTRACTION est présent (dans le jeu de commandes), extraction=False pour indiquer qu’il faut le conserver si EXTRACTION est absent. Si extraction n’est pas renseigné, le mot-clé est conservé dans les deux cas.
On indique quelle fonction doit être évaluée en fonction de la température (seule variable de commande actuellement supportée) en utilisant la fonction temp_eval:
E = temp_eval(_A2) où _A2 est une fonction définie auparavant.
12.2.1. Syntaxe, mots réservés#
Le catalogue n’appelle pas DEFI_MATERIAU lui-même, il définit uniquement la liste des mots-clés.
Pour cela, il faut utiliser la fonction defi_motscles et nommer motscles le résultat de cette fonction:
motscles = defi_motscles( … )
Un catalogue matériau n’est pas une macro-commande. Cependant, il obéit aux mêmes règles concernant le nommage des concepts intermédiaires (fonctions des propriétés dépendant de la température en particulier). Afin de ne pas provoquer de conflits avec les concepts du jeu de commandes de l’utilisateur, il faut prendre soin de préfixer les concepts intermédiaires du catalogue avec un “_” ( cf. [d5.01.02]) et de détruire les concepts qui peuvent l’être.
Enfin, un nombre limité de commandes sont utilisables dans un catalogue: ceux qui manipulent les fonctions essentiellement (consulter le fichier bibpyt/Macro/include_materiau_ops.py pour avoir la liste exhaustive).