Code_Aster ®
Version
8.2

Titre :

Procédure TEST_FONCTION


Date :
22/02/06
Auteur(s) :
M. COURTOIS, L. VIVAN Clé
:
U4.92.02-H1 Page :
1/8

Organisme(s) : EDF-R&D/AMA, CS SI
















Manuel d'Utilisation
Fascicule U4.9- : Impression/Test
Document : U4.92.02





Procédure TEST_FONCTION










1 But

Extraire une valeur numérique ou un attribut d'une fonction pour comparaison à une valeur de
référence. La fonction est soit une structure de données du type fonction, nappe, soit contenue
dans une structure de données du type tabl_intsp.

Cette procédure écrit alors un message conventionnel "OK" (si c'est bon) ou "NOOK" (sinon).

Elle n'arrête pas l'exécution si le test n'est pas vérifié ; ceci permet de l'utiliser soit systématiquement
pour les tests de validation, soit pour extraire et imprimer une valeur d'une fonction ou d'une nappe
pour une valeur particulière d'un paramètre.

Cette commande est utilisée essentiellement par les cas tests pour valider la non-régression des
résultats.
Manuel d'Utilisation
Fascicule U4.9- : Impression/Test HT-62/06/004/A

Code_Aster ®
Version
8.2

Titre :

Procédure TEST_FONCTION


Date :
22/02/06
Auteur(s) :
M. COURTOIS, L. VIVAN Clé
:
U4.92.02-H1 Page :
2/8


2 Syntaxe

TEST_FONCTION

(




UNITE

=
/ unit,
[I]
/
8,
[DEFAUT]



/ VALEUR = _F ( FONCTION
= f,
/
[fonction]
/
[fonction_C]









NOM_PARA
= lnom,
[l_Kn]








I PRECISION
=
/
prec,
[R]
/
1.0D-3, [DEFAUT]









I CRITERE =
/ 'RELATIF',
[DEFAUT]
/
'ABSOLU',









VALE_PARA =
lpara,
[l_R]








/ VALE_REFE = refe,
[R]









/
VALE_REFE_C =
compl,
[C]








VALE_ABS = / `OUI',
/

`NON',
[DEFAUT]
REFERENCE =
/ 'ANALYTIQUE',




/ 'SOURCE_EXTERNE',

/
'NON_REGRESSION',

/
'AUTRE_ASTER',
VERSION = ... , [TXM]







),

/
ATTRIBUT
=_F(
FONCTION
= f,
/
[fonction]
/
[fonction_C]









PARA
=
reel,
[R]








I
PREC_PARA
=
/
prec,
[R]
/
1.0D-3, [DEFAUT]









I CRIT_PARA
= / 'RELATIF', [DEFAUT]
/
'ABSOLU',








ATTR =
/ 'NOM_PARA',
/
'NOM_RESU',
/
'PROL_DROITE',
/
'PROL_GAUCHE',
/
'INTERPOL',
/
'PROL_GAUCHE_FONC',
/
'PROL_DROITE_FONC',
/
'INTERPOL_FONC',
/
'NOM_PARA_FONC',
ATTR_REFE
= attr,
[Kn]
REFERENCE =
/ 'ANALYTIQUE',




/ 'SOURCE_EXTERNE',

/
'NON_REGRESSION',






VERSION
=
vers,
[Kn]

/
'AUTRE_ASTER',







),
Manuel d'Utilisation
Fascicule U4.9- : Impression/Test HT-62/06/004/A

Code_Aster ®
Version
8.2

Titre :

Procédure TEST_FONCTION


Date :
22/02/06
Auteur(s) :
M. COURTOIS, L. VIVAN Clé
:
U4.92.02-H1 Page :
3/8





/ TABL_INTSP=_F(
INTE_SPEC
=
f,
[tabl_intsp]









/
NUME_ORDRE_I
=
i,
[I]










NUME_ORDRE_J
=
j,
[I]









/ NOEUD_I =
nd_i,

[noeud]










NOEUD_J =
nd_j,

[noeud]










NOM_CMP_I =
ncmp_i,

[Kn]










NOM_CMP_J =
ncmp_j ,
[Kn]









NUME_VITE_FLUI = n_vit,
[I]








VALE_PARA = reel,


[R]








VALE_REFE_C = compl,


[C]








I
PRECISION
=
/
prec,
[R]
/
1.0D-3, [DEFAUT]









I CRITERE = / 'RELATIF',
[DEFAUT]
/
'ABSOLU',
REFERENCE =
/ 'ANALYTIQUE',




/ 'SOURCE_EXTERNE',

/
'NON_REGRESSION',






VERSION
=
vers,
[Kn]

/
'AUTRE_ASTER',







),


TEST_NOOK = / 'NON',
[DEFAUT]






/ 'OUI',






)


Les fonctions sont soit à valeurs réelles [fonction], soit à valeurs complexes [fonction_C].
Manuel d'Utilisation
Fascicule U4.9- : Impression/Test HT-62/06/004/A

Code_Aster ®
Version
8.2

Titre :

Procédure TEST_FONCTION


Date :
22/02/06
Auteur(s) :
M. COURTOIS, L. VIVAN Clé
:
U4.92.02-H1 Page :
4/8


3 Opérandes

3.1 Opérande
UNITE


UNITE = unit

Numéro de l'unité logique sur laquelle on écrit le résultat du test (OK ou NOOK), sauf cas
particuliers unit = 8.

3.2 Mot
clé
VALEUR

VALEUR
=

Mot clé facteur pour tester une valeur d'une fonction ou d'une nappe.

3.2.1 Opérande
FONCTION

FONCTION = f

Nom de la fonction (à un paramètre) ou de la nappe (à deux paramètres) sur laquelle s'effectue
l'opération.
NB : On ne peut pas tester de fonctions de plus de deux paramètres.

3.2.2 Opérande
NOM_PARA


NOM_PARA = lnom

Dans le cas d'une fonction, ce mot clé est non traité.

Dans le cas d'une nappe, l'utilisateur donnera 2 noms de paramètre : le premier définissant le
paramètre de la nappe, le deuxième définissant le paramètre de la fonction que l'on veut tester
(voir la commande DEFI_NAPPE [U4.31.03]).

3.2.3 Opérandes
PRECISION / CRITERE


PRECISION = prec

Dans le cas d'une nappe, on recherche la fonction définie par la valeur du paramètre dans un
intervalle défini par la position absolue ou relative :

"inst ± prec" (cf. CRITERE).

Par défaut prec = 1.0D-3


CRITERE =

·
'RELATIF' : l'intervalle de recherche est : [inst(1-prec),inst(1+prec)]
·
'ABSOLU' : l'intervalle de recherche est : [inst-prec,inst+prec]

3.2.4 Opérande
VALE_PARA

VALE_PARA = lpara

Dans le cas d'une fonction, l'utilisateur donne la valeur du paramètre pour laquelle la valeur de la
fonction est testée.

Dans le cas d'une nappe, l'utilisateur donne les 2 valeurs correspondant aux noms des deux
paramètres (celui de la nappe et celui de la fonction).
Manuel d'Utilisation
Fascicule U4.9- : Impression/Test HT-62/06/004/A

Code_Aster ®
Version
8.2

Titre :

Procédure TEST_FONCTION


Date :
22/02/06
Auteur(s) :
M. COURTOIS, L. VIVAN Clé
:
U4.92.02-H1 Page :
5/8


3.2.5 Opérande
VALE_REFE / VALE_REFE_C / VALE_ABS

/ VALE_REFE = refe

Valeur de référence pour les fonctions ou les nappes à valeurs réelles.


/
VALE_REFE_C = compl

Valeur de référence pour les fonctions ou les nappes à valeurs complexes.

Si VALE_ABS='OUI', on teste la valeur absolue de la fonction.


3.2.6 Opérandes
REFERENCE / VERSION


REFERENCE = Mot-clé définissant la nature de la solution de référence.

'ANALYTIQUE' : la solution de référence est issue d'un calcul analytique
'SOURCE_EXTERNE' : la solution de référence est issue soit de résultats expérimentaux, soit
d'une moyenne des résultats obtenus par d'autres codes de calculs.
'NON_REGRESSION' : la solution de référence est celle obtenue avec une version du Code_Aster
et la même modélisation du test.
'AUTRE_ASTER' : la solution de référence est celle obtenue avec une version du Code_Aster
mais sur une autre modélisation du test.

Si la REFERENCE de la solution est 'NON_REGRESSION', il faut alors indiquer la VERSION du
Code_Aster qui a permis d'obtenir cette solution.

3.3 Mot
clé
ATTRIBUT

/ ATTRIBUT
=

Mot clé facteur pour tester un attribut d'une fonction ou d'une nappe.

3.3.1 Opérande
FONCTION

FONCTION = f

Nom de la fonction ou de la nappe sur laquelle s'effectue l'opération.

3.3.2 Opérande
PARA


PARA = reel

Dans le cas d'une fonction, ce mot clé n'est pas nécessaire.

Dans le cas d'une nappe, l'utilisateur donne la valeur du paramètre pour récupérer la fonction afin
de tester l'attribut.

3.3.3 Opérandes
PREC_PARA / CRIT_PARA


PREC_PARA = prec

On recherche la fonction définie par la valeur du paramètre dans un intervalle défini par la position
absolue ou relative :

"inst ± prec" (cf. CRITERE [§3.2.3]).

Par défaut prec = 1.0D-3.


CRIT_PARA =

'RELATIF' : l'intervalle de recherche est : [inst(1-prec),inst(1+prec)]
'ABSOLU' : l'intervalle de recherche est : [inst-prec,inst+prec]
Manuel d'Utilisation
Fascicule U4.9- : Impression/Test HT-62/06/004/A

Code_Aster ®
Version
8.2

Titre :

Procédure TEST_FONCTION


Date :
22/02/06
Auteur(s) :
M. COURTOIS, L. VIVAN Clé
:
U4.92.02-H1 Page :
6/8


3.3.4 Opérande
ATTR

ATTR =

Nom de l'attribut à tester. Pour la signification des attributs se reporter à DEFI_FONCTION
[U4.31.02] ou à DEFI_NAPPE [U4.31.03].

3.3.5 Opérande
ATTR_REFE

ATTR_REFE = attr

Attribut de référence. Pour la signification des attributs se reporter à DEFI_FONCTION [U4.31.02]
ou à DEFI_NAPPE [U4.31.03].

3.3.6 Opérandes
REFERENCE / VERSION

cf. [§3.2.6].

3.4 Mot
clé
TABL_INTSP

/ TABL_INTSP
=

Mot clé facteur pour tester une valeur d'un concept table de type tabl_intsp produit par
exemple par LIRE_INTE_SPEC [U4.36.01], DEFI_INTE_SPEC [U4.36.02], CALC_INTE_SPEC
[U4.36.03], PROJ_SPEC_BASE [U4.63.14], DYNA_SPEC_MODAL [U4.53.23], REST_SPEC_PHYS
[U4.63.22], DYNA_ALEA_MODAL [U4.52.22].

3.4.1 Opérande
INTE_SPEC

INTE_SPEC = f

Nom de la table d'interspectres qui contient au moins une matrice interspectrale. Dans le cas où la
table contient plusieurs matrices interspectrales (cf. [§3.4.2]), le mot-clé NUME_VITE_FLUI
permet de sélectionner une de ces matrices.

3.4.2 Opérande
NUME_VITE_FLUI

NUME_VITE_FLUI = nvite

Pour les matrices interspectrales provenant d'un calcul où la commande CALC_FLUI_STRU
[U4.66.02] est utilisée, il faut indiquer le numéro correspondant à la vitesse du fluide qui a permis
de définir la matrice interspectrale que l'on veut tester.

3.4.3 Opérandes
NUME_ORDRE_I / NUME_ORDRE_J

NUME_ORDRE_I = i,
NUME_ORDRE_J = j,

Indices des numéros d'ordre i et j permettant de définir un terme de la matrice interspectrale
lorsque les lignes et colonnes de cette matrice ne sont pas nommées.
Ces matrices sont issues des opérateurs PROJ_SPEC_BASE [U4.63.14], DYNA_SPEC_MODAL
[U4.53.24], LIRE_INTE_SPEC [U4.36.01], DEFI_INTE_SPEC [U4.36.02], CALC_INTE_SPEC
[U4.36.03], DYNA_ALEA_MODAL [U4.52.22].
Manuel d'Utilisation
Fascicule U4.9- : Impression/Test HT-62/06/004/A

Code_Aster ®
Version
8.2

Titre :

Procédure TEST_FONCTION


Date :
22/02/06
Auteur(s) :
M. COURTOIS, L. VIVAN Clé
:
U4.92.02-H1 Page :
7/8


3.4.4 Opérandes
NOEUD_I / NOEUD_J / NOM_CMP_I / NOM_CMP_J

NOEUD_I = nd_i,
NOEUD_J = nd_j,
NOM_CMP_I = ncmp_i,
NOM_CMP_J = ncmp_j,

Lorsque les lignes et colonnes de la matrice interspectrale sont nommées, ces opérandes
correspondent alors aux noms des noeuds et des composantes associées permettant de définir un
terme de cette matrice.
Ces matrices sont issues de l'opérateur REST_SPEC_PHYS [U4.63.22].
Ces opérandes s'excluent avec les opérandes précédentes définies au paragraphe [§3.4.3].

3.4.5 Opérande
VALE_PARA

VALE_PARA = réel

Valeur du paramètre pour lequel la valeur de la fonction contenue dans la table est testée.

3.4.6 Opérande
VALE_REFE_C

VALE_REFE_C = compl

Valeur de référence (nombre complexe : partie réelle, partie imaginaire ou module, phase).

3.4.7 Opérandes
PRECISION / CRITERE


PRECISION = prec

Définition de l'intervalle de recherche : position absolue ou relative :

"inst ± prec" (cf. CRITERE).

Par défaut prec = 1.0D-3.


CRITERE =

'RELATIF' : l'intervalle de recherche est : [inst(1-prec),inst(1+prec)]
'ABSOLU' : l'intervalle de recherche est : [inst-prec,inst+prec]

3.4.8 Opérandes
REFERENCE / VERSION

cf. [§3.2.6].

3.5 Opérande
TEST_NOOK


TEST_NOOK =

Cette option, à utiliser avec précaution, permet de simuler que les attributs d'une fonction
(notamment pour limiter son domaine de définition) seront bien interprétés.

Exemple :

Sur une fonction avec PROL_GAUCHE = 'EXCLU', si on teste la fonction avec une valeur de
paramètre inférieure à la valeur de la borne inférieure de l'intervalle de définition de la fonction, on
devrait obtenir une erreur.

Avec TEST_NOOK = 'OUI', TEST_FONCTION renvoie le résultat 'OK'.
Manuel d'Utilisation
Fascicule U4.9- : Impression/Test HT-62/06/004/A

Code_Aster ®
Version
8.2

Titre :

Procédure TEST_FONCTION


Date :
22/02/06
Auteur(s) :
M. COURTOIS, L. VIVAN Clé
:
U4.92.02-H1 Page :
8/8


4 Exemples

4.1
Vérification d'une nappe

df1
= DEFI_FONCTION
( NOM_PARA = 'INST', NOM_RESU = 'DEPL',
VALE
=
(0.,0.,1.,1.,2.,2.,3.,3.,4.,4.

) )
df2
= DEFI_FONCTION
( NOM_PARA = 'INST', NOM_RESU = 'DEPL',








VALE = (3., 3., 4., 4., 5., 5. )


)
dn1
= DEFI_NAPPE
( NOM_PARA = 'AMOR', NOM_RESU = 'DEPL',
VALE
=
(0.01,
0.02),
FONCTION
=
(
df1,
df2
))

TEST_FONCTION
(

# on vérifie l'attribut 'NOM_PARA' de la fonction df1 dans la nappe dn1
ATTRIBUT = ( _F( FONCTION =
dn1 , PARA = 0.01, # 0.01 atteint df1
ATTR
=
'NOM_PARA_FONC',
ATTR_REFE
=
'INST'
),
# on vérifie l'attribut 'NOM_PARA' de la nappe dn1
_F( FONCTION =
dn1 , ATTR = 'NOM_PARA',
ATTR_REFE
=
'AMOR'
)),
# on vérifie une valeur de la nappe dn1 (en pratique sur la fonction df1)
VALEUR =
_F( FONCTION =
dn1,
NOM_PARA = ('AMOR', 'INST'
),
VALE_PARA
=
(
0.01,

1.
),
VALE_REFE
=


1.
)





)

4.2
Vérification d'une fonction

li1=DEFI_LIST_REEL( DEBUT=0.,
INTERVALLE=_F(JUSQU_A=2*pi,
PAS=2*pi/20),
)

f1=FORMULE( NOM_PARA='INST',
VALE='sin(INST)
+
cos(INST)',
)

fonc=CALC_FONC_INTERP ( FONCTION=f1,
LIST_PARA=li1,
NOM_RESU='DEPL',
INTERPOL='LIN',
)

TEST_FONCTION(
# on teste un attribut de la fonction
ATTRIBUT=_F(
FONCTION=fonc,
ATTR='INTERPOL',
ATTR_REFE='LIN
LIN',),
# on teste une valeur de la fonction
VALEUR=_F
(
FONCTION=fonc,
VALE_PARA=pi,
VALE_REFE=sin(pi)+cos(pi),
), )

Manuel d'Utilisation
Fascicule U4.9- : Impression/Test HT-62/06/004/A

Document Outline