3. Opérandes#

3.1. Définition de la fonction#

Le corps de la fonction est une expression algébrique Python représentée par une chaîne de caractères. Elle doit être évaluable: c’est-à-dire respecter la syntaxe Python et les fonctions, constantes ou autres objets nécessaires à son évaluation doivent définis en argument.

Exemple:

alpha = 1.23

form = FORMULE(NOM_PARA=”X”, VALE=”sin(X) * alpha”, alpha=alpha)

L’expression de la formule est “sin(X) * alpha”. Pour l’évaluer, X est la variable de la formule. La fonction sin est fournie par le module math (voir ci-dessous). La constante alpha est définie dans le fichier de commande. Il est donc nécessaire de la définir en argument et d’en fournir la valeur. Ainsi, la formule pourra être évaluée où que ce soit.

Attention

Les fonctions, classes (et autres objets Python) définies dans le fichier de commandes ne sont pas disponibles en POURSUITE (Python ne peut pas les «pickler»).

Pour que les formules utilisant ce type d’arguments complémentaires puissent être évaluées de nouveau en POURSUITE, il faut redéfinir les fonctions, classes (et autres objets Python) en POURSUITE et les déclarer aux formules par setContext.

Si on utilise VALE, la formule produite est à valeur réelle (concept de type formule). Si on utilise VALE_C, la formule est à valeur complexe (concept de type formule_c).

Dans les deux cas, les paramètres sont réels. Les noms des paramètres nécessaires à l’évaluation de la formule sont fournis derrière le mot-clé NOM_PARA.

En cas d’erreur de syntaxe, c’est le langage Python qui émet le message d’erreur et non Code_Aster lui-même.

Remarque

L’ordre des paramètres (mot-clé NOM_PARA ) est important. Si on crée une formule à deux paramètres en vue de produire une nappe, le premier paramètre est le paramètre de la nappe, le second est le paramètre des fonctions composant la nappe.

3.2. Fonctions standards#

Outre les signes algébriques ordinaires + - / * **, sont aussi disponibles des fonctions standards (builtins) : min, max, abs, float …

Attention, le signe de division désigne ici la division réelle:

1 / 2 = 0.5

Si on souhaite faire une opération en division entière, il faut utiliser l’opérateur //:

1 // 2 = 0

3.3. Fonctions mathématiques#

Toutes les fonctions du module math de Python sont importées par défaut. Elles sont donc directement utilisables dans le corps des formules.

http://docs.python.org/lib/module-math.html

sin

sinh

cos

cosh

tan

tanh

atan

sqrt

atan2

log

asin

log10

acos

exp

De plus, la constante pi, du même module, est également disponible.

Attention:

Les fonctions trigonométriques sont donc celles de Python et attendent des angles exprimés en radians. Il faut être vigilant sur la cohérence avec les mots clés simples ANGL_du langage de commande qui requièrent en général des angles en degrés.