2
0
Fork 0

deplacement vers la batterie des tests en attente debug : Test_R_RESTART_1D/, Test_R_dilatation_thermique_LOI_ADDITIVE/, Test_R_traction_biaxiale_BLOCAGE_RELATIF_1/; modif script test.pl : desormais, une liste de messages d erreur rend ECHEC les calculs si ils sont reperes dans le fichier .log d un test (pour l instant, cette liste ne contient que : Segmentation fault)

This commit is contained in:
troufflard 2016-09-25 22:54:25 +00:00
parent 707c480b0e
commit 6f955a2324
17 changed files with 1162 additions and 54 deletions

View file

@ -0,0 +1,37 @@
------------------------------------------------------
Auteur
------------------------------------------------------
Julien Troufflard (troufflard@univ-ubs.fr)
------------------------------------------------------
Mots-cles
------------------------------------------------------
Traction biaxiale
BLOQUAGE_RELATIF_
TEMPS_MINI
------------------------------------------------------
But du test
------------------------------------------------------
Vérification du fonctionnement de la combinaison BLOQUAGE_RELATIF_ + TEMPS_MINI dans une condition de déplacement imposé
------------------------------------------------------
Description du calcul
------------------------------------------------------
Calcul de traction biaxiale sur un cube unitaire.
La gestion du chargement se fait via des courbes de charge :
1) Entre le temps 0 et 1, c est de la traction uniaxiale classique selon X car la condition sur UY de la face Y=1 est inactive jusqu au temps 1 inclus (TEMPS_MINI= 1).
2) Entre le temps 1 et 2, la courbe dpl_UX permet de figer la face X=1 dans sa position actuelle (X=1.02). La condition sur la face Y=1 devient active, c'est-à-dire un déplacement UY=0.02 (piloté par la courbe dpl_UY_relatif) depuis la position atteinte au temps 1 (BLOQUAGE_RELATIF_).
-------------------------------------------------------------
Grandeurs de comparaison
-------------------------------------------------------------
les positions finales du noeud 8 : X1, X2, X3
contraintes au point d intégration 1 : SIG11, SIG22, SIG33

View file

@ -0,0 +1,18 @@
nom_maillage cube_1elt_npti8
noeuds
8 NOEUDS
1 0 0 0
2 0 0 1
3 0 1 0
4 0 1 1
5 1 0 0
6 1 0 1
7 1 1 0
8 1 1 1
elements
1 ELEMENTS
1 HEXAEDRE LINEAIRE 5 7 3 1 6 8 4 2

View file

@ -0,0 +1,158 @@
# CORRESPONDANCE label => position
#
# gauche => X=1
#
# droit => X=0
#
# avant => Y=1
#
# arriere => Y=0
#
# haut => Z=1
#
# bas => Z=0
#
N_avant 3 4 7 8
N_arriere 1 2 5 6
N_haut 2 4 6 8
N_bas 1 3 5 7
N_droit 1 2 3 4
N_gauche 5 6 7 8
N_haut_droit 2 4
N_haut_gauche 6 8
N_haut_arriere 2 6
N_haut_avant 4 8
N_bas_droit 1 3
N_bas_gauche 5 7
N_bas_arriere 1 5
N_bas_avant 3 7
N_arriere_droit 1 2
N_arriere_gauche 5 6
N_avant_droit 3 4
N_avant_gauche 7 8
N_haut_arriere_droit 2
N_haut_arriere_gauche 6
N_haut_avant_gauche 8
N_haut_avant_droit 4
N_bas_arriere_droit 1
N_bas_arriere_gauche 5
N_bas_avant_gauche 7
N_bas_avant_droit 3
N_to 1 2 3 4 5 6 7 8
E_avant 1
E_derriere 1
E_haut 1
E_bas 1
E_droit 1
E_gauche 1
E_haut_droit 1
E_haut_gauche 1
E_haut_arriere 1
E_haut_avant 1
E_bas_droit 1
E_bas_gauche 1
E_bas_arriere 1
E_bas_avant 1
E_arriere_droit 1
E_arriere_gauche 1
E_avant_droit 1
E_avant_gauche 1
E_haut_arriere_droit 1
E_haut_arriere_gauche 1
E_haut_avant_gauche 1
E_haut_avant_droit 1
E_bas_arriere_droit 1
E_bas_arriere_gauche 1
E_bas_avant_gauche 1
E_bas_avant_droit 1
E_to 1
F_avant 1 5
F_arriere 1 2
F_haut 1 4
F_bas 1 1
F_droit 1 6
F_gauche 1 3
A_haut_droit 1 11
A_haut_gauche 1 9
A_haut_arriere 1 12
A_haut_avant 1 10
A_bas_droit 1 3
A_bas_gauche 1 1
A_bas_arriere 1 4
A_bas_avant 1 2
A_arriere_droit 1 8
A_arriere_gauche 1 5
A_avant_droit 1 7
A_avant_gauche 1 6

View file

