Code_Aster ®
Version
7.4
Titre :
Opérateur LIRE_FONCTION
Date :
19/01/05
Auteur(s) :
C. DURAND Clé
:
U4.32.02-G Page
: 1/6
Organisme(s) : EDF-R&D/AMA
Manuel d'Utilisation
Fascicule U4.3- : Fonction
Document : U4.32.02
Opérateur LIRE_FONCTION
1 But
Lire des valeurs réelles dans un fichier de données représentant une fonction et créer un concept de
type fonction [U4.31.02] ou nappe [U4.31.03].
Manuel d'Utilisation
Fascicule U4.3- : Fonction
HT-66/05/004/A
Code_Aster ®
Version
7.4
Titre :
Opérateur LIRE_FONCTION
Date :
19/01/05
Auteur(s) :
C. DURAND Clé
:
U4.32.02-G Page
: 2/6
2 Syntaxe
f [fonction] = LIRE_FONCTION
(
UNITE = u
,
[I]
FORMAT
=
'LIBRE'
,
[DEFAUT]
NOM_PARA = cf mot clé équivalent de DEFI_FONCTION [U4.31.02],
NOM_RESU = idem
INTERPOL
= idem
PROL_DROITE =
idem
PROL_GAUCHE =
idem
VERIF
=
idem
TITRE =
idem
INFO =
idem
SEPAR
=
/
'None'
,
[DEFAUT]
/ ','
,
/ ';'
,
/ '/'
,
INDIC_PARA
=
/
[1,1]
, [DEFAUT]
TYPE
=
/
'FONCTION'
,
[DEFAUT]
/ 'FONCTION_C'
,
/ 'NAPPE'
,
si TYPE='FONCTION' :
INDIC_RESU
=
/
[1,2]
, [DEFAUT]
si TYPE='FONCTION_C' :
FORMAT_C
=
/
'REEL_IMAG'
[DEFAUT]
/ 'MODULE_PHASE'
,
si FORMAT_C='REEL_IMAG' :
INDIC_REEL
=
/
[1,2]
, [DEFAUT]
INDIC_IMAG
=
/
[1,3]
, [DEFAUT]
si FORMAT_C='MODULE_PHASE' :
INDIC_MODU
=
/
[1,2]
, [DEFAUT]
INDIC_PHAS
=
/
[1,3]
, [DEFAUT]
si TYPE='NAPPE' :
NOM_PARA_FONC
= cf mot clé NOM_PARA
INDIC_ABSCISSE =
[indice1,indice2] ,
[l_I]
INTERPOL_FONC
= cf mot clé ITERPOL
PROL_DROITE_FONC = cf mot clé PROL_DROITE
PROL_GAUCHE_FONC = cf mot clé PROL_GAUCHE
DEFI_FONCTION
=
_F(
INDIC_RESU
=
[indice1,indice2] ,
[l_I] ) )
Manuel d'Utilisation
Fascicule U4.3- : Fonction
HT-66/05/004/A
Code_Aster ®
Version
7.4
Titre :
Opérateur LIRE_FONCTION
Date :
19/01/05
Auteur(s) :
C. DURAND Clé
:
U4.32.02-G Page
: 3/6
3 Opérandes
3.1 Opérande
UNITE
UNITE = u
Entier, numéro logique de l'unité de lecture.
3.2 Opérande
FORMAT
FORMAT = 'LIBRE' ,
Ce mot clé est pour le moment inutile. Il pourra permettre à l'avenir de définir un format de lecture
spécifique, plus contraignant que le format actuel.
3.3 Opérandes PROL_DROITE / PROL_GAUCHE / NOM_PARA /
NOM_RESU / INTERPOL / VERIF / TITRE / INFO
LIRE_FONCTION est une macro-commande : les valeurs numériques sont lues dans le fichier indiqué
par PYTHON puis la fonction est effectivement créée par DEFI_FONCTION [U4.03.01].
Ainsi, ces mots clés sont repris à l'identique de DEFI_FONCTION et permettent de préciser les
caractéristiques de la fonction produite : interpolation, prolongements, noms des paramètres d'accès.
3.4 Opérande
SEPAR
SEPAR
= /'None'/','/';'/'/'
Caractère séparateur des colonnes de chiffres dans le fichier à lire.
La valeur par défaut 'None' signifie un ou plusieurs caractères blancs. Pour les autres
séparateurs, des caractères blancs peuvent également s'insérer entre les chiffres et le séparateur
lui-même.
3.5 Opérande
INDIC_PARA
INDIC_PARA =
/ [indice1,indice2]
Ce mot clé est identique dans son principe aux autres mots clés INDIC_* de la commande. Il
permet de choisir la colonne de chiffres dans le fichier lu qui définira les abscisses de la fonction,
soient les valeurs du paramètre.
On attend obligatoirement une liste de deux entiers : le premier désignant le numéro de `bloc'
dans le fichier (cf paragraphe [§4] Exemples), le second désignant le numéro de la colonne. Pour
identifier les blocs du fichier, on considère comme séparateur de blocs toute ligne qui ne
contiendrait pas exclusivement des chiffres et des séparateurs de colonnes. Les colonnes sont
définies par la présence de séparateurs de colonnes les délimitant (mot clé SEPAR).
La valeur par défaut est [1,1] : on lit la première colonne du premier bloc. Cela permet de définir
très facilement, en renseignant le moins de mots clés possibles, la lecture d'une fonction dans un
fichier contenant deux simples colonnes de chiffres.
3.6 Opérande
TYPE
TYPE
=
/
'FONCTION'
,
[DEFAUT]
/ 'FONCTION_C'
,
/ 'NAPPE'
,
Précise le type de fonction lue et créée : 'FONCTION', 'FONCTION_C' (appel dans la
macro-commande à DEFI_FONCTION) ou 'NAPPE' (appel à DEFI_NAPPE).
Manuel d'Utilisation
Fascicule U4.3- : Fonction
HT-66/05/004/A
Code_Aster ®
Version
7.4
Titre :
Opérateur LIRE_FONCTION
Date :
19/01/05
Auteur(s) :
C. DURAND Clé
:
U4.32.02-G Page
: 4/6
3.7
Cas d'une fonction réelle : TYPE='FONCTION'
INDIC_RESU =
/ [indice1,indice2]
De fonctionnement identique à INDIC_PARA, ce mot clé permet de choisir la colonne de chiffre
dans le fichier lu définissant les ordonnées de la fonction, soient les valeurs du résultat.
La valeur par défaut est [1,2] : on lit la deuxième colonne du premier bloc.
3.8
Cas d'une fonction complexe : TYPE='FONCTION_C'
FORMAT_C =
'REEL_IMAG'
INDIC_REEL =
/ [indice1,indice2]
INDIC_IMAG =
/ [indice1,indice2]
FORMAT_C =
'MODULE_PHASE'
INDIC_MODU =
/ [indice1,indice2]
INDIC_PHAS =
/ [indice1,indice2]
Dans le cas d'une fonction complexe, deux colonnes de chiffres (valeurs réelles) sont à identifier
dans le fichier lu pour définir la liste des valeurs complexes du résultat. On peut ainsi lire au choix
partie réelle/partie imaginaire ou module/phase.
Les valeurs par défaut sont respectivement [1,2] et [1,3] : on lit les deuxième et troisième colonnes
du premier bloc. La première colonne lue par défaut ayant été la valeur du paramètre
(INDIC_PARA).
3.9
Cas d'une nappe : TYPE='NAPPE'
NOM_PARA_FONC
= cf mot clé NOM_PARA
INDIC_ABSCISSE =
[indice1,indice2] ,
INTERPOL_FONC
= cf mot clé ITERPOL
PROL_DROITE_FONC = cf mot clé PROL_DROITE
PROL_GAUCHE_FONC = cf mot clé PROL_GAUCHE
DEFI_FONCTION
=
_F(
INDIC_RESU
=
[indice1,indice2] , ) )
Le principe est le même que celui de DEFI_NAPPE [U4.31.03] : la liste de valeurs possibles du
paramètre (deuxième variable) ayant été définie par INDIC_PARA, il reste à identifier les fonctions
dans le fichier lu par le mot clé facteur DEFI_FONCTION (analogue au mot clé facteur FONCTION
de DEFI_NAPPE). Attention, le nombre de fonctions identifiées (occurrences du mot clé facteur)
devra être identique au cardinal des valeurs lues par INDIC_PARA.
Contrairement aux nappes en général, on impose que les fonctions partagent la même liste de
valeurs d'abscisses INDIC_ABSCISSE, c'est pourquoi seul INDIC_RESU est présent sous le mot
clé facteur DEFI_FONCTION.
Manuel d'Utilisation
Fascicule U4.3- : Fonction
HT-66/05/004/A
Code_Aster ®
Version
7.4
Titre :
Opérateur LIRE_FONCTION
Date :
19/01/05
Auteur(s) :
C. DURAND Clé
:
U4.32.02-G Page
: 5/6
4 Exemples
d'utilisation
Soit le fichier texte suivant contenant l'information à lire. Il est composé de colonnes de chiffres, ici
séparées par des caractères blancs, définissant des blocs, eux-mêmes délimités par du texte libre.
Toute ligne comprenant d'autres caractères que des chiffres et le séparateur prédéfini est considérée
comme texte libre délimitant.
aaa bbb ccc
ddd
eee fff
0. 0. 0.
0.1 1. 10.
0.2 2. 20.
0.3 3. 30.
xxx yyy
www zzz
0.4 4. 40. 400.
0.5 5. 50. 500.
0.6 6. 60. 600.
xxx
70. 700.
80. 800.
90. 900.
ppp qqq
8.8
9.9
Ou, avec un séparateur :
. . .
0.1 ; 1. ; 10. ; 100.
0.2 ; 2. ; 20. ; 200.
. . .
4.1
Lecture d'une fonction simple
En exploitant les valeurs par défaut pour le choix des colonnes :
F=LIRE_FONCTION( UNITE = 38,
NOM_PARA = `INST', )
La fonction ainsi créée est :
Abscisses =
[0., 0.1, 0.2, 0.3]
Ordonnées = [0., 1. , 2. , 3. ]
En associant pour abscisses et ordonnées des colonnes prises dans des blocs différents :
F=LIRE_FONCTION( UNITE = 38,
NOM_PARA = `INST',
INDIC_PARA = [2,4],
INDIC_RESU = [3,1],
La fonction ainsi créée est :
Abscisses =
[400., 500., 600.]
Ordonnées = [ 70., 80., 90.]
Attention, la commande vérifie alors que les cardinaux des colonnes définies par INDIC_PARA et
INDIC_RESU sont bien identiques. Ce qui n'aurait pas été le cas ici avec par exemple INDIC_PARA =
[1,4].
Manuel d'Utilisation
Fascicule U4.3- : Fonction
HT-66/05/004/A
Code_Aster ®
Version
7.4
Titre :
Opérateur LIRE_FONCTION
Date :
19/01/05
Auteur(s) :
C. DURAND Clé
:
U4.32.02-G Page
: 6/6
4.2
Lecture d'une fonction complexe
En exploitant les valeurs par défaut pour le choix des colonnes :
F=LIRE_FONCTION( UNITE
= 38,
NOM_PARA =
`INST',
TYPE =
`FONCTION_C',
FORMAT_C = `REEL_IMAG', )
La fonction ainsi créée est :
Abscisses =
[0., 0.1, 0.2, 0.3]
Ordonnées = [(0.,0.) , (1.,10.) , (2.,20.) , (3.,30.)]
On aurait bien sûr pu préciser d'autres colonnes pour INDIC_REEL et INDIC_IMAG que celles par
défaut. Attention toutefois à pointer sur des colonnes de même cardinal.
4.3
Lecture d'une nappe
En exploitant les valeurs par défaut pour le choix des colonnes :
F=LIRE_FONCTION( UNITE
=
38,
NOM_PARA
=
`INST',
INDIC_PARA =
[4,1],
NOM_PARA_FONC
=
`FREQ',
INDIC_ABSCISSE =
[2,2],
DEFI_FONCTION
=
(
F( INDIC_RESU = [3,1], ),
F( INDIC_RESU = [2,3], ), ) )
La nappe ainsi créée est :
Pour la valeur du paramètre INST=8.8, la fonction :
Abscisses =
[4. , 5. , 6.]
Ordonnées = [70. , 80. , 90.]
Pour la valeur du paramètre INST=9.9, la fonction :
Abscisses =
[4. , 5. , 6.]
Ordonnées = [40. , 50. , 60.]
Les vérifications de cohérence des cardinaux de colonnes d'abscisses et d'ordonnées sont faites par
la macro-commande.
Manuel d'Utilisation
Fascicule U4.3- : Fonction
HT-66/05/004/A
Document Outline