ajout Test : FONCTION_UNIQUE/LOI_DE_COMPORTEMENT/LOI_VIA_UMAT/Test_R_LOI_VIA_UMAT_1 (test d une loi de comportement externe type UMAT par un dialogue Herezh-Herezh); ajout d une nouvelle fonctionnalite dans le fonctionnement d un test : possibilite de faire des traitements avant et apres calcul via un script .pretrait ou .posttrait (voir doc section 6.5 "Fichiers facultatifs en rapport avec l execution du test")
This commit is contained in:
parent
f4e780d194
commit
c5a9ec9911
15 changed files with 896 additions and 347 deletions
|
@ -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 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 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 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
|
||||
|
||||
###############################################################################################
|
||||
|
||||
|
|
@ -0,0 +1,70 @@
|
|||
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_UMAT
|
||||
|
||||
|
||||
materiaux
|
||||
MAT_UMAT LOI_VIA_UMAT
|
||||
nom_de_la_loi= acier categorie= CAT_MECANIQUE dim_loi= 3
|
||||
fin_loi_Umat
|
||||
|
||||
|
||||
masse_volumique
|
||||
E_tout 8.7e-9
|
||||
|
||||
|
||||
charges
|
||||
|
||||
|
||||
blocages
|
||||
|
||||
#traction uniaxiale suivant X par deplacement impose
|
||||
N_droit UX
|
||||
N_arriere UY
|
||||
N_bas UZ
|
||||
N_gauche 'UX= 0.01'
|
||||
|
||||
|
||||
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_
|
|
@ -0,0 +1,52 @@
|
|||
#!/usr/bin/env perl
|
||||
use strict;
|
||||
use warnings;
|
||||
use English;
|
||||
use File::Basename;
|
||||
use Cwd;
|
||||
my $NOM_PROG = basename $PROGRAM_NAME;
|
||||
|
||||
#
|
||||
#
|
||||
# le but de ce script est de tuer (kill -9) le processus Herezh Umat_Hz.info
|
||||
# remarque : l executable Herezh a ete lance par le script LOI_VIA_UMAT_1.pretrait1 via
|
||||
# un lien symoblique dont le nom le rend facilement reperable pour faire un kill du processus
|
||||
#
|
||||
#
|
||||
#
|
||||
|
||||
|
||||
#chemin absolu vers l executable Herezh
|
||||
my $hzchemin = shift(@ARGV);
|
||||
|
||||
#nom du fichier .info
|
||||
my $finfo = shift(@ARGV);
|
||||
|
||||
#nom du fichier .log
|
||||
my $flog = shift(@ARGV);
|
||||
|
||||
|
||||
|
||||
#lien symbolique qui a ete utilise pour lancer le processus Herezh UMAT dans le script LOI_VIA_UMAT_1.pretrait1
|
||||
# (voir script LOI_VIA_UMAT_1.pretrait1)
|
||||
my $lien_symbolique_HZ = basename $hzchemin;
|
||||
$_ = basename cwd;
|
||||
$lien_symbolique_HZ = $_.'_'.$lien_symbolique_HZ;
|
||||
|
||||
|
||||
#recuperation du processus Herezh UMAT (par reconnaissance de la chaine $lien_symbolique_HZ)
|
||||
my @processus = qx(ps -U $ENV{USER} -o pid,%cpu,command | grep $lien_symbolique_HZ | grep -v grep);
|
||||
|
||||
|
||||
#si ce processus tourne encore, on le kill
|
||||
if($#processus != -1) {
|
||||
foreach my $processus (@processus) {
|
||||
next if(not $processus =~ /^\s*(\d+)/);
|
||||
my $pid = $1;
|
||||
kill("KILL", $pid);
|
||||
print "Attention (prog:$NOM_PROG) : le processus Herezh Umat_HZ.info tournait encore (suppression par kill -9)...\n\n";
|
||||
}
|
||||
}
|
||||
|
||||
#reussite du script
|
||||
print "resultat posttrait : OK\n";
|
|
@ -0,0 +1,102 @@
|
|||
#!/usr/bin/env perl
|
||||
use strict;
|
||||
use warnings;
|
||||
use English;
|
||||
use File::Basename;
|
||||
use Cwd;
|
||||
my $NOM_PROG = basename $PROGRAM_NAME;
|
||||
|
||||
#
|
||||
#
|
||||
# les buts de ce script sont :
|
||||
# 1- creer les pipes nommes pour le dialogue Herezh-Herezh (mkfifo)
|
||||
# 2- lancer le processus Herezh Umat_HZ.info (qui sert d UMAT pour le vrai calcul Herezh de ce test LOI_VIA_UMAT_1.info)
|
||||
# 3- s assurer que le processus Umat_HZ.info fonctionne avant de quitter
|
||||
#
|
||||
# remarque1 : on lance le processus Herezh Umat_HZ.info via le lien symbolique $lien_symbolique_HZ
|
||||
# dont le nom sera facile a reperer pour le script de post-traitement LOI_VIA_UMAT_1.posttrait1
|
||||
# (car le script LOI_VIA_UMAT_1.posttrait1 aura pour but de tuer ce processus apres le calcul LOI_VIA_UMAT_1.info)
|
||||
#
|
||||
# remarque2 : le processus Herezh Umat_HZ.info est lance dans un processus fils (fork) pour pouvoir le laisser
|
||||
# tourner en fond de tache et quitter ce script
|
||||
#
|
||||
|
||||
|
||||
#chemin absolu vers l executable Herezh
|
||||
my $hzchemin = shift(@ARGV);
|
||||
|
||||
#nom du fichier .info
|
||||
my $finfo = shift(@ARGV);
|
||||
|
||||
|
||||
|
||||
#forcer a vider le buffer (autoflush)
|
||||
$| = 1;
|
||||
|
||||
|
||||
|
||||
#creation des pipes nommes (mkfifo)
|
||||
system("mkfifo -m+wr Umat_envoi_Hz");
|
||||
if($!) {
|
||||
print "\nErreur (prog:$NOM_PROG) : probleme dans la creation du pipe nomme Umat_envoi_Hz ($!)...\n\n";
|
||||
print "resultat pretrait : ECHEC\n";
|
||||
exit;
|
||||
}
|
||||
system("mkfifo -m+wr Umat_reception_Hz");
|
||||
if($!) {
|
||||
print "\nErreur (prog:$NOM_PROG) : probleme dans la creation du pipe nomme Umat_reception_Hz ($!)...\n\n";
|
||||
print "resultat pretrait : ECHEC\n";
|
||||
exit;
|
||||
}
|
||||
|
||||
|
||||
#changement d extension (suppression de l extension .a_renommer pour faire de ce fichier un .info exploitable)
|
||||
system("mv -f Umat_HZ.info.a_renommer Umat_HZ.info");
|
||||
|
||||
|
||||
#lien symbolique vers Herezh pour rendre le nom de cette commande unique
|
||||
my $lien_symbolique_HZ = basename $hzchemin;
|
||||
$_ = basename cwd;
|
||||
$lien_symbolique_HZ = $_.'_'.$lien_symbolique_HZ;
|
||||
system("ln -s $hzchemin $lien_symbolique_HZ");
|
||||
|
||||
|
||||
#lancement du processus Herezh Umat dans un processus fils (fork)
|
||||
system("rm -f $lien_symbolique_HZ.com");
|
||||
my $pid_UMAT_HZ = fork();
|
||||
#
|
||||
#le bloc suivant ne concerne que le processus fils
|
||||
if($pid_UMAT_HZ == 0) {
|
||||
system("$lien_symbolique_HZ -f Umat_HZ.info");
|
||||
system("echo 1 > $lien_symbolique_HZ.com");
|
||||
exit;
|
||||
}
|
||||
|
||||
|
||||
#apres un temps de pause, on regarde si le processus Herezh tourne
|
||||
select(undef, undef, undef, 0.5);
|
||||
my $cpt_probleme = 0;
|
||||
while(join('', qx(ps | grep $lien_symbolique_HZ | grep -v grep)) eq '') {
|
||||
select(undef, undef, undef, 0.5);
|
||||
$cpt_probleme++;
|
||||
if($cpt_probleme == 50) {
|
||||
print "\nErreur (prog:$NOM_PROG) : le processus Herezh Umat_HZ.info ne se lance pas (ou alors s est arrete prematurement)...\n\n";
|
||||
print "resultat pretrait : ECHEC\n";
|
||||
exit;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
#apres un nouveau temps de pause, on regarde si le fichier $lien_symbolique_HZ.com a ete cree
|
||||
# si oui, ca veut dire que le processus Herezh Umat s est arrete => donc il y a un probleme
|
||||
select(undef, undef, undef, 0.5);
|
||||
if(-e "$lien_symbolique_HZ.com") {
|
||||
print "\nErreur (prog:$NOM_PROG) : le processus Herezh Umat_HZ.info s est peut-etre arrete prematurement...\n\n";
|
||||
print "resultat pretrait : ECHEC\n";
|
||||
exit;
|
||||
}
|
||||
|
||||
|
||||
|
||||
#reussite du script
|
||||
print "resultat pretrait : OK\n";
|
|
@ -0,0 +1,78 @@
|
|||
#fichier au format maple6
|
||||
###############################################################################################
|
||||
# Visualisation elements finis : Herezh++ V6.743 #
|
||||
# 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 --------------------------------
|
||||
#0 0 (nombre de noeuds, nombre total de grandeurs associees)
|
||||
#---------------------------------- grandeurs aux elements ------------------------------
|
||||
#1 4 00 (nombre total d'elements, nombre totale de grandeurs associees, nombre de grandeurs particulieres, nombre de grandeurs tensorielles)
|
||||
# element_1 pt_integ_1: [2]X [3]Y [4]Z [5] EPS11 [6] EPS22 [7] EPS33 [8] SIG11
|
||||
#
|
||||
#
|
||||
#====================================================================
|
||||
#|| 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 2.134381140592e-01 7.863507681450e-01 7.863507681450e-01 9.851975296539e-03 -2.960258742077e-03 -2.960258742078e-03 2.067784167480e+03
|
|
@ -0,0 +1,52 @@
|
|||
------------------------------------------------------
|
||||
Auteur
|
||||
------------------------------------------------------
|
||||
Julien Troufflard (troufflard@univ-ubs.fr)
|
||||
|
||||
------------------------------------------------------
|
||||
Mots-cles
|
||||
------------------------------------------------------
|
||||
cube unitaire
|
||||
traction uniaxiale
|
||||
statique
|
||||
non_dynamique
|
||||
LOI_VIA_UMAT
|
||||
|
||||
------------------------------------------------------
|
||||
But du test
|
||||
------------------------------------------------------
|
||||
test simple d une loi de comportement externe LOI_VIA_UMAT dans le cas
|
||||
d un dialogue Herezh-Herezh :
|
||||
""
|
||||
MAT_UMAT LOI_VIA_UMAT
|
||||
nom_de_la_loi= acier categorie= CAT_MECANIQUE dim_loi= 3
|
||||
fin_loi_Umat
|
||||
""
|
||||
|
||||
------------------------------------------------------
|
||||
Description du calcul
|
||||
------------------------------------------------------
|
||||
mise en donnees identique au test :
|
||||
Batterie/FONCTION_UNIQUE/TYPE_DE_CALCUL/Test_R_non_dynamique
|
||||
c est-a-dire :
|
||||
traction uniaxiale suivant X sur un cube 1x1x1 (1 element HEXAEDRE LINEAIRE)
|
||||
- loi elastique ISOELAS
|
||||
|
||||
La difference est que la loi ISOELAS est obtenue par un dialogue Herezh-Herezh sous la forme d une loi externe
|
||||
|
||||
|
||||
-------------------------------------------------------
|
||||
Informations sur les fichiers facultatifs
|
||||
-------------------------------------------------------
|
||||
le script LOI_VIA_UMAT_1.pretrait1 lance le calcul Umat_Hz.info (loi externe) et le script
|
||||
LOI_VIA_UMAT_1.posttrait1 se charge de tuer ce processus avant de finir le test (car ce
|
||||
processus ne s arrete pas tout seul).
|
||||
|
||||
|
||||
|
||||
-------------------------------------------------------
|
||||
Grandeurs de comparaison
|
||||
-------------------------------------------------------
|
||||
pour le point d integration 1 de l element 1 :
|
||||
- deformations : EPS11 EPS22 EPS33
|
||||
- contrainte : SIG11
|
|
@ -0,0 +1,45 @@
|
|||
#
|
||||
# l extension .a_renommer sera supprimee
|
||||
# pour faire de ce fichier un .info
|
||||
# (pour eviter d avoir 2 fichiers .info
|
||||
# au debut de ce test, car ce n est pas
|
||||
# autorise)
|
||||
#
|
||||
#
|
||||
|
||||
dimension 3
|
||||
|
||||
niveau_commentaire 4
|
||||
|
||||
TYPE_DE_CALCUL
|
||||
umat_abaqus
|
||||
|
||||
noeuds
|
||||
0 NOEUDS
|
||||
|
||||
elements
|
||||
1 ELEMENTS
|
||||
|
||||
1 POINT CONSTANT
|
||||
|
||||
choix_materiaux
|
||||
E_tout acier
|
||||
|
||||
materiaux
|
||||
acier ISOELAS
|
||||
210000. 0.3
|
||||
|
||||
masse_volumique
|
||||
E_tout 8.7e-9
|
||||
|
||||
charges
|
||||
|
||||
blocages
|
||||
|
||||
controle
|
||||
SAUVEGARDE 1
|
||||
|
||||
resultats pas_de_sortie_finale_
|
||||
COPIE 0
|
||||
|
||||
_fin_point_info_
|
|
@ -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
|
|
@ -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
|
|
@ -248,7 +248,7 @@ Exemples d'options :
|
|||
|
||||
L'utilisateur peut souhaiter stopper la batterie en cours. La commande usuelle d'interruption d'un processus UNIX/Linux est \verb|ctrl+c|.
|
||||
|
||||
{\color{greenOK} Le script \verb|verifier_exeHZ.pl| gère une interruption propre de la batterie en cours par \verb|ctrl+c|.}
|
||||
{\color{greenOK} Le script \verb|verifier_exeHZ.pl| gère proprement une interruption de la batterie en cours par \verb|ctrl+c|.}
|
||||
|
||||
{\color{red} Le script \verb|verifier_exeHZ.zsh| ne gère pas correctement l'interruption \verb|ctrl+c| et il y a un risque d'avoir des fichiers et répertoires non effacés ou modifiés. Par sécurité, il est demandé de NE JAMAIS ACTUALISER le projet (cvs commit) après une interruption ctrl+c du script \verb|verifier_exeHZ.zsh|.}
|
||||
|
||||
|
@ -366,7 +366,8 @@ Les fichiers facultatifs en lien avec l'ex
|
|||
\item[$\bullet$] les fichiers de précision (fichiers d'extension \verb|.precision|[i])
|
||||
\item[$\bullet$] les fichiers de commandes interactives (fichiers d'extension \verb|.commande|[i])
|
||||
\item[$\bullet$] les scripts de vérification libre (fichiers exécutables d'extension \verb|.verif|[i])
|
||||
\item[$\bullet$] les fichiers donnant les arguments à l'exécutable Herezh++ (fichiers~d'extension~\verb|.argument|[i])\\
|
||||
\item[$\bullet$] les fichiers donnant les arguments à l'exécutable Herezh++ (fichiers~d'extension~\verb|.argument|[i])
|
||||
\item[$\bullet$] les scripts de pré et post traitement (respectivement les fichiers d'extension \verb|.pretrait|[i] et \verb|.posttrait|[i])\\
|
||||
\end{itemize}
|
||||
|
||||
D'autres fichiers facultatifs peuvent \^etre contenus dans un répertoire de test. Il n'y a pas de restriction mis à part qu'un répertoire de test ne doit pas contenir des fichiers trop lourds en terme d'espace disque. Typiquement, il peut \^etre utile d'ajouter les fichiers suivants :
|
||||
|
@ -488,6 +489,8 @@ Les fichiers facultatifs d
|
|||
child { node[draw, anchor=west] {(*) nom\_calcul{\color{blue}.commande}{\color{red}1}}}
|
||||
child { node[draw, anchor=west] {(*) nom\_calcul{\color{blue}.verif}{\color{red}1}}}
|
||||
child { node[draw, anchor=west] {(*) nom\_calcul{\color{blue}.argument}{\color{red}1}}}
|
||||
child { node[draw, anchor=west] {(*) nom\_calcul{\color{blue}.pretrait}{\color{red}1}}}
|
||||
child { node[draw, anchor=west] {(*) nom\_calcul{\color{blue}.posttrait}{\color{red}1}}}
|
||||
child[missing] { }
|
||||
child { node[draw, anchor=west] {nom\_calcul{\color{blue}.CVisu}{\color{red}2}}}
|
||||
child { node[draw, anchor=west] {(*) nom\_calcul{\color{blue}.maple.ref}{\color{red}2}}}
|
||||
|
@ -495,6 +498,19 @@ Les fichiers facultatifs d
|
|||
child { node[draw, anchor=west] {(*) nom\_calcul{\color{blue}.commande}{\color{red}2}}}
|
||||
child { node[draw, anchor=west] {(*) nom\_calcul{\color{blue}.verif}{\color{red}2}}}
|
||||
child { node[draw, anchor=west] {(*) nom\_calcul{\color{blue}.argument}{\color{red}2}}}
|
||||
child { node[draw, anchor=west] {(*) nom\_calcul{\color{blue}.pretrait}{\color{red}2}}}
|
||||
child { node[draw, anchor=west] {(*) nom\_calcul{\color{blue}.posttrait}{\color{red}2}}}
|
||||
child { node[anchor=west] {.}}
|
||||
child { node[anchor=west] {.}}
|
||||
child { node[anchor=west] {.}};
|
||||
\end{tikzpicture}
|
||||
\hspace*{0.8cm}
|
||||
\begin{tikzpicture}[%
|
||||
grow via three points={one child at (0.5,-0.7) and
|
||||
two children at (0.5,-0.7) and (0.5,-1.5)},
|
||||
edge from parent path={(\tikzparentnode.south) |- (\tikzchildnode.west)}]
|
||||
\node[] {}
|
||||
child { node[anchor=west] {.}}
|
||||
child { node[anchor=west] {.}}
|
||||
child { node[anchor=west] {.}}
|
||||
child { node[draw, anchor=west] {nom\_calcul{\color{blue}.CVisu}{\color{red}N}}}
|
||||
|
@ -503,10 +519,14 @@ Les fichiers facultatifs d
|
|||
child { node[draw, anchor=west] {(*) nom\_calcul{\color{blue}.commande}{\color{red}N}}}
|
||||
child { node[draw, anchor=west] {(*) nom\_calcul{\color{blue}.verif}{\color{red}N}}}
|
||||
child { node[draw, anchor=west] {(*) nom\_calcul{\color{blue}.argument}{\color{red}N}}}
|
||||
child { node[draw, anchor=west] {(*) nom\_calcul{\color{blue}.pretrait}{\color{red}N}}}
|
||||
child { node[draw, anchor=west] {(*) nom\_calcul{\color{blue}.posttrait}{\color{red}N}}}
|
||||
child[missing] { }
|
||||
child { node[draw, anchor=west] {(*) autres fichiers facultatifs}};
|
||||
|
||||
\end{tikzpicture}\\
|
||||
\hspace*{-5.cm}\small (*) fichiers facultatifs\normalsize
|
||||
\vspace*{0.5cm}
|
||||
\hfill\small (*) fichiers facultatifs\normalsize
|
||||
\caption{Contenu d'un répertoire de test}
|
||||
\label{arbo_repertoire_test}
|
||||
\end{figure}
|
||||
|
@ -709,9 +729,7 @@ Il est important de noter que cet ex
|
|||
\end{minipage}
|
||||
\noindent\rule{0.8\textwidth}{0.5pt}\\
|
||||
|
||||
Cet exécutable peut \^etre programmé dans n'importe quel langage, mais pour éviter les problèmes de compilateur, il est préférable d'éviter les langages nécessitant une compilation (par exemple : C, C++, Fortran, etc...). Il est préférables d'utiliser les langages interprétés (par exemple : sh, zsh, Perl, Python, etc...). Pour augmenter la portabilité de ces scripts, il faut éviter de mettre un chemin absolu vers l'interpréteur dans l'en-t\^ete. On utilisera la forme : \verb|#!/usr/bin/env| suivi du nom de l'interpréteur (exemples : \verb|#!/usr/bin/env perl| ou bien \verb|#!/usr/bin/env python|).\\
|
||||
|
||||
\underline{Remarque} : le script \verb|.verif| étant lancé après le calcul, il peut tout à fait servir de moyen détourné pour modifier le fichier \verb|.info| avant le calcul suivant (par exemple, pour tester un m\^eme mot-clé mais avec diverses valeurs de paramètres). Voir exemple section \ref{section_exemple_test_5}.
|
||||
Cet exécutable peut \^etre programmé dans n'importe quel langage, mais pour éviter les problèmes de compilateur, il est préférable d'éviter les langages nécessitant une compilation (par exemple : C, C++, Fortran, etc...). Il est préférables d'utiliser les langages interprétés (par exemple : sh, zsh, Perl, Python, etc...). Pour augmenter la portabilité de ces scripts, il faut éviter de mettre un chemin absolu vers l'interpréteur dans l'en-t\^ete. On utilisera la forme : \verb|#!/usr/bin/env| suivi du nom de l'interpréteur (exemples : \verb|#!/usr/bin/env perl| ou bien \verb|#!/usr/bin/env python|).
|
||||
|
||||
\end{itemize}
|
||||
|
||||
|
@ -734,7 +752,52 @@ HZppfast ligne_1 ligne_2 ... ligne_N | tee nom_calcul.log
|
|||
\item[] Ce fichier est utile pour la comparaison de données au format maple. Le nombre de colonnes de ce fichier doit \^etre en accord avec le fichier \verb|.maple| produit par la lecture du \verb|.CVisu| associé. Il peut contenir un nombre quelconque de lignes de données mais seule la dernière sera utilisée pour la comparaison de \verb|.maple| explicitée à la section \ref{subsubsection_verification}.
|
||||
\end{itemize}
|
||||
|
||||
%%
|
||||
\subsubsection*{$\bullet$ \texttt{.pretrait} :}
|
||||
\begin{itemize}
|
||||
\item[] Le but de ce fichier est d'effectuer des traitements juste \bf avant \rm le calcul. Ce fichier doit \^etre un exécutable programmé dans un langage quelconque mais le mieux est de suivre les m\^emes recommandations que pour le fichier \verb|.verif|. Le script \verb|.pretrait| fournit un indicateur de réussite ou d'échec. Il doit donc afficher la ligne suivante :\\
|
||||
\hspace*{2cm}\begin{minipage}{\textwidth}
|
||||
\begin{verbatim}
|
||||
|
||||
resultat pretrait : OK (ou ECHEC)
|
||||
|
||||
\end{verbatim}
|
||||
\end{minipage}
|
||||
|
||||
Ce script reçoit 2 arguments :\\
|
||||
\noindent\rule{0.8\textwidth}{0.5pt}\\
|
||||
\hspace*{2cm}\begin{minipage}{0.6\textwidth}
|
||||
\begin{itemize}
|
||||
\item[- argument 1 :] nom de l'exécutable Herezh++ (en chemin absolu)
|
||||
\item[- argument 2 :] nom du fichier \verb|.info|
|
||||
\end{itemize}
|
||||
\end{minipage}
|
||||
\noindent\rule{0.8\textwidth}{0.5pt}\\
|
||||
\end{itemize}
|
||||
|
||||
%%
|
||||
\subsubsection*{$\bullet$ \texttt{.posttrait} :}
|
||||
\begin{itemize}
|
||||
\item[] Le but de ce fichier est d'effectuer des traitements juste \bf après \rm le calcul. Il suit la m\^eme logique que le fichier \verb|.pretrait| avec 3 différences : 1) le message de réussite/échec n'a pas la m\^eme syntaxe, 2) il reçoit 3 arguments, 3) il est exécuté après le calcul Herezh++. Ce fichier doit \^etre un exécutable programmé dans un langage quelconque mais le mieux est de suivre les m\^emes recommandations que pour le fichier \verb|.verif|. Le script \verb|.posttrait| fournit un indicateur de réussite ou d'échec. Il doit donc afficher la ligne suivante :\\
|
||||
\hspace*{2cm}\begin{minipage}{\textwidth}
|
||||
\begin{verbatim}
|
||||
|
||||
resultat posttrait : OK (ou ECHEC)
|
||||
|
||||
\end{verbatim}
|
||||
\end{minipage}
|
||||
|
||||
Ce script reçoit 3 arguments :\\
|
||||
\noindent\rule{0.8\textwidth}{0.5pt}\\
|
||||
\hspace*{2cm}\begin{minipage}{0.6\textwidth}
|
||||
\begin{itemize}
|
||||
\item[- argument 1 :] nom de l'exécutable Herezh++ (en chemin absolu)
|
||||
\item[- argument 2 :] nom du fichier \verb|.info|
|
||||
\item[- argument 3 :] nom du fichier de redirection de l'affichage du calcul Herezh++ (fichier \verb|.log|)
|
||||
\end{itemize}
|
||||
\end{minipage}
|
||||
\noindent\rule{0.8\textwidth}{0.5pt}\\
|
||||
\end{itemize}
|
||||
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
\subsection{Exemples de tests}\label{section_exemples_tests}
|
||||
|
@ -793,9 +856,19 @@ Actuellement, il n'y a pas d'exemple dans le r
|
|||
\end{minipage}
|
||||
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
\subsubsection{Exemple avancé sur l'utilisation d'un \texttt{.verif} pour un test multiparamètres}\label{section_exemple_test_5}
|
||||
**** en cours d'écriture ***
|
||||
\subsubsection{Exemple complexe effectuant des pré-traitements et des post-traitements}\label{section_exemple_test_5}
|
||||
|
||||
Il est parfois utile d'exécuter des actions avant et/ou après le calcul Herezh++. Les fichiers \verb|.pretrait| et \verb|.posttrait| sont là dans ce but. La séquence sera :
|
||||
\begin{itemize}
|
||||
\item[1)] lancement du script \verb|.pretrait| (+ vérification de la réussite de ce script)
|
||||
\item[2)] lancement du calcul Herezh
|
||||
\item[3)] lancement du script \verb|.posttrait| (+ vérification de la réussite de ce script)
|
||||
\item[4)] Vérification du calcul par les moyens habituels (comparaison \verb|.maple.ref|, script \verb|.verif|, pas de vérification, etc...)\\
|
||||
\end{itemize}
|
||||
|
||||
Le script \verb|.pretrait| peut par exemple servir à modifier des paramètres dans le fichier \verb|.info| avant le calcul. Mais on peut aussi imaginer d'autres situations plus complexes.
|
||||
|
||||
Par exemple le test \verb|Batterie/FONCTION_UNIQUE/LOI_DE_COMP|ORTE\-\verb|MENT/Test_R_LOI_VIA_UMAT_1| est un test nécessitant un pré et un post-traitement pour réaliser un dialogue entre 2 processus Herezh++. La vérification est une comparaison classique de résultats \verb|.maple|. Cet exemple très particulier montre que l'on peut lancer un autre calcul Herezh++ dans un script \verb|.pretrait| ou \verb|.posttrait| (attention : il faut s'assurer que ce processus ne tournera plus après la fin du test).
|
||||
|
||||
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
|
@ -979,7 +1052,7 @@ remarque : modif
|
|||
\item[$\bullet$] 2016-03-11 (Julien Troufflard) :
|
||||
\begin{itemize}
|
||||
\item[-] modif des scripts \verb|verifier_exeHZ.pl| et \verb|Perl/test.pl| dans le but de permettre un arr\^et Ctrl-c propre en cours de batterie :\\
|
||||
pour ces 2 scripts, une gestion des signaux d'interruption \verb|INT| et \verb|TERM| a été introduite (subroutine \verb|arret_force()| et un fichier (texte) temporaire est utilisé pour permettre un dialogue entre les 2 processus (fichier de nom \verb|//tmp/verifier_exeHZ_2_test_$PID.com/| où \verb|$PID| est le pid du processus \verb|verifier_exeHZ.pl|). Un nouveau status de test existe désormais dans le rapport de test : \verb|ECHEC : ***INTERRUPTION PAR L UTILISATEUR***|. A noter que le rapport de test est tout de m\^eme généré en bonne et due forme pour les tests déjà terminés avant Ctrl-c (mais le rapport n'est pas automatiquement affiché).
|
||||
pour ces 2 scripts, une gestion des signaux d'interruption \verb|INT| et \verb|TERM| a été introduite (subroutine \verb|arret_force()| et un fichier (texte) temporaire est utilisé pour permettre un dialogue entre les 2 processus (fichier de nom \verb|//tmp/verifier_exeHZ_2_test_$PID.com/| où \verb|$PID| est le pid du processus \verb|verifier_exeHZ.pl|). Un nouveau status de test existe désormais dans le rapport de test : \verb|ECHEC : ***INTERRUPTION PAR L UTILISATEUR***|. A noter que le rapport de test est tout de m\^eme généré en bonne et due forme pour les tests déjà terminés avant Ctrl-c (mais le rapport n'est pas automatiquement affiché). A noter également que, étant données les modifs de \verb|Perl/test.pl|, l'interruption \verb|ctrl+c| n'est pas trop mal avec la version \verb|zsh| \verb|verifier_exeHZ.zsh| mais c'est tout de m\^eme moins bien ma\^itrisé (à éviter).
|
||||
\item[-] la section \ref{section_lancement_batterie_tests} de ce document a été divisé en 2 sous-sections. Une section est dédiée à la procédure d'interruption \verb|ctrl+c| (pour expliquer mais aussi pour pointer du doigt le fait qu'une interruption volontaire n'est pas toujours une opération sans conséquences).
|
||||
\end{itemize}%tiret
|
||||
|
||||
|
|
132
Perl/test.pl
132
Perl/test.pl
|
@ -399,13 +399,16 @@ BOUCLE_TEST:for(my $no_test=1; $no_test<=$nb_CVisu; $no_test++) {
|
|||
# - fichier de precision .precision
|
||||
# - script de verification .verif
|
||||
# - fichier d arguments .argument
|
||||
# - fichier pre-traitement .pretrait
|
||||
# - fichier post-traitement .posttrait
|
||||
#----------------------------------------------------------------------------------------------------
|
||||
#####################################################################################################
|
||||
my $fic_commande = ""; $fic_commande = "$fichier_test.commande$no_test" if(-e "$fichier_test.commande$no_test");
|
||||
my $fic_precision = ""; $fic_precision = "$fichier_test.precision$no_test" if(-e "$fichier_test.precision$no_test");
|
||||
my $script_verif = ""; $script_verif = "$fichier_test.verif$no_test" if(-e "$fichier_test.verif$no_test");
|
||||
my $fic_argument = ""; $fic_argument = "$fichier_test.argument$no_test" if(-e "$fichier_test.argument$no_test");
|
||||
|
||||
my $script_pretrait = ""; $script_pretrait = "$fichier_test.pretrait$no_test" if(-e "$fichier_test.pretrait$no_test");
|
||||
my $script_posttrait = ""; $script_posttrait = "$fichier_test.posttrait$no_test" if(-e "$fichier_test.posttrait$no_test");
|
||||
|
||||
|
||||
|
||||
|
@ -517,6 +520,45 @@ BOUCLE_TEST:for(my $no_test=1; $no_test<=$nb_CVisu; $no_test++) {
|
|||
|
||||
|
||||
|
||||
#####################################################################################################
|
||||
#----------------------------------------------------------------------------------------------------
|
||||
# EVENTUEL PRE-TRAITEMENT (si presence du fichier $script_pretrait)
|
||||
#----------------------------------------------------------------------------------------------------
|
||||
#####################################################################################################
|
||||
if(-e $script_pretrait) {
|
||||
#verification des droits du script (doit etre executable. si il n est pas executable, on le rend executable)
|
||||
system("chmod +x $script_pretrait") if(not -x $script_pretrait);
|
||||
|
||||
#lancement du script : - 1er argument = chemin absolu vers l executable Herezh
|
||||
# - 2eme argument = nom du fichier .info
|
||||
system("$script_pretrait $hzchemin $fichier_test.info > $script_pretrait.log");
|
||||
|
||||
#affichage du contenu du fichier de redirection
|
||||
system("cat $script_pretrait.log");
|
||||
|
||||
#verification du pretraitement (l indicateur de reussite/echec est : "resultat pretrait : OK (ou ECHEC)" )
|
||||
my $resultat_pretrait = '';
|
||||
open(FIC, "<$script_pretrait.log");
|
||||
while(<FIC>) {
|
||||
if(/^\s*resultat\s+pretrait\s*:\s*OK/) {
|
||||
$resultat_pretrait = 'OK';
|
||||
}
|
||||
elsif(/^\s*resultat\s+pretrait\s*:\s*ECHEC/) {
|
||||
printRapport(" -> ECHEC : probleme dans l execution du script de pre-traitement (script : $script_pretrait)\n\n");
|
||||
print "**Erreur Test $repertoire_test/.CVisu$no_test : probleme dans l execution du script de pre-traitement (script : $script_pretrait)\n\n";
|
||||
last BOUCLE_TEST;
|
||||
}
|
||||
}
|
||||
close(FIC);
|
||||
|
||||
($resultat_pretrait eq 'OK') or do {
|
||||
printRapport(" -> ECHEC : le script de pre-traitement ($script_pretrait) n a pas affiche d indicateur de reussite\n\n");
|
||||
print "**Erreur Test $repertoire_test/.CVisu$no_test : le script de pre-traitement ($script_pretrait) n a pas affiche d indicateur de reussite\n\n";
|
||||
last BOUCLE_TEST;
|
||||
};
|
||||
}#if(-e $script_pretrait)
|
||||
|
||||
|
||||
|
||||
#####################################################################################################
|
||||
#----------------------------------------------------------------------------------------------------
|
||||
|
@ -541,6 +583,48 @@ BOUCLE_TEST:for(my $no_test=1; $no_test<=$nb_CVisu; $no_test++) {
|
|||
# - si le calcul ne s arretait pas alors qu il avait une activite cpu nulle => $status_calcul = "activite cpu nulle"
|
||||
|
||||
|
||||
|
||||
#####################################################################################################
|
||||
#----------------------------------------------------------------------------------------------------
|
||||
# EVENTUEL POST-TRAITEMENT (si presence du fichier $script_posttrait)
|
||||
#----------------------------------------------------------------------------------------------------
|
||||
#####################################################################################################
|
||||
if(-e $script_posttrait) {
|
||||
#verification des droits du script (doit etre executable. si il n est pas executable, on le rend executable)
|
||||
system("chmod +x $script_posttrait") if(not -x $script_posttrait);
|
||||
|
||||
#lancement du script : - 1er argument = chemin absolu vers l executable Herezh
|
||||
# - 2eme argument = nom du fichier .info
|
||||
# - 3eme argument = nom du fichier de redirection du calcul
|
||||
system("$script_posttrait $hzchemin $fichier_test.info $fichier_test.log | tee $script_posttrait.log");
|
||||
|
||||
#affichage du contenu du fichier de redirection
|
||||
system("cat $script_posttrait.log");
|
||||
|
||||
|
||||
#verification du post-traitement (l indicateur de reussite/echec est : "resultat posttrait : OK (ou ECHEC)" )
|
||||
my $resultat_posttrait = '';
|
||||
open(FIC, "<$script_posttrait.log");
|
||||
while(<FIC>) {
|
||||
if(/^\s*resultat\s+posttrait\s*:\s*OK/) {
|
||||
$resultat_posttrait = 'OK';
|
||||
}
|
||||
elsif(/^\s*resultat\s+posttrait\s*:\s*ECHEC/) {
|
||||
printRapport(" -> ECHEC : probleme dans l execution du script de post-traitement (script : $script_posttrait)\n\n");
|
||||
print "**Erreur Test $repertoire_test/.CVisu$no_test : probleme dans l execution du script de post-traitement (script : $script_posttrait)\n\n";
|
||||
last BOUCLE_TEST;
|
||||
}
|
||||
}
|
||||
close(FIC);
|
||||
|
||||
($resultat_posttrait eq 'OK') or do {
|
||||
printRapport(" -> ECHEC : le script de post-traitement ($script_posttrait) n a pas affiche d indicateur de reussite\n\n");
|
||||
print "**Erreur Test $repertoire_test/.CVisu$no_test : le script de post-traitement ($script_posttrait) n a pas affiche d indicateur de reussite\n\n";
|
||||
last BOUCLE_TEST;
|
||||
};
|
||||
}#if(-e $script_posttrait)
|
||||
|
||||
|
||||
#####################################################################################################
|
||||
#----------------------------------------------------------------------------------------------------
|
||||
# SAISIE DU TEMPS CPU DANS LE FICHIER .log
|
||||
|
@ -1118,7 +1202,7 @@ sub lancement_commande {
|
|||
#on genere une erreur si la commande ne s est toujours pas lancee apres 2000 fois 1 milliseconde = 2 secondes
|
||||
if($cpt_attente_lancement_commande == 2000) {
|
||||
#suppression des processus de calcul
|
||||
kill("TERM", @HZpid);
|
||||
kill("KILL", @HZpid);
|
||||
#suppression lien symbolique
|
||||
system("rm -f $lien_symbolique_HZ");
|
||||
|
||||
|
@ -1133,7 +1217,7 @@ sub lancement_commande {
|
|||
#on genere une erreur si le fichier de redirection n a toujours pas ete cree apres 2000 fois 1 milliseconde = 2 secondes
|
||||
if($cpt_attente_creation_log == 2000) {
|
||||
#suppression des processus de calcul
|
||||
kill("TERM", @HZpid);
|
||||
kill("KILL", @HZpid);
|
||||
#suppression lien symbolique
|
||||
system("rm -f $lien_symbolique_HZ");
|
||||
|
||||
|
@ -1149,6 +1233,16 @@ sub lancement_commande {
|
|||
# 1) si la taille du fichier $fredir_tee depasse $TAILLE_MAX_FIC_REDIR octets
|
||||
# 2) si le calcul a une activite cpu nulle mais ne s arrete pas
|
||||
#
|
||||
# -----------------------------------
|
||||
# REMARQUE J. Troufflard 2016-03-21 :
|
||||
# -----------------------------------
|
||||
# | la variable @HZpid n est pas fiable pour tuer les processus. J ai remarque
|
||||
# | qu un nouveau processus apparaissait parfois suite au fork() ci-dessous => my $PID_SURVEILLANCE = fork();
|
||||
# | On recree donc la liste des processus a chaque tour de boucle pour
|
||||
# | etre sur de bien tuer tous les processus avec kill("KILL", ...)
|
||||
# | (variable : @process dans la boucle LOOP_SURVEILLANCE:while() )
|
||||
# --------------------------------------------------------------------------------------------------------------
|
||||
#
|
||||
|
||||
##############################################################
|
||||
# surveillance en continu dans un processus fils :
|
||||
|
@ -1174,11 +1268,21 @@ sub lancement_commande {
|
|||
select(undef, undef, undef, 0.5);
|
||||
|
||||
|
||||
#liste des processus sous le format "pid %cpu commande" dont la commande contient le mot $lien_symbolique_HZ et pas le mot grep
|
||||
my @process = qx(ps -U $ENV{USER} -o pid,%cpu,command | grep $lien_symbolique_HZ | grep -v grep);
|
||||
#liste des pid correspondants
|
||||
my @pid_process = ();
|
||||
foreach my $process (@process) {
|
||||
next if(not $process =~ /^\s*(\d+)/);
|
||||
push(@pid_process, $1);
|
||||
}
|
||||
|
||||
|
||||
##
|
||||
## CAS D UN ARRET FORCE (par exemple Ctrl-c)
|
||||
##
|
||||
if($ARRET_FORCE) {
|
||||
kill("TERM", @HZpid);
|
||||
kill("KILL", @pid_process);
|
||||
last;
|
||||
}
|
||||
|
||||
|
@ -1194,7 +1298,7 @@ sub lancement_commande {
|
|||
if($taille_fichier > $TAILLE_MAX_FIC_REDIR) {
|
||||
open(FCOM, ">$fic_com_taille_max");
|
||||
close(FCOM);
|
||||
kill("TERM", @HZpid);
|
||||
kill("KILL", @pid_process);
|
||||
last;
|
||||
}
|
||||
|
||||
|
@ -1202,21 +1306,19 @@ sub lancement_commande {
|
|||
##
|
||||
## SURVEILLANCE DE L ACTIVITE CPU
|
||||
##
|
||||
|
||||
#liste des processus sous le format "%cpu commande" dont la commande contient le mot $lien_symbolique_HZ et pas le mot grep
|
||||
my @process = qx(ps -U $ENV{USER} -o %cpu,command | grep $lien_symbolique_HZ | grep -v grep);
|
||||
|
||||
#on sort de la boucle si aucun processus ne tourne
|
||||
last if($#process == -1);
|
||||
|
||||
#liste des activites cpu
|
||||
my @activite_cpu = ();
|
||||
foreach my $process (@process) {
|
||||
next if(not $process =~ /^\s*\d/);
|
||||
$process =~ s/^\s+//;#suppression espaces en debut
|
||||
($process) = split(/\s+/, $process);#separation suivant les espaces et on ne garde que le premier element retourne par split
|
||||
$process =~ s/,/./;#remplacement d une eventuelle virgule par un . dans le nombre reel representant l activite cpu
|
||||
push(@activite_cpu, $process);
|
||||
my $tmp_process = $process;
|
||||
$tmp_process =~ s/^\s*\d+//;#suppresion pid en debut
|
||||
next if(not $tmp_process =~ /^\s*\d/);
|
||||
$tmp_process =~ s/^\s+//;#suppression espaces en debut
|
||||
($tmp_process) = split(/\s+/, $tmp_process);#separation suivant les espaces et on ne garde que le premier element retourne par split
|
||||
$tmp_process =~ s/,/./;#remplacement d une eventuelle virgule par un . dans le nombre reel representant l activite cpu
|
||||
push(@activite_cpu, $tmp_process);
|
||||
}
|
||||
|
||||
#si l un des processus a une activite non nulle, on en deduit que le calcul tourne encore => on remet a 0 le compteur $nb_fois_cpu_nul et on recommence la boucle
|
||||
|
@ -1234,7 +1336,7 @@ sub lancement_commande {
|
|||
if($nb_fois_cpu_nul == $nb_fois_cpu_nul_MAX) {
|
||||
open(FCOM, ">$fic_com_activite_cpu");
|
||||
close(FCOM);
|
||||
kill('TERM', @HZpid);
|
||||
kill('KILL', @pid_process);
|
||||
last;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,332 +1,15 @@
|
|||
---------------------------------------
|
||||
- RAPPORT DE TEST -
|
||||
---------------------------------------
|
||||
- version HZ++ : HZppfast 6.729
|
||||
- version HZ++ : HZppfast 6.743
|
||||
|
||||
- date : 27/11/2015
|
||||
- heure : 14:54 (heure locale)
|
||||
- date : 24/03/2016
|
||||
- heure : 14:31 (heure locale)
|
||||
- machine : hdom-1057.univ-ubs.fr
|
||||
---------------------------------------
|
||||
|
||||
|
||||
|
||||
./Batterie/FONCTION_UNIQUE/CONDITIONS_LIMITES/Test_R_cisaillement_CLL_periodique/.CVisu1
|
||||
-------------------------------------------------------
|
||||
| temps cpu : 00:00:01.359 (processeur : 97.8%)
|
||||
| temps systeme : 00:00:00.030 (processeur : 97.8%)
|
||||
| temps reel : 00:00:01.41
|
||||
-------------------------------------------------------
|
||||
|
||||
-> pour toutes les grandeurs testees : OK
|
||||
|
||||
|
||||
|
||||
./Batterie/FONCTION_UNIQUE/CONTACT/Test_R_contact_axi_non_dynamique/.CVisu1
|
||||
-------------------------------------------------------
|
||||
| temps cpu : 00:00:03.794 (processeur : 99.4%)
|
||||
| temps systeme : 00:00:00.041 (processeur : 99.4%)
|
||||
| temps reel : 00:00:03.85
|
||||
-------------------------------------------------------
|
||||
|
||||
-> pour toutes les grandeurs testees : OK
|
||||
|
||||
|
||||
|
||||
./Batterie/FONCTION_UNIQUE/LOI_DE_COMPORTEMENT/CP_venant_du_3D/Test_R_quadrangle_isohyper3dorgeas1_CP_traction/.CVisu1
|
||||
-------------------------------------------------------
|
||||
| temps cpu : 00:00:00.089 (processeur : 88.8%)
|
||||
| temps systeme : 00:00:00.007 (processeur : 88.8%)
|
||||
| temps reel : 00:00:00.09
|
||||
-------------------------------------------------------
|
||||
|
||||
-> pour toutes les grandeurs testees : OK
|
||||
|
||||
|
||||
|
||||
./Batterie/FONCTION_UNIQUE/LOI_DE_COMPORTEMENT/ISOHYPER3DFAVIER3/Test_R_cube_ISOHYPER3DFAVIER3_cisaillement/.CVisu1
|
||||
-------------------------------------------------------
|
||||
| temps cpu : 00:00:00.071 (processeur : 87.5%)
|
||||
| temps systeme : 00:00:00.007 (processeur : 87.5%)
|
||||
| temps reel : 00:00:00.08
|
||||
-------------------------------------------------------
|
||||
|
||||
-> pour toutes les grandeurs testees : OK
|
||||
|
||||
|
||||
|
||||
./Batterie/FONCTION_UNIQUE/LOI_DE_COMPORTEMENT/ISOHYPER3DFAVIER3/Test_R_cube_ISOHYPER3DFAVIER3_traction/.CVisu1
|
||||
-------------------------------------------------------
|
||||
| temps cpu : 00:00:00.101 (processeur : 90.9%)
|
||||
| temps systeme : 00:00:00.008 (processeur : 90.9%)
|
||||
| temps reel : 00:00:00.11
|
||||
-------------------------------------------------------
|
||||
|
||||
-> pour toutes les grandeurs testees : OK
|
||||
|
||||
|
||||
|
||||
./Batterie/FONCTION_UNIQUE/LOI_DE_COMPORTEMENT/MAXWELL3D/Test_R_cube_MAXWELL3D_traction_relaxation/.CVisu1
|
||||
-------------------------------------------------------
|
||||
| temps cpu : 00:00:00.755 (processeur : 97.4%)
|
||||
| temps systeme : 00:00:00.028 (processeur : 97.4%)
|
||||
| temps reel : 00:00:00.79
|
||||
-------------------------------------------------------
|
||||
|
||||
-> pour toutes les grandeurs testees : OK
|
||||
|
||||
|
||||
|
||||
./Batterie/FONCTION_UNIQUE/LOI_DE_COMPORTEMENT/MOONEY_RIVLIN_3D/Test_R_cube_MOONEY_RIVLIN_3D_cisaillement/.CVisu1
|
||||
-------------------------------------------------------
|
||||
| temps cpu : 00:00:00.063 (processeur : 85.7%)
|
||||
| temps systeme : 00:00:00.009 (processeur : 85.7%)
|
||||
| temps reel : 00:00:00.07
|
||||
-------------------------------------------------------
|
||||
|
||||
-> pour toutes les grandeurs testees : OK
|
||||
|
||||
|
||||
|
||||
./Batterie/FONCTION_UNIQUE/LOI_DE_COMPORTEMENT/MOONEY_RIVLIN_3D/Test_R_cube_MOONEY_RIVLIN_3D_traction/.CVisu1
|
||||
-------------------------------------------------------
|
||||
| temps cpu : 00:00:00.071 (processeur : 87.5%)
|
||||
| temps systeme : 00:00:00.007 (processeur : 87.5%)
|
||||
| temps reel : 00:00:00.08
|
||||
-------------------------------------------------------
|
||||
|
||||
-> pour toutes les grandeurs testees : OK
|
||||
|
||||
|
||||
|
||||
./Batterie/FONCTION_UNIQUE/LOI_DE_COMPORTEMENT/Orgeas/Test_R_cube_isohyperd3dorgeas1_traction/.CVisu1
|
||||
-------------------------------------------------------
|
||||
| temps cpu : 00:00:00.175 (processeur : 94.4%)
|
||||
| temps systeme : 00:00:00.007 (processeur : 94.4%)
|
||||
| temps reel : 00:00:00.18
|
||||
-------------------------------------------------------
|
||||
|
||||
-> pour toutes les grandeurs testees : OK
|
||||
|
||||
|
||||
|
||||
./Batterie/FONCTION_UNIQUE/LOI_DE_COMPORTEMENT/Test_R_barre_PRANDTL_REUSS1D_traction/.CVisu1
|
||||
-------------------------------------------------------
|
||||
| temps cpu : 00:00:00.009 (processeur : 0.0%)
|
||||
| temps systeme : 00:00:00.003 (processeur : 0.0%)
|
||||
| temps reel : 00:00:00.01
|
||||
-------------------------------------------------------
|
||||
|
||||
-> pour toutes les grandeurs testees : OK
|
||||
|
||||
|
||||
|
||||
./Batterie/FONCTION_UNIQUE/LOI_DE_COMPORTEMENT/Test_R_cube_ISOHYPERBULK3_compression_hydrostatique/.CVisu1
|
||||
-------------------------------------------------------
|
||||
| temps cpu : 00:00:00.073 (processeur : 100.0%)
|
||||
| temps systeme : 00:00:00.014 (processeur : 100.0%)
|
||||
| temps reel : 00:00:00.08
|
||||
-------------------------------------------------------
|
||||
|
||||
-> pour toutes les grandeurs testees : OK
|
||||
|
||||
|
||||
|
||||
./Batterie/FONCTION_UNIQUE/TYPE_CHARGEMENT/Force_ponctuelle/Test_R_1D_constant/.CVisu1
|
||||
-------------------------------------------------------
|
||||
| temps cpu : 00:00:00.007 (processeur : 0.0%)
|
||||
| temps systeme : 00:00:00.005 (processeur : 0.0%)
|
||||
| temps reel : 00:00:00.01
|
||||
-------------------------------------------------------
|
||||
|
||||
-> pour toutes les grandeurs testees : OK
|
||||
|
||||
|
||||
|
||||
./Batterie/FONCTION_UNIQUE/TYPE_DE_CALCUL/Test_R_chung_lee_dynamique_explicite/.CVisu1
|
||||
-------------------------------------------------------
|
||||
| temps cpu : 00:00:02.292 (processeur : 92.8%)
|
||||
| temps systeme : 00:00:00.069 (processeur : 92.8%)
|
||||
| temps reel : 00:00:02.53
|
||||
-------------------------------------------------------
|
||||
|
||||
-> pour toutes les grandeurs testees : OK
|
||||
|
||||
|
||||
|
||||
./Batterie/FONCTION_UNIQUE/TYPE_DE_CALCUL/Test_R_dynamique_explicite/.CVisu1
|
||||
-------------------------------------------------------
|
||||
| temps cpu : 00:00:02.042 (processeur : 87.1%)
|
||||
| temps systeme : 00:00:00.070 (processeur : 87.1%)
|
||||
| temps reel : 00:00:02.42
|
||||
-------------------------------------------------------
|
||||
|
||||
-> grandeur testee : colonne [1]
|
||||
- comparaison absolue (precision : 1.e-6) -> OK
|
||||
- comparaison relative (precision : 1.e-1%) -> OK
|
||||
|
||||
-> grandeur testee : colonne [2]
|
||||
- comparaison absolue (precision : 1.e-6) -> OK
|
||||
- comparaison relative (precision : 1.e-1%) -> OK
|
||||
|
||||
-> grandeur testee : colonne [3]
|
||||
- comparaison absolue (precision : 1.e-6) -> OK
|
||||
- comparaison relative (precision : 1.e-1%) -> OK
|
||||
|
||||
-> grandeur testee : colonne [4]
|
||||
- comparaison absolue (precision : 1.e-6) -> OK
|
||||
- comparaison relative (precision : 1.e-1%) -> OK
|
||||
|
||||
-> grandeur testee : colonne [5]
|
||||
- comparaison absolue (precision : 1.e-6) -> ECHEC
|
||||
-> Valeur = -4.877894225576
|
||||
-> Valeur reference = -3.777977376754
|
||||
-> Difference = -1.099917
|
||||
- comparaison relative (precision : 1.e-1%) -> ECHEC
|
||||
-> Valeur = -4.877894225576
|
||||
-> Valeur reference = -3.777977376754
|
||||
-> Difference relative = 29.1%
|
||||
|
||||
-> grandeur testee : colonne [6]
|
||||
- comparaison absolue (precision : 1.e-6) -> ECHEC
|
||||
-> Valeur = -41494326.059129998088
|
||||
-> Valeur reference = -488844.692824600032
|
||||
-> Difference = -41005481.366305
|
||||
- comparaison relative (precision : 1.e-1%) -> ECHEC
|
||||
-> Valeur = -41494326.059129998088
|
||||
-> Valeur reference = -488844.692824600032
|
||||
-> Difference relative = 8388.2%
|
||||
|
||||
-> grandeur testee : colonne [7]
|
||||
- comparaison absolue (precision : 1.e-6) -> OK
|
||||
- comparaison relative (precision : 1.e-1%) -> OK
|
||||
|
||||
-> grandeur testee : colonne [8]
|
||||
- comparaison absolue (precision : 1.e-6) -> OK
|
||||
- comparaison relative (precision : 1.e-1%) -> OK
|
||||
|
||||
-> grandeur testee : colonne [9]
|
||||
- comparaison absolue (precision : 1.e-6) -> OK
|
||||
- comparaison relative (precision : 1.e-1%) -> OK
|
||||
|
||||
-> grandeur testee : colonne [10]
|
||||
- comparaison absolue (precision : 1.e-6) -> OK
|
||||
- comparaison relative (precision : 1.e-1%) -> OK
|
||||
|
||||
-> grandeur testee : colonne [11]
|
||||
- comparaison absolue (precision : 1.e-6) -> OK
|
||||
- comparaison relative (precision : 1.e-1%) -> OK
|
||||
|
||||
-> grandeur testee : colonne [12]
|
||||
- comparaison absolue (precision : 1.e-6) -> OK
|
||||
- comparaison relative (precision : 1.e-1%) -> OK
|
||||
|
||||
-> grandeur testee : colonne [13]
|
||||
- comparaison absolue (precision : 1.e-6) -> OK
|
||||
- comparaison relative (precision : 1.e-1%) -> OK
|
||||
|
||||
-> grandeur testee : colonne [14]
|
||||
- comparaison absolue (precision : 1.e-6) -> ECHEC
|
||||
-> Valeur = 2069.022356594000
|
||||
-> Valeur reference = 2068.916079252000
|
||||
-> Difference = 0.106277
|
||||
- comparaison relative (precision : 1.e-1%) -> OK
|
||||
|
||||
|
||||
|
||||
./Batterie/FONCTION_UNIQUE/TYPE_DE_CALCUL/Test_R_dynamique_implicite/.CVisu1
|
||||
-------------------------------------------------------
|
||||
| temps cpu : 00:00:00.079 (processeur : 88.8%)
|
||||
| temps systeme : 00:00:00.010 (processeur : 88.8%)
|
||||
| temps reel : 00:00:00.09
|
||||
-------------------------------------------------------
|
||||
|
||||
-> pour toutes les grandeurs testees : OK
|
||||
|
||||
|
||||
|
||||
./Batterie/FONCTION_UNIQUE/TYPE_DE_CALCUL/Test_R_dynamique_implicite_HHT/.CVisu1
|
||||
-------------------------------------------------------
|
||||
| temps cpu : 00:00:00.078 (processeur : 87.5%)
|
||||
| temps systeme : 00:00:00.009 (processeur : 87.5%)
|
||||
| temps reel : 00:00:00.08
|
||||
-------------------------------------------------------
|
||||
|
||||
-> pour toutes les grandeurs testees : OK
|
||||
|
||||
|
||||
|
||||
./Batterie/FONCTION_UNIQUE/TYPE_DE_CALCUL/Test_R_dynamique_relaxation_dynam/.CVisu1
|
||||
-------------------------------------------------------
|
||||
| temps cpu : 00:00:00.691 (processeur : 98.5%)
|
||||
| temps systeme : 00:00:00.016 (processeur : 98.5%)
|
||||
| temps reel : 00:00:00.71
|
||||
-------------------------------------------------------
|
||||
|
||||
-> pour toutes les grandeurs testees : OK
|
||||
|
||||
|
||||
|
||||
./Batterie/FONCTION_UNIQUE/TYPE_DE_CALCUL/Test_R_non_dynamique/.CVisu1
|
||||
-------------------------------------------------------
|
||||
| temps cpu : 00:00:00.065 (processeur : 85.7%)
|
||||
| temps systeme : 00:00:00.008 (processeur : 85.7%)
|
||||
| temps reel : 00:00:00.07
|
||||
-------------------------------------------------------
|
||||
|
||||
-> pour toutes les grandeurs testees : OK
|
||||
|
||||
|
||||
|
||||
./Batterie/FONCTION_UNIQUE/TYPE_DE_CALCUL/Test_R_zhai_dynamique_explicite/.CVisu1
|
||||
-------------------------------------------------------
|
||||
| temps cpu : 00:00:01.588 (processeur : 89.0%)
|
||||
| temps systeme : 00:00:00.042 (processeur : 89.0%)
|
||||
| temps reel : 00:00:01.82
|
||||
-------------------------------------------------------
|
||||
|
||||
-> pour toutes les grandeurs testees : OK
|
||||
|
||||
|
||||
|
||||
./Batterie/FONCTION_UNIQUE/UTILITAIRES/Test_R_fusion-elements-supperposes/.CVisu1
|
||||
-------------------------------------------------------
|
||||
| temps cpu : 00:00:00.034 (processeur : 75.0%)
|
||||
| temps systeme : 00:00:00.007 (processeur : 75.0%)
|
||||
| temps reel : 00:00:00.04
|
||||
-------------------------------------------------------
|
||||
|
||||
-> OK (resultat fourni par le script de verification fusion_elements_supperposes.verif1)
|
||||
|
||||
|
||||
|
||||
./Batterie/FONCTION_UNIQUE/UTILITAIRES/Test_R_fusion-maillage/.CVisu1
|
||||
-------------------------------------------------------
|
||||
| temps cpu : 00:00:00.038 (processeur : 75.0%)
|
||||
| temps systeme : 00:00:00.007 (processeur : 75.0%)
|
||||
| temps reel : 00:00:00.04
|
||||
-------------------------------------------------------
|
||||
|
||||
-> OK (resultat fourni par le script de verification fusion_maillage.verif1)
|
||||
|
||||
|
||||
|
||||
./Batterie/FONCTION_UNIQUE/UTILITAIRES/Test_R_fusion-noeuds-voisins/.CVisu1
|
||||
-------------------------------------------------------
|
||||
| temps cpu : 00:00:00.035 (processeur : 75.0%)
|
||||
| temps systeme : 00:00:00.006 (processeur : 75.0%)
|
||||
| temps reel : 00:00:00.04
|
||||
-------------------------------------------------------
|
||||
|
||||
-> OK (resultat fourni par le script de verification fusion_noeuds_voisins.verif1)
|
||||
|
||||
|
||||
|
||||
./Batterie/FONCTION_UNIQUE/UTILITAIRES/Test_R_suppression-noeuds-non-references/.CVisu1
|
||||
-------------------------------------------------------
|
||||
| temps cpu : 00:00:00.034 (processeur : 75.0%)
|
||||
| temps systeme : 00:00:00.006 (processeur : 75.0%)
|
||||
| temps reel : 00:00:00.04
|
||||
-------------------------------------------------------
|
||||
|
||||
-> OK (resultat fourni par le script de verification suppression_noeuds_non_references.verif1)
|
||||
./Test_R_LOI_VIA_UMAT_1/.CVisu1
|
||||
-> ECHEC : le script de post-traitement (LOI_VIA_UMAT_1.posttrait1) n a pas affiche d indicateur de reussite
|
||||
|
||||
|
|
Binary file not shown.
Binary file not shown.
|
@ -11,7 +11,7 @@ my $format_reel = '[+-]?[\.]?\d+[\.]?\d*(?:[eE][+-]?\d*)?';
|
|||
|
||||
|
||||
#fichier de communication avec le script ./Perl/test.pl (pour gerer l arret force de la batterie)
|
||||
# !!!!ATTENTION : tout changement dans ce nom de fichier doit etre reperecute dans le script ./Perl/test.pl
|
||||
# !!!!ATTENTION : tout changement dans le nom de ce fichier doit etre repercute dans le script ./Perl/test.pl
|
||||
my $FIC_COMMUNICATION = "/tmp/verifier_exeHZ_2_test_$PID.com";
|
||||
|
||||
|
||||
|
|
Loading…
Reference in a new issue