@ -0,0 +1,116 @@
###############################################################################################
# Fichier de commande pour la visualisation elements finis #
# Herezh++ V6.687 #
# Copyright (c) 1997-2015, Gerard Rio (gerard.rio@univ-ubs.fr) http://kleger.univ-ubs.fr/Herezh/ #
# http://www-lg2m.univ-ubs.fr #
###############################################################################################
debut_fichier_commande_visu # >>>>>> le mot cle: <debut_fichier_commande_visu>
# permet au programme de se positionner au debut du fichier, il est indispensable
# =================================================================================
# || ***** demande d'une visualisation maple: ***** ||
# =================================================================================
# un mot cle de debut (debut_visualisation_maple)
# un mot cle de fin ( fin_visualisation_maple)
# la seule presence de ces deux mots cle suffit a activer la visualisation maple
debut_visualisation_maple
# ----------------------------- definition de la liste des increments a balayer: ----------------
debut_list_increment # un mot cle de debut de liste
actif 1 # <0 ou 1> indique si l'ordre est actif ou non
# une liste d'entier separee par des blancs, ou le mot cle (tous_les_increments)
# un mot cle de fin de liste ( fin_list_increment)
dernier_increment fin_list_increment
# ----------------------------- choix des maillages a visualiser: ----------------
# la liste est facultative, par defaut la visualisation concerne le premier maillage
debut_choix_maillage # un mot cle de debut,
actif 0 # <0 ou 1> indique si l'ordre est actif ou non
# une liste d'entiers , puis <fin_choix_maillage>, sur une meme ligne
1 fin_choix_maillage
# ----------------------------- definition des grandeurs a visualiser (maple): ----------------
debut_grandeurs_maple # un mot cle de debut (debut_grandeurs_maple),
actif 1 # <0 ou 1> indique si l'ordre est actif ou non
# les grandeurs globales (energie, puissance ....) un mot cle de debut, le nom des grandeurs puis un mot de fin
debut_grandeurs_globales fin_grandeurs_globales
# ensuite pour chaque maillage:,
# le numero du maillage <un entier>,
# les infos pour la visualisation eventuelle des torseurs de reaction,
# les infos pour la visualisation eventuelle aux noeud,
# - tout d'abord les ddl principaux (position, deplacements, temperature etc.)
# - puis les ddl etendus et particulieres qui peuvent representer des grandeurs diverses
# les infos pour la visualisation eventuelle aux elements,
# - tout d'abord les grandeurs generiques (deformations, contraintes etc.)
# - puis les grandeurs particulieres, par exemple specifique a une loi de comp ou une mesure de def
# enfin un mot cle de fin ( fin_grandeurs_maple)
1 # le numero de maillage
# les torseurs de reaction: un mot cle de debut: debut_list_torseur_reaction
# une liste de nom <chaine de caracteres >, puis <fin_list_torseur_reaction>
debut_list_torseur_reaction fin_list_torseur_reaction
debut_liste_ddl_et_noeud # ** debut des ddl principaux aux noeuds
# debut de la liste de noeuds, puis une liste de numero de noeud <entier>, puis <fin_list_noeud>
deb_list_noeud fin_list_noeud
# debut de la liste des ref de noeuds, puis une liste de nom <chaine de caracteres >, puis <fin_list_ref_noeud>
deb_list_ref_noeud N_haut_avant_gauche fin_list_ref_noeud
# debut de la liste des ddl a considerer aux noeuds, (une liste de ddl), puis <fin_list_ddl_noeud>
deb_list_ddl_noeud X1 X2 X3 fin_list_ddl_noeud
type_sortie_ddl_retenue= 0
# debut de la liste des ddl etendus a considerer aux noeuds, (une liste de ddl), puis <fin_list_ddl_etendu_noeud>
deb_list_ddl_etendu_noeud fin_list_ddl_etendu_noeud # fin des ddl etendu aux noeuds
# debut de la liste des grandeurs particulieres a considerer aux noeuds, (une liste de string), puis <fin_list_GrandParticuliere_noeud>
deb_list_GrandParticuliere_noeud fin_list_GrandParticuliere_noeud # fin des grandeurs particulieres aux noeuds
fin_liste_ddl_et_noeud # fin des grandeurs aux noeuds
debut_liste_ddl_ptinteg # ** debut des grandeurs aux elements
# debut de la liste des elements et points d'integration, une liste de (un element, un numero de pt d'integ), puis <fin_list_NbElement_NbPtInteg>
deb_list_NbElement_NbPtInteg 1 1 fin_list_NbElement_NbPtInteg
# debut de la liste des ref d'elements, puis une liste de: nom <chaine de caracteres > + numero d'integ, puis <fin_list_ref_element>
deb_list_ref_element fin_list_ref_element
# debut de la liste des ref de ptinteg d'elements, puis une liste de: nom <chaine de caracteres > puis <fin_list_ref_ptinteg_element>
deb_list_ref_ptinteg_element fin_list_ref_ptinteg_element
# debut de la liste des ddl a considerer pour les elements, (une liste de ddl), puis <fin_list_ddl_element>
deb_list_ddl_element SIG11 SIG22 SIG33 fin_list_ddl_element # fin de la liste de ddl a considerer pour les elements
# debut de la liste des grandeurs particulieres a considerer pour les elements, (une liste de string), puis <fin_list_GrandParticuliere_element>
deb_list_GrandParticuliere_element fin_list_GrandParticuliere_element # fin des grandeurs particulieres aux elements
# tableau de grandeurs evoluees aux elements a visualiser, un par maillage
deb_list_GrandEvoluee_element fin_list_GrandEvoluee_element
fin_liste_ddl_ptinteg # fin des grandeurs aux elements
# informations particuliere dans le cas ou il y a une animation
# type_xi indique si oui ou non les grandeurs a tracer sont aux noeuds (sinon c'est au elements)
# x1 et x2 indiquent les noms des ddls des grandeurs en x et y. accroi_x1 et accroi_x2 indiquent
# si oui ou non x1 et x2 represente l'accroissement entre 0 et t de la grandeur ou bien la grandeur elle meme.
debut_info_particulier grandeur_au_noeud? 1 x1= NU_DDL x2= NU_DDL accroi_x1= 0 accroi_x2= 1 fin_info_particulier
# un parametre de pilotage du style de sortie
parametre_style_de_sortie 1
# un parametre indiquant si les tenseurs sont en absolue (rep 1) ou suivant un repere ad hoc
# (tangent pour les coques, suivant la fibre moyenne pour les element 1D )
tenseur_en_absolue_ 0
fin_grandeurs_maple # fin des grandeurs a visualiser au format maple
# ----------------------------- definition des parametres d'animation: ----------------
debut_animation # un mot cle de debut de liste (debut_animation)
actif 0 # <0 ou 1> indique si l'ordre est actif ou non
# des parametres avec des valeurs: (sur une meme ligne)
cycleInterval 8 # cycleInterval <un reel> (indique le temps en seconde du cycle de l'animation)
fin_animation # un mot cle de fin
fin_visualisation_maple
# =================================================================================
# || fin de la visualisation maple ||
# =================================================================================
fin_fichier_commande_visu # <<<<<< le mot cle <fin_fichier_commande_visu> permet
# l'arret de la lecture des commandes, apres ce mot cle, aucune commande n'est lu, de plus
# sans le mot cle de fin de fichier, le fichier n'est pas valide
###############################################################################################

View file

@ -0,0 +1,83 @@
dimension 3
niveau_commentaire 3
TYPE_DE_CALCUL
non_dynamique avec plus lectureCommandesVisu
< cube_1elt_npti8.her
< cube_1elt_npti8.lis
les_courbes_1D
dpl_UX COURBEPOLYLINEAIRE_1_D
Debut_des_coordonnees_des_points
Coordonnee dim= 2 0. 0.
Coordonnee dim= 2 1. 0.02
Coordonnee dim= 2 2. 0.02
Fin_des_coordonnees_des_points
dpl_UY_relatif COURBEPOLYLINEAIRE_1_D
Debut_des_coordonnees_des_points
Coordonnee dim= 2 0. 0.
Coordonnee dim= 2 1. 0.
Coordonnee dim= 2 2. 0.02
Fin_des_coordonnees_des_points
choix_materiaux
E_tout MAT
materiaux
MAT ISOELAS
210000. 0.3
masse_volumique
E_tout 1.
charges
blocages
N_droit UX
N_arriere UY
N_bas UZ
N_gauche 'UX= COURBE_CHARGE: dpl_UX ECHELLE: 1.'
N_avant 'UY= COURBE_CHARGE: dpl_UY_relatif ECHELLE: 1.' TEMPS_MINI= 1. BLOCAGE_RELATIF_
controle
DELTAtMINI 1.e-7
DELTAtMAXI 0.1
TEMPSFIN 2.
DELTAt 0.1
ITERATIONS 15
PRECISION 1e-3
SAUVEGARDE DERNIER_CALCUL
MAXINCRE 9999999
NORME Residu/Reaction_et_VarRes
para_pilotage_equi_global
para_syteme_lineaire
para_affichage
resultats pas_de_sortie_finale_
COPIE 0
_fin_point_info_

View file

