4Exemples d’utilisation de IMPR_FONCTION/IMPR_TABLE. Code_Aster Tracé de courbes
Code_Aster
Titre :
Tracé de courbes avec Code_Aster
Responsable :
Mathieu COURTOIS
Version default
Date :
01/03/2013
Page :
6/10
Clé :
U2.51.02
Révision :
10626
4 Exemples d’utilisation de IMPR_FONCTION/IMPR_TABLE
4.1
Fonction reconstruite à partir de deux listes Python
Exemple où l’on recale les résultats obtenus pour pouvoir les comparer à une solution de référence
(les abscisses sont inversées, il faut comparer la valeur absolue, [SSLS501a]), on utilise les méthodes permettant d’extraire les abscisses et les ordonnées d’une fonction :
IMPR_FONCTION(FORMAT='XMGRACE',
UNITE=53,
COURBE=_F(ABSCISSE=[57766.1-x for x in MTAST.Absc()],
ORDONNEE=[abs(y) for y in MTAST.Ordo()],),
TITRE='Courbe recalée',
LEGENDE_X='P2',
LEGENDE_Y='MT',)
4.2
Tracé d’un résultat en fonction d’un autre
Cet exemple est extrait en partie du cas-test [FORMA03a], il s’agit d’une plaque trouée en traction.
Après un calcul réalisé avec STAT_NON_LINE, on souhaite tracer l’effort résultant de traction en fonction du déplacement vertical moyen de la partie supérieure de l’éprouvette.
Détails du post-traitement :
POURSUITE()
SOLNL2=CALC_CHAMP( Calcul des forces nodales
reuse = SOLNL2, RESULTAT = SOLNL2,
OPTION = 'FORC_NODA',)
M=DEFI_GROUP( Définition du groupe de nœuds de
reuse=M, dépouillement, la ligne supérieure de la plaque
MAILLAGE=M,
CREA_GROUP_NO=_F(GROUP_MA = 'LFG',
NOM = 'LIGNE',),
) tab=POST_RELEVE_T(
ACTION=(
_F(INTITULE = 'Umoyen', Relevé du déplacement moyen à tous les
RESULTAT = SOLNL2, instants du calcul
NOM_CHAM = 'DEPL',
NOM_CMP = 'DY',
TOUT_ORDRE = 'OUI',
GROUP_NO = 'LIGNE',
OPERATION = 'MOYENNE',
),
_F(INTITULE = 'Fresultante', Relevé de l’effort résultant
RESULTAT = SOLNL2,
NOM_CHAM = 'FORC_NODA',
TOUT_ORDRE = 'OUI',
GROUP_NO = 'LIGNE',
RESULTANTE = 'DY',
OPERATION = 'EXTRACTION',),),)
Manuel d'utilisation Fascicule u2.51 : Outils de post-traitement
Copyright 2015 EDF R&D - Document diffusé sous licence GNU FDL (http://www.gnu.org/copyleft/fdl.html)
Code_Aster
Titre :
Tracé de courbes avec Code_Aster
Responsable :
Mathieu COURTOIS
Version default
Date :
01/03/2013
Page :
7/10
Clé :
U2.51.02
Révision :
10626
IMPR_TABLE(TABLE=tab,) Juste pour repérer le nom des paramètres
Contenu (partiel, limité aux 3 premiers instants) de la table :
INTITULE NOEUD RESU NOM_CHAM NUME_ORDRE INST DY SIYY QUANTITE
Umoyen - SOLNL2 DEPL 1 1.00000E+00 2.38745E-02 - MOMENT_0
Umoyen - SOLNL2 DEPL 1 1.00000E+00 -3.70291E-04 - MOMENT_1
Umoyen - SOLNL2 DEPL 1 1.00000E+00 2.36709E-02 - MINIMUM
Umoyen - SOLNL2 DEPL 1 1.00000E+00 2.40291E-02 - MAXIMUM
Umoyen - SOLNL2 DEPL 1 1.00000E+00 2.40597E-02 - MOYE_INT
Umoyen - SOLNL2 DEPL 1 1.00000E+00 2.36894E-02 - MOYE_EXT
Umoyen - SOLNL2 DEPL 2 1.20000E+00 2.86494E-02 - MOMENT_0
Umoyen - SOLNL2 DEPL 2 1.20000E+00 -4.44349E-04 - MOMENT_1
Umoyen - SOLNL2 DEPL 2 1.20000E+00 2.84050E-02 - MINIMUM
Umoyen - SOLNL2 DEPL 2 1.20000E+00 2.88350E-02 - MAXIMUM
Umoyen - SOLNL2 DEPL 2 1.20000E+00 2.88716E-02 - MOYE_INT
Umoyen - SOLNL2 DEPL 2 1.20000E+00 2.84273E-02 - MOYE_EXT
Umoyen - SOLNL2 DEPL 3 1.40000E+00 3.34244E-02 - MOMENT_0
Umoyen - SOLNL2 DEPL 3 1.40000E+00 -5.18504E-04 - MOMENT_1
Umoyen - SOLNL2 DEPL 3 1.40000E+00 3.31393E-02 - MINIMUM
Umoyen - SOLNL2 DEPL 3 1.40000E+00 3.36410E-02 - MAXIMUM
Umoyen - SOLNL2 DEPL 3 1.40000E+00 3.36837E-02 - MOYE_INT
Umoyen - SOLNL2 DEPL 3 1.40000E+00 3.31652E-02 - MOYE_EXT
[...]
Fresultante - SOLNL2 FORC_NODA 1 1.00000E+00 2.50000E+03 - -
Fresultante - SOLNL2 FORC_NODA 2 1.20000E+00 3.00000E+03 - -
Fresultante - SOLNL2 FORC_NODA 3 1.40000E+00 3.50000E+03 - -
[...]
Dy=RECU_FONCTION( Filtrage de la table pour en extraire
TABLE = tab,
PARA_X = 'INST',
PARA_Y = 'DY',
FILTRE = (
_F(NOM_PARA = 'INTITULE',
VALE_K = 'Umoyen',),
_F(NOM_PARA = 'QUANTITE',
VALE_K = 'MOMENT_0',),),)
Dy= f t
Fy=RECU_FONCTION( Filtrage de la table pour en extraire
TABLE = tab,
PARA_X = 'INST',
PARA_Y = 'DY',
FILTRE = (
_F(NOM_PARA = 'INTITULE',
VALE_K = 'Fresultante',),),)
Fy= f t
IMPR_FONCTION( Tracé des ordonnées de
UNITE = 29,
FORMAT = 'XMGRACE',
COURBE = (
_F(FONC_X = Dy,
FONC_Y = Fy,),),
TITRE = 'Plaque trouée en traction',
LEGENDE_X = 'Déplacement moyen',
LEGENDE_Y = 'Effort résultant',)
Fy
en fonction de
Dy
Ce qui nous donne la courbe suivante :
Manuel d'utilisation Fascicule u2.51 : Outils de post-traitement
Copyright 2015 EDF R&D - Document diffusé sous licence GNU FDL (http://www.gnu.org/copyleft/fdl.html)
Code_Aster
Titre :
Tracé de courbes avec Code_Aster
Responsable :
Mathieu COURTOIS
Version default
Date :
01/03/2013
Page :
8/10
Clé :
U2.51.02
Révision :
10626
4.3
Tracé d’un grand nombre de courbes
Dans certaines applications, on est amené à tracer de nombreuses courbes. Supposons que l’on souhaite comparer nos résultats à 50 points de mesure obtenus par ailleurs. Il serait alors fastidieux de définir 50 fichiers dans astk et d’utiliser 50 unités logiques différentes dans le fichier de commandes !
Il suffit alors d’utiliser le type « repe » en résultat dans astk (cf. [U1.04.00]) :
On procède ensuite ainsi dans le fichier de commandes en PAR_LOT=’NON’ dans POURSUITE :
# définition des 50 groupes de nœuds de dépouillement lgrno = [ 'point01', 'point02', ..., 'point50' ]
# pour chaque nœud de dépouillement...
for point in lgrno :
unit = 29
# les fichiers DEPL_point0i.dat seront recopiés dans Resultats/courbes/
DEFI_FICHIER(UNITE=unit, FICHIER=‘./REPE_OUT/DEPL_’+point+’.dat’)
tab=POST_RELEVE_T(
ACTION=_F(INTITULE = 'VonMises',
RESULTAT = resM,
NOM_CHAM = 'SIEQ_ELNO',
NOM_CMP = 'VMIS',
TOUT_ORDRE = 'OUI',
GROUP_NO = point,
OPERATION = 'EXTRACTION',),)
IMPR_TABLE(
Manuel d'utilisation Fascicule u2.51 : Outils de post-traitement
Copyright 2015 EDF R&D - Document diffusé sous licence GNU FDL (http://www.gnu.org/copyleft/fdl.html)

Enlace público actualizado
El enlace público a tu chat ha sido actualizado.