From c34f378e65e735df9001029a0e473cd9359bc112 Mon Sep 17 00:00:00 2001 From: rio <> Date: Wed, 4 Jan 2017 14:38:27 +0000 Subject: [PATCH] ajout du test Test_R_non_dynamique_suite_point_info avec un fonctionnement ok --- .../README | 47 ++++++ .../cube_1elt_npti8.her | 18 ++ .../cube_1elt_npti8.lis | 158 ++++++++++++++++++ .../non_dynamique_suite_point_info.CVisu1 | 116 +++++++++++++ .../non_dynamique_suite_point_info.info | 81 +++++++++ .../non_dynamique_suite_point_info.verif1 | 61 +++++++ 6 files changed, 481 insertions(+) create mode 100644 Batterie/FONCTION_UNIQUE/SORTIES/Test_R_non_dynamique_suite_point_info/README create mode 100644 Batterie/FONCTION_UNIQUE/SORTIES/Test_R_non_dynamique_suite_point_info/cube_1elt_npti8.her create mode 100644 Batterie/FONCTION_UNIQUE/SORTIES/Test_R_non_dynamique_suite_point_info/cube_1elt_npti8.lis create mode 100644 Batterie/FONCTION_UNIQUE/SORTIES/Test_R_non_dynamique_suite_point_info/non_dynamique_suite_point_info.CVisu1 create mode 100644 Batterie/FONCTION_UNIQUE/SORTIES/Test_R_non_dynamique_suite_point_info/non_dynamique_suite_point_info.info create mode 100755 Batterie/FONCTION_UNIQUE/SORTIES/Test_R_non_dynamique_suite_point_info/non_dynamique_suite_point_info.verif1 diff --git a/Batterie/FONCTION_UNIQUE/SORTIES/Test_R_non_dynamique_suite_point_info/README b/Batterie/FONCTION_UNIQUE/SORTIES/Test_R_non_dynamique_suite_point_info/README new file mode 100644 index 0000000..55929a0 --- /dev/null +++ b/Batterie/FONCTION_UNIQUE/SORTIES/Test_R_non_dynamique_suite_point_info/README @@ -0,0 +1,47 @@ +------------------------------------------------------ +Auteur +------------------------------------------------------ +Julien Troufflard (troufflard@univ-ubs.fr) + + +------------------------------------------------------ +Mots-cles +------------------------------------------------------ +_suite_point_info_ +non_dynamique +traction uniaxiale +ISOELAS + + + +------------------------------------------------------ +But du test +------------------------------------------------------ +Vérification du nombre et de la liste des incréments calculés (INCREMENT DE CHARGE) dans le cas d une continuation de calcul (_suite_point_info_) + + +Gérard Rio $\rightarrow$ fonctionne é partir de la version 6.777 (pas avant) + + +------------------------------------------------------ +Description du calcul +------------------------------------------------------ +traction uniaxiale suivant X sur un cube 1x1x1 (1 element HEXAEDRE LINEAIRE). Loi ISOELAS + +Le calcul se fait en 2 étapes : +1) premier calcul entre le temps 0 et 1 (traction UX de 0.01) +2) poursuite du calcul (_suite_point_info_) jusqu a un temps de 2 (traction UX de 0.02). Le déplacement imposé est piloté par une courbe de charge. + + +------------------------------------------------------------ +Informations sur les fichiers facultatifs +------------------------------------------------------------ +Le script non_dynamique_suite_point_info.verif1 lit le fichier de redirection de l affichage produit par Herezh. Il renvoie OK si il trouve un affichage de 20 incréments de calcul (INCREMENT DE CHARGE) et que ces incréments sont numerotés dans l ordre de 1 a 20. + + +------------------------------------------------------------- +Grandeurs de comparaison +------------------------------------------------------------- +pour le point d integration 1 de l element 1 : + - contrainte : SIG11 + - déformations : EPS11, EPS22, EPS33 diff --git a/Batterie/FONCTION_UNIQUE/SORTIES/Test_R_non_dynamique_suite_point_info/cube_1elt_npti8.her b/Batterie/FONCTION_UNIQUE/SORTIES/Test_R_non_dynamique_suite_point_info/cube_1elt_npti8.her new file mode 100644 index 0000000..3bc9991 --- /dev/null +++ b/Batterie/FONCTION_UNIQUE/SORTIES/Test_R_non_dynamique_suite_point_info/cube_1elt_npti8.her @@ -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 diff --git a/Batterie/FONCTION_UNIQUE/SORTIES/Test_R_non_dynamique_suite_point_info/cube_1elt_npti8.lis b/Batterie/FONCTION_UNIQUE/SORTIES/Test_R_non_dynamique_suite_point_info/cube_1elt_npti8.lis new file mode 100644 index 0000000..8224c23 --- /dev/null +++ b/Batterie/FONCTION_UNIQUE/SORTIES/Test_R_non_dynamique_suite_point_info/cube_1elt_npti8.lis @@ -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 diff --git a/Batterie/FONCTION_UNIQUE/SORTIES/Test_R_non_dynamique_suite_point_info/non_dynamique_suite_point_info.CVisu1 b/Batterie/FONCTION_UNIQUE/SORTIES/Test_R_non_dynamique_suite_point_info/non_dynamique_suite_point_info.CVisu1 new file mode 100644 index 0000000..63617b9 --- /dev/null +++ b/Batterie/FONCTION_UNIQUE/SORTIES/Test_R_non_dynamique_suite_point_info/non_dynamique_suite_point_info.CVisu1 @@ -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: + # 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 , 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 , + # 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 , puis + 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 , puis + deb_list_noeud fin_list_noeud + # debut de la liste des ref de noeuds, puis une liste de nom , puis + deb_list_ref_noeud fin_list_ref_noeud + # debut de la liste des ddl a considerer aux noeuds, (une liste de ddl), puis + 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 + 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 + 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 + deb_list_NbElement_NbPtInteg 1 1 fin_list_NbElement_NbPtInteg + # debut de la liste des ref d'elements, puis une liste de: nom + numero d'integ, puis + deb_list_ref_element fin_list_ref_element + # debut de la liste des ref de ptinteg d'elements, puis une liste de: nom puis + 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 + 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 + 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 (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 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 + + ############################################################################################### + + diff --git a/Batterie/FONCTION_UNIQUE/SORTIES/Test_R_non_dynamique_suite_point_info/non_dynamique_suite_point_info.info b/Batterie/FONCTION_UNIQUE/SORTIES/Test_R_non_dynamique_suite_point_info/non_dynamique_suite_point_info.info new file mode 100644 index 0000000..bcf0a19 --- /dev/null +++ b/Batterie/FONCTION_UNIQUE/SORTIES/Test_R_non_dynamique_suite_point_info/non_dynamique_suite_point_info.info @@ -0,0 +1,81 @@ +dimension 3 + + +niveau_commentaire 0#3 + + +TYPE_DE_CALCUL + +non_dynamique avec plus lectureCommandesVisu + + +< cube_1elt_npti8.her +< cube_1elt_npti8.lis + + +les_courbes_1D + evol_UX COURBEPOLYLINEAIRE_1_D + Debut_des_coordonnees_des_points + Coordonnee dim= 2 0. 0. + Coordonnee dim= 2 1. 0.01 + Coordonnee dim= 2 2. 0.02 + Fin_des_coordonnees_des_points + + +choix_materiaux + +E_tout MAT + +materiaux + +MAT ISOELAS +1000. 0.4 + + +masse_volumique +E_tout 1. + + +charges + + +blocages + +#traction uniaxiale suivant X par deplacement impose +N_droit UX +N_arriere UY +N_bas UZ +N_gauche 'UX= COURBE_CHARGE: evol_UX ECHELLE: 1' + + +controle + +DELTAtMINI 0.1 +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 + + +# ici on a besoin de l'affichage + +resultats pas_de_sortie_finale_ +COPIE 0 + + +_suite_point_info_ + +controle +TEMPSFIN 2. + +_fin_point_info_ diff --git a/Batterie/FONCTION_UNIQUE/SORTIES/Test_R_non_dynamique_suite_point_info/non_dynamique_suite_point_info.verif1 b/Batterie/FONCTION_UNIQUE/SORTIES/Test_R_non_dynamique_suite_point_info/non_dynamique_suite_point_info.verif1 new file mode 100755 index 0000000..f4fc853 --- /dev/null +++ b/Batterie/FONCTION_UNIQUE/SORTIES/Test_R_non_dynamique_suite_point_info/non_dynamique_suite_point_info.verif1 @@ -0,0 +1,61 @@ +#!/usr/bin/env perl +use strict; +use warnings; +use English; +use File::Basename; +my $NOM_PROG = basename $PROGRAM_NAME; + + +#executable Herezh +my $exeHZ = shift(@ARGV); + +#fichier redirection affichage +my $flog = shift(@ARGV); + +#fichier .info +my $finfo = shift(@ARGV); + + +# +# +# verification des numeros d increment dans le fichier $flog (INCREMENT_DE_CHARGE) +# +# pour ce calcul, on s attend a trouver 20 increments de numeros : 1, 2, 3, ..., 20 +# +# ce script renvoie OK si il y a 20 increments numerotes de 1 a 20 +# sinon ECHEC +# +# + +#liste des increments +my @liste_increments; + +open(FIC, "<$flog"); +while() { + next if(not /^\s*INCREMENT\s+DE\s+CHARGE\s+:\s+(\d+)\b/o); + push(@liste_increments, $1);#ajout du numero increment dans la liste +} +close(FIC); + +#nombre d increments +my $nb_incr = $#liste_increments + 1; + + +#ECHEC si le nombre d increments n est pas egal a 20 +if($nb_incr != 20) { + print "\nErreur (prog:$NOM_PROG) : $nb_incr increments ont ete calcules (on s attendait a 20 increments)\n\n"; + print "resultat verification : ECHEC $nb_incr increments ont ete calcules (on s attendait a 20 increments)\n"; + exit; +} + +#ECHEC si la liste n est pas dans l ordre exact 1 2 3 ... 20 +for(1 .. 20) { + if($liste_increments[$_-1] != $_) { + print "\nErreur (prog:$NOM_PROG) : probleme dans les numeros des increments\n\n"; + print "resultat verification : ECHEC probleme dans les numeros des increments\n"; + exit; + } +} + +#OK : aucun probleme n a ete rencontre +print "resultat verification : OK\n";