@ -0,0 +1,99 @@
#fichier au format maple6
###############################################################################################
# Visualisation elements finis : Herezh++ V6.726 #
# Copyright (c) 1997-2015, Gerard Rio (gerard.rio@univ-ubs.fr) http://kleger.univ-ubs.fr/Herezh/ #
# http://www-lg2m.univ-ubs.fr #
###############################################################################################
# entete des donnees : informations gererales: on trouve successivement:
# >> le nombre de grandeurs globales (peut etre nul) suivi des identificateurs
# precedes du numero de colonne entre crochet
# >> le nombre de maillages m, et dimension de l'espace de travail
# puis pour chaque maillage,
# >> le nombre de torseurs de reaction (peut etre nul), le nombre total de reel qui va etre ecrit
# correspondant aux composantes des torseurs, puis les noms de ref associee suivi des positions
# des composantes entre crochet accolees a un identificateur: R pour reaction, M pour moment
# puis pour chaque maillage
# >> le nombre de noeud n (peut etre nul) ou il y a des grandeurs en sortie ,
# puis le nombre des grandeurs p1 correspondantes, la position entre crochet des coordonnees
# et enfin l'idendificateur de ces grandeurs(p1 chaines de caractere)
# precedes du numero de colonne correspondant entre crochet
# puis pour chaque maillage
# >> le nombre de couples element-pt_integ (peut etre nulle) ou il y a des grandeurs en sortie ,
# les grandeurs aux elements sont decomposees en 2 listes: la premiere de quantite P2 correspondant
# a des grandeurs generiques, la seconde de quantite P3 corresponds aux grandeurs specifiques,
# on trouve donc a la suite du nombre d'element: le nombre P2, suivi de P2 identificateurs de ddl
# chacun precedes du numero de colonne entre crochet
# puis le nombre P3, suivi de P3 identificateurs+categorie+type (chaines de caracteres),
# suivi entre crochet, de la plage des numeros de colonnes, correspondant
# chacun sur une ligne differentes
# ==== NB: pour les grandeurs specifique tensorielle: exemple d'ordre en 2D:
# tenseur symetrique, A(1,1) A(2,1) A(2,2), non symetrique A(1,1) A(1,2) A(2,1) A(2,2)
# en 3D c'est: tenseur symetrique, A(1,1) A(2,1) A(2,2) A(3,1) A(3,2) A(3,3)
# non symetrique A(1,1) A(1,2) A(2,1) A(2,2) A(2,3) A(3,1) A(3,2) A(3,3)
# ** dans le cas ou il n'y a qu'un seul increment en sortie, pour les grandeurs aux noeuds et aux elements,
# ** les informations peuvent etre decoupees selon: une ligne = un noeud, et le temps n'est pas indique
# ** ( cf: parametre_style_de_sortie = 0)
#====================================================================
#|| recapitulatif des differentes grandeurs par colonne ||
#====================================================================
#---------------------------------- grandeur globales ------------------------------------
#0 (nombre de grandeurs globales)
#---------------------------------- maillage et dimension --------------------------------
#1 3 (nombre de maillages et dimension)
#---------------------------------- torseurs de reactions --------------------------------
#0 0 (nombre de torseurs et nombre total de grandeurs associees)
#
#---------------------------------- grandeurs aux noeuds --------------------------------
#1 3 (nombre de noeuds, nombre total de grandeurs associees)
# reference N_haut_avant_gauche : noeud_8 [2]X [3]Y [4]Z [5]X1 [6]X2 [7]X3 ;
#
#---------------------------------- grandeurs aux elements ------------------------------
#1 3 00 (nombre total d'elements, nombre totale de grandeurs associees, nombre de grandeurs particulieres, nombre de grandeurs tensorielles)
# element_1 pt_integ_1: [9]X [10]Y [11]Z [12] SIG11 [13] SIG22 [14] SIG33
#
#
#====================================================================
#|| fin du recapitulatif des differentes grandeurs ||
#====================================================================
# ensuite les donnees sont organisees sur differentes lignes, chaques lignes correspondant
# a un calcul (par exemple un pas de temps), sur chaque ligne il y a m enregistrement, chacun
# correspondant a un maillage. On trouve pour chaque enregistrement successivement :
# s'il y a des grandeurs globales: le temps puis les grandeurs globales,
# puis s'il y a des torseurs de reaction :
# de nouveau le temps, les composantes de la resultante puis les composantes du moments
# donc en 1D -> 1 reels (resultante), en 2D -> 3 reels (resultante 2, moment 1) et en 3D 6 reels
# puis s'il y a des grandeurs aux noeuds: de nouveau le temps
# les coordonnees a t du premier noeud suivi des p1 grandeurs correspondant au premier noeud
# puis les coordonnees du second noeud, les p1 grandeurs etc. pour tous les noeuds
# puis s'il y a des grandeur aux elements:
# le temps, puis les coordonnees a t du point d'integration d'un element (pour les grandeurs generiques)
# suivi des p2 grandeurs correspondantes puis les coordonnees a t du point d'integration
# correspondant aux grandeurs specifiques suivi des p3 grandeurs correspondantes
# puis les coordonnees d'un second point d'integration d'un element, les p2 grandeurs
# etc. pour tous les points d'integration - element
1.000000000000e-01 1.002000000000e+00 9.994021528470e-01 9.994021528470e-01 1.002000000000e+00 9.994021528470e-01 9.994021528470e-01 1.000000000000e-01 2.117475151360e-01 7.882036274110e-01 7.882036274110e-01 4.186999968413e+02 -7.225796468299e-02 -7.225796473688e-02
2.000000000000e-01 1.004000000000e+00 9.988092918389e-01 9.988092918389e-01 1.004000000000e+00 9.988092918389e-01 9.988092918389e-01 2.000000000000e-01 2.121701648668e-01 7.877360526756e-01 7.877360526756e-01 8.349867432157e+02 -5.044148934985e-06 -5.044148849720e-06
3.000000000000e-01 1.006000000000e+00 9.982208308086e-01 9.982208308086e-01 1.006000000000e+00 9.982208308086e-01 9.982208308086e-01 3.000000000000e-01 2.125928145976e-01 7.872719480933e-01 7.872719480934e-01 1.248750042103e+03 -3.937182839309e-06 -3.937164706258e-06
4.000000000000e-01 1.008000000000e+00 9.976368986747e-01 9.976368986747e-01 1.008000000000e+00 9.976368986747e-01 9.976368986747e-01 4.000000000000e-01 2.130154643284e-01 7.868114153390e-01 7.868114153390e-01 1.660052907544e+03 -4.181044289453e-06 -4.181062195130e-06
5.000000000000e-01 1.010000000000e+00 9.970529665408e-01 9.970529665408e-01 1.010000000000e+00 9.970529665408e-01 9.970529665408e-01 5.000000000000e-01 2.134381140592e-01 7.863508825847e-01 7.863508825847e-01 2.067819639942e+03 -1.825287218956e+00 -1.825287218992e+00
6.000000000000e-01 1.012000000000e+00 9.964824258645e-01 9.964824258645e-01 1.012000000000e+00 9.964824258645e-01 9.964824258645e-01 6.000000000000e-01 2.138607637900e-01 7.859009113400e-01 7.859009113400e-01 2.475355006163e+03 -3.672612228911e-05 -3.672615832784e-05
7.000000000000e-01 1.014000000000e+00 9.959118851882e-01 9.959118851882e-01 1.014000000000e+00 9.959118851882e-01 9.959118851882e-01 7.000000000000e-01 2.142834135209e-01 7.854509400953e-01 7.854509400953e-01 2.879416119725e+03 3.912457109516e-02 3.912457105901e-02
8.000000000000e-01 1.016000000000e+00 9.953413445119e-01 9.953413445119e-01 1.016000000000e+00 9.953413445119e-01 9.953413445119e-01 8.000000000000e-01 2.147060632517e-01 7.850009688507e-01 7.850009688507e-01 3.280027871816e+03 -1.697817128008e+00 -1.697817128045e+00
9.000000000000e-01 1.018000000000e+00 9.947834816473e-01 9.947834816473e-01 1.018000000000e+00 9.947834816473e-01 9.947834816473e-01 9.000000000000e-01 2.151287129825e-01 7.845609962809e-01 7.845609962809e-01 3.680335473648e+03 -3.314144657907e-05 -3.314146454159e-05
1.000000000000e+00 1.020000000000e+00 9.942256187827e-01 9.942256187827e-01 1.020000000000e+00 9.942256187827e-01 9.942256187827e-01 1.000000000000e+00 2.155513627133e-01 7.841210237110e-01 7.841210237110e-01 4.077253376881e+03 -4.098855042264e-02 -4.098855042230e-02
1.100000000000e+00 1.020000000000e+00 9.962256187827e-01 9.933721658728e-01 1.020000000000e+00 9.962256187827e-01 9.933721658728e-01 1.100000000000e+00 2.155513627133e-01 7.856983739802e-01 7.834479266224e-01 4.217718765379e+03 4.681740028296e+02 -3.801827027837e-02
1.200000000000e+00 1.020000000000e+00 9.982256187827e-01 9.925187129629e-01 1.020000000000e+00 9.982256187827e-01 9.925187129629e-01 1.200000000000e+00 2.155513627133e-01 7.872757242494e-01 7.827748295338e-01 4.356436264079e+03 9.326730854311e+02 -2.145438539390e+00
1.300000000000e+00 1.020000000000e+00 1.000225618783e+00 9.916871782055e-01 1.020000000000e+00 1.000225618783e+00 9.916871782055e-01 1.300000000000e+00 2.155513627133e-01 7.888530745186e-01 7.821190187472e-01 4.496139628797e+03 1.396205739923e+03 -2.106395879764e-04
1.400000000000e+00 1.020000000000e+00 1.002225618783e+00 9.908556434481e-01 1.020000000000e+00 1.002225618783e+00 9.908556434481e-01 1.400000000000e+00 2.155513627133e-01 7.904304247878e-01 7.814632079605e-01 4.634130600036e+03 1.856089274920e+03 8.615849624653e-02
1.500000000000e+00 1.020000000000e+00 1.004225618783e+00 9.900241086907e-01 1.020000000000e+00 1.004225618783e+00 9.900241086907e-01 1.500000000000e+00 2.155513627133e-01 7.920077750570e-01 7.808073971738e-01 4.770419864359e+03 2.312349790221e+03 -1.876809064328e+00
1.600000000000e+00 1.020000000000e+00 1.006225618783e+00 9.892127058348e-01 1.020000000000e+00 1.006225618783e+00 9.892127058348e-01 1.600000000000e+00 2.155513627133e-01 7.935851253262e-01 7.801674639172e-01 4.907537790639e+03 2.767532914915e+03 -1.794898118987e-04
1.700000000000e+00 1.020000000000e+00 1.008225618783e+00 9.884013029789e-01 1.020000000000e+00 1.008225618783e+00 9.884013029789e-01 1.700000000000e+00 2.155513627133e-01 7.951624755954e-01 7.795275306606e-01 5.042987605215e+03 3.219156984343e+03 -1.248669994093e-01
1.800000000000e+00 1.020000000000e+00 1.010225618783e+00 9.875899001230e-01 1.020000000000e+00 1.010225618783e+00 9.875899001230e-01 1.800000000000e+00 2.155513627133e-01 7.967398258646e-01 7.788875974040e-01 5.176779706159e+03 3.667247356173e+03 -2.241569013894e+00
1.900000000000e+00 1.020000000000e+00 1.012225618783e+00 9.868000503675e-01 1.020000000000e+00 1.012225618783e+00 9.868000503675e-01 1.900000000000e+00 2.155513627133e-01 7.983171761337e-01 7.782646625417e-01 5.311641903360e+03 4.114546652242e+03 -2.077463709611e-04
2.000000000000e+00 1.020000000000e+00 1.014225618783e+00 9.860102006119e-01 1.020000000000e+00 1.014225618783e+00 9.860102006119e-01 2.000000000000e+00 2.155513627133e-01 7.998945264029e-01 7.776417276794e-01 5.444880092637e+03 4.558375434422e+03 2.983076643923e-01

