diff --git a/Batterie/FONCTION_UNIQUE/CONDITIONS_LIMITES/Test_R_traction_biaxiale_BLOCAGE_RELATIF_1/README b/Batterie/FONCTION_UNIQUE/CONDITIONS_LIMITES/Test_R_traction_biaxiale_BLOCAGE_RELATIF_1/README new file mode 100755 index 0000000..3b40363 --- /dev/null +++ b/Batterie/FONCTION_UNIQUE/CONDITIONS_LIMITES/Test_R_traction_biaxiale_BLOCAGE_RELATIF_1/README @@ -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 diff --git a/Batterie/FONCTION_UNIQUE/CONDITIONS_LIMITES/Test_R_traction_biaxiale_BLOCAGE_RELATIF_1/cube_1elt_npti8.her b/Batterie/FONCTION_UNIQUE/CONDITIONS_LIMITES/Test_R_traction_biaxiale_BLOCAGE_RELATIF_1/cube_1elt_npti8.her new file mode 100644 index 0000000..3bc9991 --- /dev/null +++ b/Batterie/FONCTION_UNIQUE/CONDITIONS_LIMITES/Test_R_traction_biaxiale_BLOCAGE_RELATIF_1/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/CONDITIONS_LIMITES/Test_R_traction_biaxiale_BLOCAGE_RELATIF_1/cube_1elt_npti8.lis b/Batterie/FONCTION_UNIQUE/CONDITIONS_LIMITES/Test_R_traction_biaxiale_BLOCAGE_RELATIF_1/cube_1elt_npti8.lis new file mode 100644 index 0000000..8224c23 --- /dev/null +++ b/Batterie/FONCTION_UNIQUE/CONDITIONS_LIMITES/Test_R_traction_biaxiale_BLOCAGE_RELATIF_1/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/CONDITIONS_LIMITES/Test_R_traction_biaxiale_BLOCAGE_RELATIF_1/traction_biaxale_BLOCAGE_RELATIF_1.CVisu1 b/Batterie/FONCTION_UNIQUE/CONDITIONS_LIMITES/Test_R_traction_biaxiale_BLOCAGE_RELATIF_1/traction_biaxale_BLOCAGE_RELATIF_1.CVisu1 new file mode 100644 index 0000000..234d327 --- /dev/null +++ b/Batterie/FONCTION_UNIQUE/CONDITIONS_LIMITES/Test_R_traction_biaxiale_BLOCAGE_RELATIF_1/traction_biaxale_BLOCAGE_RELATIF_1.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 N_haut_avant_gauche fin_list_ref_noeud + # debut de la liste des ddl a considerer aux noeuds, (une liste de ddl), puis + 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 + 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 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 + 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/CONDITIONS_LIMITES/Test_R_traction_biaxiale_BLOCAGE_RELATIF_1/traction_biaxale_BLOCAGE_RELATIF_1.info b/Batterie/FONCTION_UNIQUE/CONDITIONS_LIMITES/Test_R_traction_biaxiale_BLOCAGE_RELATIF_1/traction_biaxale_BLOCAGE_RELATIF_1.info new file mode 100644 index 0000000..24d7731 --- /dev/null +++ b/Batterie/FONCTION_UNIQUE/CONDITIONS_LIMITES/Test_R_traction_biaxiale_BLOCAGE_RELATIF_1/traction_biaxale_BLOCAGE_RELATIF_1.info @@ -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_ diff --git a/Batterie/FONCTION_UNIQUE/CONDITIONS_LIMITES/Test_R_traction_biaxiale_BLOCAGE_RELATIF_1/traction_biaxale_BLOCAGE_RELATIF_1_princ.maple.ref1 b/Batterie/FONCTION_UNIQUE/CONDITIONS_LIMITES/Test_R_traction_biaxiale_BLOCAGE_RELATIF_1/traction_biaxale_BLOCAGE_RELATIF_1_princ.maple.ref1 new file mode 100644 index 0000000..aa66839 --- /dev/null +++ b/Batterie/FONCTION_UNIQUE/CONDITIONS_LIMITES/Test_R_traction_biaxiale_BLOCAGE_RELATIF_1/traction_biaxale_BLOCAGE_RELATIF_1_princ.maple.ref1 @@ -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 diff --git a/Batterie/FONCTION_UNIQUE/LOI_DE_COMPORTEMENT/Test_R_dilatation_thermique_LOI_ADDITIVE/README b/Batterie/FONCTION_UNIQUE/LOI_DE_COMPORTEMENT/Test_R_dilatation_thermique_LOI_ADDITIVE/README new file mode 100644 index 0000000..a0445ec --- /dev/null +++ b/Batterie/FONCTION_UNIQUE/LOI_DE_COMPORTEMENT/Test_R_dilatation_thermique_LOI_ADDITIVE/README @@ -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) diff --git a/Batterie/FONCTION_UNIQUE/LOI_DE_COMPORTEMENT/Test_R_dilatation_thermique_LOI_ADDITIVE/cube_1elt_npti8.her b/Batterie/FONCTION_UNIQUE/LOI_DE_COMPORTEMENT/Test_R_dilatation_thermique_LOI_ADDITIVE/cube_1elt_npti8.her new file mode 100644 index 0000000..3bc9991 --- /dev/null +++ b/Batterie/FONCTION_UNIQUE/LOI_DE_COMPORTEMENT/Test_R_dilatation_thermique_LOI_ADDITIVE/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/LOI_DE_COMPORTEMENT/Test_R_dilatation_thermique_LOI_ADDITIVE/cube_1elt_npti8.lis b/Batterie/FONCTION_UNIQUE/LOI_DE_COMPORTEMENT/Test_R_dilatation_thermique_LOI_ADDITIVE/cube_1elt_npti8.lis new file mode 100644 index 0000000..8224c23 --- /dev/null +++ b/Batterie/FONCTION_UNIQUE/LOI_DE_COMPORTEMENT/Test_R_dilatation_thermique_LOI_ADDITIVE/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/LOI_DE_COMPORTEMENT/Test_R_dilatation_thermique_LOI_ADDITIVE/dilatation_thermique_LOI_ADDITIVE.CVisu1 b/Batterie/FONCTION_UNIQUE/LOI_DE_COMPORTEMENT/Test_R_dilatation_thermique_LOI_ADDITIVE/dilatation_thermique_LOI_ADDITIVE.CVisu1 new file mode 100644 index 0000000..7c55354 --- /dev/null +++ b/Batterie/FONCTION_UNIQUE/LOI_DE_COMPORTEMENT/Test_R_dilatation_thermique_LOI_ADDITIVE/dilatation_thermique_LOI_ADDITIVE.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 8 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 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 + 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 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 (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/LOI_DE_COMPORTEMENT/Test_R_dilatation_thermique_LOI_ADDITIVE/dilatation_thermique_LOI_ADDITIVE.info b/Batterie/FONCTION_UNIQUE/LOI_DE_COMPORTEMENT/Test_R_dilatation_thermique_LOI_ADDITIVE/dilatation_thermique_LOI_ADDITIVE.info new file mode 100644 index 0000000..5c49208 --- /dev/null +++ b/Batterie/FONCTION_UNIQUE/LOI_DE_COMPORTEMENT/Test_R_dilatation_thermique_LOI_ADDITIVE/dilatation_thermique_LOI_ADDITIVE.info @@ -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_ diff --git a/Batterie/FONCTION_UNIQUE/LOI_DE_COMPORTEMENT/Test_R_dilatation_thermique_LOI_ADDITIVE/dilatation_thermique_LOI_ADDITIVE_princ.maple.ref1 b/Batterie/FONCTION_UNIQUE/LOI_DE_COMPORTEMENT/Test_R_dilatation_thermique_LOI_ADDITIVE/dilatation_thermique_LOI_ADDITIVE_princ.maple.ref1 new file mode 100644 index 0000000..3aaf439 --- /dev/null +++ b/Batterie/FONCTION_UNIQUE/LOI_DE_COMPORTEMENT/Test_R_dilatation_thermique_LOI_ADDITIVE/dilatation_thermique_LOI_ADDITIVE_princ.maple.ref1 @@ -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 diff --git a/Doc/doc_procedure_verification.tex b/Doc/doc_procedure_verification.tex index 313ed45..07b5749 100644 --- a/Doc/doc_procedure_verification.tex +++ b/Doc/doc_procedure_verification.tex @@ -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 "-" diff --git a/Perl/test.pl b/Perl/test.pl index 13f0bff..c823582 100755 --- a/Perl/test.pl +++ b/Perl/test.pl @@ -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); } diff --git a/Tests_en_attente_debug/Test_R_RESTART_1D/test_RESTART_1D.posttrait1 b/Tests_en_attente_debug/Test_R_RESTART_1D/test_RESTART_1D.posttrait1 index ee74292..30142fb 100755 --- a/Tests_en_attente_debug/Test_R_RESTART_1D/test_RESTART_1D.posttrait1 +++ b/Tests_en_attente_debug/Test_R_RESTART_1D/test_RESTART_1D.posttrait1 @@ -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() { + 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"; diff --git a/catalogue_tests.pdf b/catalogue_tests.pdf index 1c750fb..913b1ec 100644 Binary files a/catalogue_tests.pdf and b/catalogue_tests.pdf differ diff --git a/doc_procedure_verification.pdf b/doc_procedure_verification.pdf index ac36685..a72738e 100644 Binary files a/doc_procedure_verification.pdf and b/doc_procedure_verification.pdf differ