From 69839a471a0aded35d66ad3340f2a7c21fc7c67f Mon Sep 17 00:00:00 2001 From: troufflard <> Date: Thu, 24 Mar 2016 13:53:42 +0000 Subject: [PATCH] legere modif Perl/test.pl et doc utilisateur --- Doc/doc_procedure_verification.tex | 6 + Perl/test.pl | 2 +- Rapport/rapport_test_L.txt | 24 +- Rapport/rapport_test_R.txt | 345 ++++++++++++++++++++++++++++- doc_procedure_verification.pdf | Bin 243073 -> 243365 bytes 5 files changed, 361 insertions(+), 16 deletions(-) diff --git a/Doc/doc_procedure_verification.tex b/Doc/doc_procedure_verification.tex index c5cf1cd..0f1eebe 100644 --- a/Doc/doc_procedure_verification.tex +++ b/Doc/doc_procedure_verification.tex @@ -1055,6 +1055,12 @@ remarque : modif 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 +~\\ + +\item[$\bullet$] 2016-03-24 (Julien Troufflard) : +\begin{itemize} +\item[-] modif du script \verb|Perl/test.pl| : ajout de la possibilité de faire des traitements avant et après calcul via un script \verb|.pretrait| et \verb|.posttrait| (voir section \ref{section_fichiers_facultatifs}) +\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 72aefe3..6d3c800 100755 --- a/Perl/test.pl +++ b/Perl/test.pl @@ -596,7 +596,7 @@ BOUCLE_TEST:for(my $no_test=1; $no_test<=$nb_CVisu; $no_test++) { #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"); + system("$script_posttrait $hzchemin $fichier_test.info $fichier_test.log > $script_posttrait.log"); #affichage du contenu du fichier de redirection system("cat $script_posttrait.log"); diff --git a/Rapport/rapport_test_L.txt b/Rapport/rapport_test_L.txt index 592a4c0..4624ac2 100644 --- a/Rapport/rapport_test_L.txt +++ b/Rapport/rapport_test_L.txt @@ -1,10 +1,10 @@ --------------------------------------- - RAPPORT DE TEST - --------------------------------------- -- version HZ++ : HZppfast 6.729 +- version HZ++ : HZppfast 6.743 -- date : 25/11/2015 -- heure : 10:2 (heure locale) +- date : 24/03/2016 +- heure : 14:41 (heure locale) - machine : hdom-1057.univ-ubs.fr --------------------------------------- @@ -12,9 +12,9 @@ ./Batterie/FONCTION_UNIQUE/LOI_DE_COMPORTEMENT/CP_venant_du_3D/Test_L_tunnel_ISOELAS_CP/.CVisu1 ------------------------------------------------------- - | temps cpu : 00:01:03.021 (processeur : 99.8%) - | temps systeme : 00:00:00.128 (processeur : 99.8%) - | temps reel : 00:01:03.22 + | temps cpu : 00:01:02.586 (processeur : 99.8%) + | temps systeme : 00:00:00.111 (processeur : 99.8%) + | temps reel : 00:01:02.76 ------------------------------------------------------- -> pour toutes les grandeurs testees : OK @@ -23,9 +23,9 @@ ./Batterie/FONCTION_UNIQUE/LOI_DE_COMPORTEMENT/CP_venant_du_3D/Test_L_tunnel_isohyper3dorgeas1_CP/.CVisu1 ------------------------------------------------------- - | temps cpu : 00:00:15.755 (processeur : 99.8%) - | temps systeme : 00:00:00.043 (processeur : 99.8%) - | temps reel : 00:00:15.81 + | temps cpu : 00:00:15.745 (processeur : 99.9%) + | temps systeme : 00:00:00.022 (processeur : 99.9%) + | temps reel : 00:00:15.77 ------------------------------------------------------- -> pour toutes les grandeurs testees : OK @@ -34,9 +34,9 @@ ./Batterie/FONCTION_UNIQUE/LOI_DE_COMPORTEMENT/ISOELAS2D_C/Test_L_tunnel_ISOELAS2D_C/.CVisu1 ------------------------------------------------------- - | temps cpu : 00:01:15.679 (processeur : 99.3%) - | temps systeme : 00:00:01.277 (processeur : 99.3%) - | temps reel : 00:01:17.45 + | temps cpu : 00:01:14.348 (processeur : 99.6%) + | temps systeme : 00:00:00.840 (processeur : 99.6%) + | temps reel : 00:01:15.48 ------------------------------------------------------- -> pour toutes les grandeurs testees : OK diff --git a/Rapport/rapport_test_R.txt b/Rapport/rapport_test_R.txt index 81c8a1a..a4acd01 100644 --- a/Rapport/rapport_test_R.txt +++ b/Rapport/rapport_test_R.txt @@ -4,12 +4,351 @@ - version HZ++ : HZppfast 6.743 - date : 24/03/2016 -- heure : 14:31 (heure locale) +- heure : 14:47 (heure locale) - machine : hdom-1057.univ-ubs.fr --------------------------------------- -./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 +./Batterie/FONCTION_UNIQUE/CONDITIONS_LIMITES/Test_R_cisaillement_CLL_periodique/.CVisu1 + ------------------------------------------------------- + | temps cpu : 00:00:01.352 (processeur : 98.5%) + | temps systeme : 00:00:00.026 (processeur : 98.5%) + | temps reel : 00:00:01.39 + ------------------------------------------------------- + + -> pour toutes les grandeurs testees : OK + + + +./Batterie/FONCTION_UNIQUE/CONTACT/Test_R_contact_axi_non_dynamique/.CVisu1 + ------------------------------------------------------- + | temps cpu : 00:00:03.859 (processeur : 99.2%) + | temps systeme : 00:00:00.041 (processeur : 99.2%) + | temps reel : 00:00:03.92 + ------------------------------------------------------- + + -> pour toutes les grandeurs testees : OK + + + +./Batterie/FONCTION_UNIQUE/CONTACT/Test_R_contact_basique_axi_deformable_solide/.CVisu1 + ------------------------------------------------------- + | temps cpu : 00:00:00.116 (processeur : 92.3%) + | temps systeme : 00:00:00.015 (processeur : 92.3%) + | temps reel : 00:00:00.13 + ------------------------------------------------------- + + -> 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.094 (processeur : 90.0%) + | temps systeme : 00:00:00.009 (processeur : 90.0%) + | temps reel : 00:00:00.10 + ------------------------------------------------------- + + -> pour toutes les grandeurs testees : OK + + + +./Batterie/FONCTION_UNIQUE/LOI_DE_COMPORTEMENT/ISOHYPER3DFAVIER3/Test_R_cube_ISOHYPER3DFAVIER3_cisaillement/.CVisu1 + ------------------------------------------------------- + | temps cpu : 00:00:00.070 (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/LOI_DE_COMPORTEMENT/ISOHYPER3DFAVIER3/Test_R_cube_ISOHYPER3DFAVIER3_traction/.CVisu1 + ------------------------------------------------------- + | temps cpu : 00:00:00.097 (processeur : 90.0%) + | temps systeme : 00:00:00.009 (processeur : 90.0%) + | temps reel : 00:00:00.10 + ------------------------------------------------------- + + -> pour toutes les grandeurs testees : OK + + + +./Batterie/FONCTION_UNIQUE/LOI_DE_COMPORTEMENT/LOI_VIA_UMAT/Test_R_LOI_VIA_UMAT_1/.CVisu1 + ------------------------------------------------------- + | temps cpu : 00:00:00.236 (processeur : 88.8%) + | temps systeme : 00:00:00.018 (processeur : 88.8%) + | temps reel : 00:00:00.27 + ------------------------------------------------------- + + -> 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.760 (processeur : 98.7%) + | temps systeme : 00:00:00.026 (processeur : 98.7%) + | 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.058 (processeur : 83.3%) + | temps systeme : 00:00:00.008 (processeur : 83.3%) + | temps reel : 00:00:00.06 + ------------------------------------------------------- + + -> 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.072 (processeur : 87.5%) + | temps systeme : 00:00:00.008 (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.195 (processeur : 95.0%) + | temps systeme : 00:00:00.009 (processeur : 95.0%) + | temps reel : 00:00:00.20 + ------------------------------------------------------- + + -> 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.077 (processeur : 87.5%) + | temps systeme : 00:00:00.008 (processeur : 87.5%) + | 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.002 (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:01.813 (processeur : 86.8%) + | temps systeme : 00:00:00.043 (processeur : 86.8%) + | temps reel : 00:00:02.13 + ------------------------------------------------------- + + -> pour toutes les grandeurs testees : OK + + + +./Batterie/FONCTION_UNIQUE/TYPE_DE_CALCUL/Test_R_dynamique_explicite/.CVisu1 + ------------------------------------------------------- + | temps cpu : 00:00:01.683 (processeur : 85.1%) + | temps systeme : 00:00:00.041 (processeur : 85.1%) + | temps reel : 00:00:02.02 + ------------------------------------------------------- + + -> 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.082 (processeur : 88.8%) + | temps systeme : 00:00:00.009 (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.082 (processeur : 88.8%) + | temps systeme : 00:00:00.009 (processeur : 88.8%) + | temps reel : 00:00:00.09 + ------------------------------------------------------- + + -> pour toutes les grandeurs testees : OK + + + +./Batterie/FONCTION_UNIQUE/TYPE_DE_CALCUL/Test_R_dynamique_relaxation_dynam/.CVisu1 + ------------------------------------------------------- + | temps cpu : 00:00:00.716 (processeur : 98.6%) + | temps systeme : 00:00:00.022 (processeur : 98.6%) + | temps reel : 00:00:00.74 + ------------------------------------------------------- + + -> pour toutes les grandeurs testees : OK + + + +./Batterie/FONCTION_UNIQUE/TYPE_DE_CALCUL/Test_R_non_dynamique/.CVisu1 + ------------------------------------------------------- + | temps cpu : 00:00:00.069 (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.658 (processeur : 82.0%) + | temps systeme : 00:00:00.040 (processeur : 82.0%) + | temps reel : 00:00:02.06 + ------------------------------------------------------- + + -> pour toutes les grandeurs testees : OK + + + +./Batterie/FONCTION_UNIQUE/UTILITAIRES/Test_R_fusion-elements-supperposes/.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_elements_supperposes.verif1) + + + +./Batterie/FONCTION_UNIQUE/UTILITAIRES/Test_R_fusion-maillage/.CVisu1 + ------------------------------------------------------- + | temps cpu : 00:00:00.039 (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.036 (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.007 (processeur : 75.0%) + | temps reel : 00:00:00.04 + ------------------------------------------------------- + + -> OK (resultat fourni par le script de verification suppression_noeuds_non_references.verif1) diff --git a/doc_procedure_verification.pdf b/doc_procedure_verification.pdf index ffd9d1dc093cec3dacab706651e15e36db59f8db..238d02c6a75eab4793a8e2da0b6fb20926932f1c 100644 GIT binary patch delta 10502 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 N0Em>75=xSY{|nRs2-pAs delta 10222 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 P8^D7=NhzTuiSWMwXb`s1