View file

@ -0,0 +1,51 @@
------------------------------------------------------
Auteur
------------------------------------------------------
Julien Troufflard (troufflard@univ-ubs.fr)
------------------------------------------------------
Mots-cles
------------------------------------------------------
contrainte_individuelle_a_chaque_loi_a_t
LOI_ADDITIVE_EN_SIGMA
ISOELAS
TEMP
temperature
dilatation thermique
dilatation_thermique
------------------------------------------------------
But du test
------------------------------------------------------
test de la combinaison "dilatation_thermique + LOI_ADDITIVE"
------------------------------------------------------
Description du calcul
------------------------------------------------------
traction uniaxiale suivant X sur un cube 1x1x1 (1 element HEXAEDRE LINEAIRE). La température initialement à 20°C évolue linéairement en fonction du temps pour atteindre 0°C à la fin du calcul
Loi de comportement :
- loi additive en contrainte : 2 lois élastiques ISOELAS
- dilatation thermique
-------------------------------------------------------------
Grandeurs de comparaison
-------------------------------------------------------------
pour le point d integration 1 de l element 1 :
- contrainte totale : SIG11
- contribution loi 1 : toutes les composantes
- contribution loi 2 : toutes les composantes
- déformations : EPS11, EPS22, EPS33
- volume du point d intégration : VOLUME_PTI
au noeud 8 :
- positions : X1, X2, X3
- température : TEMP
remarque : seuls les positions permettent de rendre compte de la dilatation thermique
(car les deformations EPS11, etc... ne representent que la partie mecanique
du tenseur des deformations)

View file

@ -0,0 +1,18 @@
nom_maillage cube_1elt_npti8
noeuds
8 NOEUDS
1 0 0 0
2 0 0 1
3 0 1 0
4 0 1 1
5 1 0 0
6 1 0 1
7 1 1 0
8 1 1 1
elements
1 ELEMENTS
1 HEXAEDRE LINEAIRE 5 7 3 1 6 8 4 2

View file

@ -0,0 +1,158 @@
# CORRESPONDANCE label => position
#
# gauche => X=1
#
# droit => X=0
#
# avant => Y=1
#
# arriere => Y=0
#
# haut => Z=1
#
# bas => Z=0
#
N_avant 3 4 7 8
N_arriere 1 2 5 6
N_haut 2 4 6 8
N_bas 1 3 5 7
N_droit 1 2 3 4
N_gauche 5 6 7 8
N_haut_droit 2 4
N_haut_gauche 6 8
N_haut_arriere 2 6
N_haut_avant 4 8
N_bas_droit 1 3
N_bas_gauche 5 7
N_bas_arriere 1 5
N_bas_avant 3 7
N_arriere_droit 1 2
N_arriere_gauche 5 6
N_avant_droit 3 4
N_avant_gauche 7 8
N_haut_arriere_droit 2
N_haut_arriere_gauche 6
N_haut_avant_gauche 8
N_haut_avant_droit 4
N_bas_arriere_droit 1
N_bas_arriere_gauche 5
N_bas_avant_gauche 7
N_bas_avant_droit 3
N_to 1 2 3 4 5 6 7 8
E_avant 1
E_derriere 1
E_haut 1
E_bas 1
E_droit 1
E_gauche 1
E_haut_droit 1
E_haut_gauche 1
E_haut_arriere 1
E_haut_avant 1
E_bas_droit 1
E_bas_gauche 1
E_bas_arriere 1
E_bas_avant 1
E_arriere_droit 1
E_arriere_gauche 1
E_avant_droit 1
E_avant_gauche 1
E_haut_arriere_droit 1
E_haut_arriere_gauche 1
E_haut_avant_gauche 1
E_haut_avant_droit 1
E_bas_arriere_droit 1
E_bas_arriere_gauche 1
E_bas_avant_gauche 1
E_bas_avant_droit 1
E_to 1
F_avant 1 5
F_arriere 1 2
F_haut 1 4
F_bas 1 1
F_droit 1 6
F_gauche 1 3
A_haut_droit 1 11
A_haut_gauche 1 9
A_haut_arriere 1 12
A_haut_avant 1 10
A_bas_droit 1 3
A_bas_gauche 1 1
A_bas_arriere 1 4
A_bas_avant 1 2
A_arriere_droit 1 8
A_arriere_gauche 1 5
A_avant_droit 1 7
A_avant_gauche 1 6

View file

@ -0,0 +1,116 @@
###############################################################################################
# Fichier de commande pour la visualisation elements finis #
# Herezh++ V6.687 #
# Copyright (c) 1997-2015, Gerard Rio (gerard.rio@univ-ubs.fr) http://kleger.univ-ubs.fr/Herezh/ #
# http://www-lg2m.univ-ubs.fr #
###############################################################################################
debut_fichier_commande_visu # >>>>>> le mot cle: <debut_fichier_commande_visu>
# permet au programme de se positionner au debut du fichier, il est indispensable
# =================================================================================
# || ***** demande d'une visualisation maple: ***** ||
# =================================================================================
# un mot cle de debut (debut_visualisation_maple)
# un mot cle de fin ( fin_visualisation_maple)
# la seule presence de ces deux mots cle suffit a activer la visualisation maple
debut_visualisation_maple
# ----------------------------- definition de la liste des increments a balayer: ----------------
debut_list_increment # un mot cle de debut de liste
actif 1 # <0 ou 1> indique si l'ordre est actif ou non
# une liste d'entier separee par des blancs, ou le mot cle (tous_les_increments)
# un mot cle de fin de liste ( fin_list_increment)
dernier_increment fin_list_increment
# ----------------------------- choix des maillages a visualiser: ----------------
# la liste est facultative, par defaut la visualisation concerne le premier maillage
debut_choix_maillage # un mot cle de debut,
actif 0 # <0 ou 1> indique si l'ordre est actif ou non
# une liste d'entiers , puis <fin_choix_maillage>, sur une meme ligne
1 fin_choix_maillage
# ----------------------------- definition des grandeurs a visualiser (maple): ----------------
debut_grandeurs_maple # un mot cle de debut (debut_grandeurs_maple),
actif 1 # <0 ou 1> indique si l'ordre est actif ou non
# les grandeurs globales (energie, puissance ....) un mot cle de debut, le nom des grandeurs puis un mot de fin
debut_grandeurs_globales fin_grandeurs_globales
# ensuite pour chaque maillage:,
# le numero du maillage <un entier>,
# les infos pour la visualisation eventuelle des torseurs de reaction,
# les infos pour la visualisation eventuelle aux noeud,
# - tout d'abord les ddl principaux (position, deplacements, temperature etc.)
# - puis les ddl etendus et particulieres qui peuvent representer des grandeurs diverses
# les infos pour la visualisation eventuelle aux elements,
# - tout d'abord les grandeurs generiques (deformations, contraintes etc.)
# - puis les grandeurs particulieres, par exemple specifique a une loi de comp ou une mesure de def
# enfin un mot cle de fin ( fin_grandeurs_maple)
1 # le numero de maillage
# les torseurs de reaction: un mot cle de debut: debut_list_torseur_reaction
# une liste de nom <chaine de caracteres >, puis <fin_list_torseur_reaction>
debut_list_torseur_reaction fin_list_torseur_reaction
debut_liste_ddl_et_noeud # ** debut des ddl principaux aux noeuds
# debut de la liste de noeuds, puis une liste de numero de noeud <entier>, puis <fin_list_noeud>
deb_list_noeud 8 fin_list_noeud
# debut de la liste des ref de noeuds, puis une liste de nom <chaine de caracteres >, puis <fin_list_ref_noeud>
deb_list_ref_noeud fin_list_ref_noeud
# debut de la liste des ddl a considerer aux noeuds, (une liste de ddl), puis <fin_list_ddl_noeud>
deb_list_ddl_noeud X1 X2 X3 TEMP fin_list_ddl_noeud
type_sortie_ddl_retenue= 0
# debut de la liste des ddl etendus a considerer aux noeuds, (une liste de ddl), puis <fin_list_ddl_etendu_noeud>
deb_list_ddl_etendu_noeud fin_list_ddl_etendu_noeud # fin des ddl etendu aux noeuds
# debut de la liste des grandeurs particulieres a considerer aux noeuds, (une liste de string), puis <fin_list_GrandParticuliere_noeud>
deb_list_GrandParticuliere_noeud fin_list_GrandParticuliere_noeud # fin des grandeurs particulieres aux noeuds
fin_liste_ddl_et_noeud # fin des grandeurs aux noeuds
debut_liste_ddl_ptinteg # ** debut des grandeurs aux elements
# debut de la liste des elements et points d'integration, une liste de (un element, un numero de pt d'integ), puis <fin_list_NbElement_NbPtInteg>
deb_list_NbElement_NbPtInteg 1 1 fin_list_NbElement_NbPtInteg
# debut de la liste des ref d'elements, puis une liste de: nom <chaine de caracteres > + numero d'integ, puis <fin_list_ref_element>
deb_list_ref_element fin_list_ref_element
# debut de la liste des ref de ptinteg d'elements, puis une liste de: nom <chaine de caracteres > puis <fin_list_ref_ptinteg_element>
deb_list_ref_ptinteg_element fin_list_ref_ptinteg_element
# debut de la liste des ddl a considerer pour les elements, (une liste de ddl), puis <fin_list_ddl_element>
deb_list_ddl_element EPS11 EPS22 EPS33 SIG11 fin_list_ddl_element # fin de la liste de ddl a considerer pour les elements
# debut de la liste des grandeurs particulieres a considerer pour les elements, (une liste de string), puis <fin_list_GrandParticuliere_element>
deb_list_GrandParticuliere_element VOLUME_PTI contrainte_individuelle_a_chaque_loi_a_t fin_list_GrandParticuliere_element # fin des grandeurs particulieres aux elements
# tableau de grandeurs evoluees aux elements a visualiser, un par maillage
deb_list_GrandEvoluee_element fin_list_GrandEvoluee_element
fin_liste_ddl_ptinteg # fin des grandeurs aux elements
# informations particuliere dans le cas ou il y a une animation
# type_xi indique si oui ou non les grandeurs a tracer sont aux noeuds (sinon c'est au elements)
# x1 et x2 indiquent les noms des ddls des grandeurs en x et y. accroi_x1 et accroi_x2 indiquent
# si oui ou non x1 et x2 represente l'accroissement entre 0 et t de la grandeur ou bien la grandeur elle meme.
debut_info_particulier grandeur_au_noeud? 1 x1= NU_DDL x2= NU_DDL accroi_x1= 0 accroi_x2= 1 fin_info_particulier
# un parametre de pilotage du style de sortie
parametre_style_de_sortie 1
# un parametre indiquant si les tenseurs sont en absolue (rep 1) ou suivant un repere ad hoc
# (tangent pour les coques, suivant la fibre moyenne pour les element 1D )
tenseur_en_absolue_ 0
fin_grandeurs_maple # fin des grandeurs a visualiser au format maple
# ----------------------------- definition des parametres d'animation: ----------------
debut_animation # un mot cle de debut de liste (debut_animation)
actif 0 # <0 ou 1> indique si l'ordre est actif ou non
# des parametres avec des valeurs: (sur une meme ligne)
cycleInterval 8 # cycleInterval <un reel> (indique le temps en seconde du cycle de l'animation)
fin_animation # un mot cle de fin
fin_visualisation_maple
# =================================================================================
# || fin de la visualisation maple ||
# =================================================================================
fin_fichier_commande_visu # <<<<<< le mot cle <fin_fichier_commande_visu> permet
# l'arret de la lecture des commandes, apres ce mot cle, aucune commande n'est lu, de plus
# sans le mot cle de fin de fichier, le fichier n'est pas valide
###############################################################################################

View file

@ -0,0 +1,91 @@
dimension 3
niveau_commentaire 3
TYPE_DE_CALCUL
non_dynamique avec plus lectureCommandesVisu
< cube_1elt_npti8.her
< cube_1elt_npti8.lis
les_courbes_1D
choix_materiaux
E_tout MAT
E_tout loi_DILATATION
materiaux
MAT LOI_ADDITIVE_EN_SIGMA
ISOELAS
1000. 0.4
ISOELAS
2000. 0.4
fin_liste_lois_elementaires
loi_DILATATION LOI_ISO_THERMO
alphaT= 1.e-3 lambda= 1.e-10 cp= 1.e-10
fin_thermique_isotrope
masse_volumique
E_tout 1.
dilatation_thermique
E_tout 1.
charges
blocages
#traction uniaxiale suivant X par deplacement impose
N_droit UX
N_arriere UY
N_bas UZ
N_gauche 'UX=0.1'
#temperature initialement a 20 passe a 0 (delta = -20)
N_tout 'TEMP= -20'
initialisation
N_tout 'TEMP= 20'
controle
DELTAtMINI 1.e-7
DELTAtMAXI 0.1
TEMPSFIN 1
DELTAt 0.1
ITERATIONS 15
PRECISION 1e-3
SAUVEGARDE DERNIER_CALCUL
MAXINCRE 99999999
NORME Residu/Reaction_et_VarRes
para_pilotage_equi_global
para_syteme_lineaire
para_affichage
resultats pas_de_sortie_finale_
COPIE 0
_fin_point_info_

View file

@ -0,0 +1,104 @@
#fichier au format maple6
###############################################################################################
# Visualisation elements finis : Herezh++ V6.768 #
# Copyright (c) 1997-2016, Gerard Rio (gerard.rio@univ-ubs.fr) http://kleger.univ-ubs.fr/Herezh/ #
# http://www-lg2m.univ-ubs.fr #
###############################################################################################
# entete des donnees : informations gererales: on trouve successivement:
# >> le nombre de grandeurs globales (peut etre nul) suivi des identificateurs
# precedes du numero de colonne entre crochet
# >> le nombre de maillages m, et dimension de l'espace de travail
# puis pour chaque maillage,
# >> le nombre de torseurs de reaction (peut etre nul), le nombre total de reel qui va etre ecrit
# correspondant aux composantes des torseurs, puis les noms de ref associee suivi des positions
# des composantes entre crochet accolees a un identificateur: R pour reaction, M pour moment
# ensuite pour les moyennes, sommes, maxi etc. calculees sur des references de noeuds
# >> le nombre de ref de noeuds, nombre total de grandeurs associees
# puis pour chaque maillage
# le numero de maillage puis pour chaque reference de noeuds
# le nom de la reference, le nombre de noeud de la ref, le nombre de grandeurs qui vont etre ecrites
# puis entre crochet la position suivi de la signification de chaque grandeur
#
# ensuite pour les moyennes, sommes, maxi etc. calculees sur des references d'elements ou de pti
# >> le nombre de ref d'element+ref de pti, nombre total de grandeurs associees
# puis pour chaque maillage
# le numero de maillage puis pour chaque reference d'element et de pti
# le nom de la reference, le nombre d'element de la ref, le nombre de grandeurs qui vont etre ecrites
# puis entre crochet la position suivi de la signification de chaque grandeur
#
# puis pour chaque maillage
# >> le nombre de noeud n (peut etre nul) ou il y a des grandeurs en sortie ,
# puis le nombre des grandeurs p1 correspondantes, la position entre crochet des coordonnees
# et enfin l'idendificateur de ces grandeurs(p1 chaines de caractere)
# precedes du numero de colonne correspondant entre crochet
# puis pour chaque maillage
# >> le nombre de couples element-pt_integ (peut etre nulle) ou il y a des grandeurs en sortie ,
# les grandeurs aux elements sont decomposees en 2 listes: la premiere de quantite P2 correspondant
# a des grandeurs generiques, la seconde de quantite P3 corresponds aux grandeurs specifiques,
# on trouve donc a la suite du nombre d'element: le nombre P2, suivi de P2 identificateurs de ddl
# chacun precedes du numero de colonne entre crochet
# puis le nombre P3, suivi de P3 identificateurs+categorie+type (chaines de caracteres),
# suivi entre crochet, de la plage des numeros de colonnes, correspondant
# chacun sur une ligne differentes
# ==== NB: pour les grandeurs specifique tensorielle: exemple d'ordre en 2D:
# tenseur symetrique, A(1,1) A(2,1) A(2,2), non symetrique A(1,1) A(1,2) A(2,1) A(2,2)
# en 3D c'est: tenseur symetrique, A(1,1) A(2,1) A(2,2) A(3,1) A(3,2) A(3,3)
# non symetrique A(1,1) A(1,2) A(2,1) A(2,2) A(2,3) A(3,1) A(3,2) A(3,3)
# ** dans le cas ou il n'y a qu'un seul increment en sortie, pour les grandeurs aux noeuds et aux elements,
# ** les informations peuvent etre decoupees selon: une ligne = un noeud, et le temps n'est pas indique
# ** ( cf: parametre_style_de_sortie = 0)
#====================================================================
#|| recapitulatif des differentes grandeurs par colonne ||
#====================================================================
#---------------------------------- grandeur globales ------------------------------------
#0 (nombre de grandeurs globales)
#---------------------------------- maillage et dimension --------------------------------
#1 3 (nombre de maillages et dimension)
#---------------------------------- torseurs de reactions --------------------------------
#0 0 (nombre de torseurs et nombre total de grandeurs associees)
#
#-------- moyenne, somme, maxi etc. de grandeurs aux noeuds pour des ref ---------------
#0 0 (nombre de ref de noeud et nombre total de grandeurs associees)
#
#-------- moyenne, somme, maxi etc. de grandeurs aux elements pour des ref ---------------
#0 0 (nombre de ref d'element et nombre total de grandeurs associees)
#
#---------------------------------- grandeurs aux noeuds --------------------------------
#1 4 (nombre de noeuds, nombre total de grandeurs associees)
# noeud_8 [2]X [3]Y [4]Z [5]X1 [6]X2 [7]X3 [8]TEMP ;
#
#---------------------------------- grandeurs aux elements ------------------------------
#1 4 20 (nombre total d'elements, nombre totale de grandeurs associees, nombre de grandeurs particulieres, nombre de grandeurs tensorielles)
# element_1 pt_integ_1: [10]X [11]Y [12]Z [13] EPS11 [14] EPS22 [15] EPS33 [16] SIG11
# [17]X [18]Y [19]Z
# VOLUME_PTI TYPE_SIMPLE SCALAIRE 1 [20...20]
# contrainte_individuelle_a_chaque_loi_a_t TABLEAU_T TENSEURHH 12 [21...32]
#
#
#
#====================================================================
#|| fin du recapitulatif des differentes grandeurs ||
#====================================================================
# ensuite les donnees sont organisees sur differentes lignes, chaques lignes correspondant
# a un calcul (par exemple un pas de temps), sur chaque ligne il y a m enregistrement, chacun
# correspondant a un maillage. On trouve pour chaque enregistrement successivement :
# s'il y a des grandeurs globales: le temps puis les grandeurs globales,
# puis s'il y a des torseurs de reaction :
# de nouveau le temps, les composantes de la resultante puis les composantes du moments
# donc en 1D -> 1 reels (resultante), en 2D -> 3 reels (resultante 2, moment 1) et en 3D 6 reels
# puis s'il y a des grandeurs aux noeuds: de nouveau le temps
# les coordonnees a t du premier noeud suivi des p1 grandeurs correspondant au premier noeud
# puis les coordonnees du second noeud, les p1 grandeurs etc. pour tous les noeuds
# puis s'il y a des grandeur aux elements:
# le temps, puis les coordonnees a t du point d'integration d'un element (pour les grandeurs generiques)
# suivi des p2 grandeurs correspondantes puis les coordonnees a t du point d'integration
# correspondant aux grandeurs specifiques suivi des p3 grandeurs correspondantes
# puis les coordonnees d'un second point d'integration d'un element, les p2 grandeurs
# etc. pour tous les points d'integration - element
1.000000000000e+00 1.100000000000e+00 9.426378600697e-01 9.426378600697e-01 1.100000000000e+00 9.426378600697e-01 9.426378600697e-01 0.000000000000e+00 1.000000000000e+00 2.324573519457e-01 7.434350411647e-01 7.434350411647e-01 1.067768595041e-01 -4.270431673240e-02 -4.270431673240e-02 3.203856676774e+02 2.324573519457e-01 7.434350411647e-01 7.434350411647e-01 1.221778435951e-01 1.067952225591e+02 1.217001211349e-13 2.295381876671e-02 -5.817482815057e-16 3.040041898616e-29 2.295381876663e-02 2.135904451183e+02 2.434002422697e-13 4.590763753342e-02 -1.163496563011e-15 6.080083797233e-29 4.590763753326e-02

View file

@ -292,6 +292,7 @@ On distingue actuellement deux sortes de tests selon le temps de calcul : les te
child { node[draw, anchor=west] {CONTACT}}
child { node[draw, anchor=west] {CONDITIONS\_LIMITES}}
child { node[draw, anchor=west] {LOI\_DE\_COMPORTEMENT}}
child { node[draw, anchor=west] {PARAMETRES}}
child { node[draw, anchor=west] {SORTIES}}
child { node[draw, anchor=west] {TYPE\_DE\_CALCUL}}
child { node[draw, anchor=west] {TYPE\_CHARGEMENT}}
@ -305,6 +306,7 @@ On distingue actuellement deux sortes de tests selon le temps de calcul : les te
child[missing] { }
child[missing] { }
child[missing] { }
child[missing] { }
child { node[draw, anchor=west] {CALCUL\_COMPLET}}
child { node[draw, anchor=west] {AUTRES}};
\end{tikzpicture}
@ -1131,6 +1133,11 @@ pour ces 2 scripts, une gestion des signaux d'interruption \verb|INT| et \verb|T
\item[-] modif du script \verb|test.pl| : légère modif sans conséquence (petit changement dans le message d'erreur en lien avec un problème d'exécution Herezh)
\end{itemize}%tiret
~\\
\item[$\bullet$] 2016-09-26 (Julien Troufflard) :
\begin{itemize}
\item[-] modif du script \verb|test.pl| : désormais, la vérification du status d'un calcul se fait avant l'exécution d'un éventuel script de post-traitement. Concernant le status, il y a désormais une vérification de la présence de messages d'erreur dans la subroutine \verb|lancement_calcul()|. Pour l'instant, seul le message \verb|Segmentation fault| figure dans cette liste. Cette liste a vocation à répertorier les messages d'erreur d'ordre "informatique", pas d'ordre "mécanique" ou en lien avec les éléments finis (la logique veut que les aspects numériques ou mécaniques sont des domaines qui doivent \^etre vérifiés par un \verb|.maple.ref|). La raison de cette nouvelle vérification est que les tests ayant \verb|Segmentation fault| étaient considérés comme réussis d'un point de vue informatique... ce qui pouvait conduire à croire qu'un test n'avait pas de problème.
\end{itemize}%tiret
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%template d ajout d une nouvelle mise à jour (composé d'une puce "bullet" avec Date et auteur de la modif, suivie d une série de puce "-"

View file

@ -585,6 +585,65 @@ BOUCLE_TEST:for(my $no_test=1; $no_test<=$nb_CVisu; $no_test++) {
#################################################################################
#premiere verification selon status renvoye par la subroutine lancement_commande
#################################################################################
#---cas d une interruption volontaire (par exemple : Ctrl-c)
if($ARRET_FORCE) {
printRapport(" -> ECHEC : ***INTERRUPTION PAR L UTILISATEUR***\n\n");
print "**Erreur Test $repertoire_test/.CVisu$no_test : INTERRUPTION PAR L UTILISATEUR\n";
last BOUCLE_TEST;
}
#---cas d un calcul ayant conduit a un trop gros fichier de redirection
elsif($status_calcul eq "depassement taille maximum") {
printRapport(" -> ECHEC : le calcul Herezh a conduit a la creation d un trop gros fichier de redirection (fichier $fichier_test.log a depasse la taille maximum autorisee egale a $TAILLE_MAX_FIC_REDIR octets).\n");
printRapport(" Les causes possibles sont un probleme de menu interactif, un long calcul associe a une frequence trop grande d affichage des increments et iterations, ...\n");
printRapport(" Si ce depassement est un fonctionnement normal, il faut augmenter la taille admissible dans la variable \$TAILLE_MAX_FIC_REDIR au debut du script de test $NOM_PROG pour rendre possible ce test.\n\n");
print "**Erreur Test $repertoire_test/.CVisu$no_test : le calcul Herezh a conduit a la creation d un trop gros fichier de redirection (fichier $fichier_test.log a depasse la taille maximum autorisee egale a $TAILLE_MAX_FIC_REDIR octets).\n";
print " Les causes possibles sont un probleme de menu interactif, un long calcul associe a une frequence trop grande d affichage des increments et iterations, ...\n";
print " Si ce depassement est un fonctionnement normal, il faut augmenter la taille admissible dans la variable \$TAILLE_MAX_FIC_REDIR au debut du script de test $NOM_PROG pour rendre possible ce test.\n";
last BOUCLE_TEST;
}
#---cas d un probleme de redirection d affichage (sans doute probleme lie a la commande "tee")
elsif($status_calcul eq "probleme redirection affichage") {
printRapport(" -> ECHEC : il y a eu un probleme dans la redirection de l affichage via la commande \"tee\" (le fichier $fichier_test.log n a pas ete cree). Cause possible : commande tee introuvable\n\n");
print "**Erreur Test $repertoire_test/.CVisu$no_test : il y a eu un probleme dans la redirection de l affichage via la commande \"tee\" (le fichier $fichier_test.log n a pas ete cree). Cause possible : commande tee introuvable\n";
last BOUCLE_TEST;
}
#---cas d un calcul qui ne se lance pas
elsif($status_calcul eq "probleme lancement calcul") {
printRapport(" -> ECHEC : le calcul ne se lance pas\n\n");
print "**Erreur Test $repertoire_test/.CVisu$no_test : le calcul ne se lance pas\n";
last BOUCLE_TEST;
}
#---cas d un arret a cause d une activite cpu nulle
elsif($status_calcul eq "activite cpu nulle") {
printRapport(" -> ECHEC : le calcul ne s arretait pas alors qu il avait une activite cpu nulle\n");
printRapport(" Causes possibles :\n");
printRapport(" - erreur dans la lecture de la mise en donnees (verifiez le .info)\n");
printRapport(" - probleme de menu interactif (verifiez le .CVisu ou le fichier .commande si il existe)\n\n");
print "**Erreur Test $repertoire_test/.CVisu$no_test : le calcul ne s arretait pas alors qu il avait une activite cpu nulle\n";
print " Causes possibles :\n";
print " - erreur dans la lecture de la mise en donnees (verifiez le .info)\n";
print " - probleme de menu interactif (verifiez le .CVisu ou le fichier .commande si il existe)\n\n";
last BOUCLE_TEST;
}
#---cas d un status autre que "ok" (typiquement un message d erreur)
elsif($status_calcul ne 'ok') {
printRapport(" -> ECHEC : le calcul a produit le message d erreur suivant : $status_calcul\n\n");
print "**Erreur Test $repertoire_test/.CVisu$no_test : le calcul a produit le message d erreur suivant : $status_calcul\n";
last BOUCLE_TEST;
}
#####################################################################################################
#----------------------------------------------------------------------------------------------------
# EVENTUEL POST-TRAITEMENT (si presence du fichier $script_posttrait)
@ -707,54 +766,6 @@ BOUCLE_TEST:for(my $no_test=1; $no_test<=$nb_CVisu; $no_test++) {
#----------------------------------------------------------------------------------------------------
#####################################################################################################
#################################################################################
#premiere verification selon status renvoye par la subroutine lancement_commande
#################################################################################
#---cas d une interruption volontaire (par exemple : Ctrl-c)
if($ARRET_FORCE) {
printRapport(" -> ECHEC : ***INTERRUPTION PAR L UTILISATEUR***\n\n");
print "**Erreur Test $repertoire_test/.CVisu$no_test : INTERRUPTION PAR L UTILISATEUR\n";
last BOUCLE_TEST;
}
#---cas d un calcul ayant conduit a un trop gros fichier de redirection
elsif($status_calcul eq "depassement taille maximum") {
printRapport(" -> ECHEC : le calcul Herezh a conduit a la creation d un trop gros fichier de redirection (fichier $fichier_test.log a depasse la taille maximum autorisee egale a $TAILLE_MAX_FIC_REDIR octets).\n");
printRapport(" Les causes possibles sont un probleme de menu interactif, un long calcul associe a une frequence trop grande d affichage des increments et iterations, ...\n");
printRapport(" Si ce depassement est un fonctionnement normal, il faut augmenter la taille admissible dans la variable \$TAILLE_MAX_FIC_REDIR au debut du script de test $NOM_PROG pour rendre possible ce test.\n\n");
print "**Erreur Test $repertoire_test/.CVisu$no_test : le calcul Herezh a conduit a la creation d un trop gros fichier de redirection (fichier $fichier_test.log a depasse la taille maximum autorisee egale a $TAILLE_MAX_FIC_REDIR octets).\n";
print " Les causes possibles sont un probleme de menu interactif, un long calcul associe a une frequence trop grande d affichage des increments et iterations, ...\n";
print " Si ce depassement est un fonctionnement normal, il faut augmenter la taille admissible dans la variable \$TAILLE_MAX_FIC_REDIR au debut du script de test $NOM_PROG pour rendre possible ce test.\n";
last BOUCLE_TEST;
}
#---cas d un probleme de redirection d affichage (sans doute probleme lie a la commande "tee")
elsif($status_calcul eq "probleme redirection affichage") {
printRapport(" -> ECHEC : il y a eu un probleme dans la redirection de l affichage via la commande \"tee\" (le fichier $fichier_test.log n a pas ete cree). Cause possible : commande tee introuvable\n\n");
print "**Erreur Test $repertoire_test/.CVisu$no_test : il y a eu un probleme dans la redirection de l affichage via la commande \"tee\" (le fichier $fichier_test.log n a pas ete cree). Cause possible : commande tee introuvable\n";
last BOUCLE_TEST;
}
#---cas d un calcul qui ne se lance pas
elsif($status_calcul eq "probleme lancement calcul") {
printRapport(" -> ECHEC : le calcul ne se lance pas\n\n");
print "**Erreur Test $repertoire_test/.CVisu$no_test : le calcul ne se lance pas\n";
last BOUCLE_TEST;
}
#---cas d un arret a cause d une activite cpu nulle
elsif($status_calcul eq "activite cpu nulle") {
printRapport(" -> ECHEC : le calcul ne s arretait pas alors qu il avait une activite cpu nulle\n");
printRapport(" Causes possibles :\n");
printRapport(" - erreur dans la lecture de la mise en donnees (verifiez le .info)\n");
printRapport(" - probleme de menu interactif (verifiez le .CVisu ou le fichier .commande si il existe)\n\n");
print "**Erreur Test $repertoire_test/.CVisu$no_test : le calcul ne s arretait pas alors qu il avait une activite cpu nulle\n";
print " Causes possibles :\n";
print " - erreur dans la lecture de la mise en donnees (verifiez le .info)\n";
print " - probleme de menu interactif (verifiez le .CVisu ou le fichier .commande si il existe)\n\n";
last BOUCLE_TEST;
}
#################################################################################
#cas d une verification via un script dedie (fichier .verif)
#################################################################################
@ -1129,6 +1140,7 @@ sub printRapport {
# "probleme redirection affichage" => la redirection de l affichage n a pas ete faite correctement (dans ce cas, probleme lie a la commande tee)
# "probleme lancement calcul" => le calcul ne s est pas lance
# "activite cpu nulle" => calcul ne s arretait pas alors qu il avait une activite cpu nulle
# "..." => divers messages d erreur produit par Herezh (voir variable @liste_message_erreur)
sub lancement_commande {
use IO::Handle;
@ -1383,9 +1395,33 @@ sub lancement_commande {
}
#sinon ca veut dire que le calcul Herezh s est arrete normalement (qu il ait converge ou non)
# => status calcul = ok
# en ce cas, on regarde si certains messages d erreur apparaissent dans le .log
#
# si aucun message d erreur => status calcul = ok
#
# sinon, on renvoie le message d erreur => status calcul = ... non du message ...
#
else {
#liste des messages d erreur repertories :
# Remarques : 1) il s agit de repertorier les messages d erreur fatal. C'est-a-dire des problemes
# plutot en lien avec l informatique, et pas la mecanique.
# 2) ATTENTION a bien recopier le message d erreur fourni par Herezh (les majuscules et le nombre d espaces comptent!!!)
my @liste_message_erreur = ('Segmentation fault');
#initilisation du status a "ok"
$status_calcul = 'ok';
#recherche d un eventuel message d erreur
open(my $Hlocal, "<$fredir_tee");
LECTURE_FIC:while(<$Hlocal>) {
foreach my $message (@liste_message_erreur) {
if(/$message/) {
$status_calcul = $message;
last LECTURE_FIC;
}
}
}
close($Hlocal);
}

View file

@ -5,6 +5,8 @@ use English;
use File::Basename;
use Cwd;
my $NOM_PROG = basename $PROGRAM_NAME;
#pattern d un reel pour les regex
my $format_reel = '[+-]?[\.]?\d+[\.]?\d*(?:[eE][+-]?\d*)?';
#
#
@ -73,10 +75,24 @@ system("cp $fmaple $fmaple.ref2");
print "resultat posttrait : ECHEC\n";
};
#modif temps (on change le temps de 1 en 2. Pour info, le temps est en colonne 1 mais egalement en colonne 6 pour ce test)
open(FIC, "<$fmaple.ref2");
open(FIC2, ">$fmaple.ref2.tmp");
while(<FIC>) {
if(/^\s*$format_reel/o) {
@_ = split;
$_[0] = 2.;
$_[5] = 2.;
print FIC2 "@_\n";
}
else {
print FIC2;
}
}
close(FIC2);
close(FIC);
system("mv -f $fmaple.ref2.tmp $fmaple.ref2");
#reussite du script
print "resultat posttrait : OK\n";
print "coucou\n";
sleep 10;
print "couycou\n";

Binary file not shown.

Binary file not shown.