2
0
Fork 0

ajout des fichier pour le test de la fusion elements supperposes

This commit is contained in:
kergourlay 2015-04-16 07:22:18 +00:00
parent ed184599db
commit fb1ab5866c
9 changed files with 1102 additions and 0 deletions

View file

@ -0,0 +1,37 @@
------------------------------------------------------------
But du test
------------------------------------------------------------
Test rapide de l'utilitaire de fusion des elements supperposes
""
TYPE_DE_CALCUL
utilitaires avec plus fusion_elements
""
------------------------------------------------------------
Description du calcul
------------------------------------------------------------
Fusion de deux cubes 1x1x1 en 3D avec 8 éléments chacun (Hexaèdres quadratiques 27 pti)
Les cubes ont exactement la même position X,Y,Z
loi isoelas classique
Les fichiers initiaux pour le calcul sont cube_soude.her et cube_soude.lis
------------------------------------------------------------
Grandeurs de comparaison
------------------------------------------------------------
Comparaison des fichiers cube_soude_nevez.her et cube_soude_nevez.lis avec les fichiers de références cube_soude_nevez.her_ref1 et cube_soude_nevez.lis_ref1
version d'herezh 6.697
------------------------------------------------------------
Informations sur les fichiers facultatifs
------------------------------------------------------------
Des fichiers temporaires sont créés pour la comparaison qui contiennent uniquement les données puis ils sont éffacés à la fin de l'éxécution du programme perl.
------------------------------------------------------------
Comparaison avec des solutions analytiques
------------------------------------------------------------
du texte...
------------------------------------------------------------
Comparaison avec des codes de calcul
------------------------------------------------------------
du texte...

View file

@ -0,0 +1,60 @@
###########################################################################
# ecriture automatique d'un maillage au format .her, par Herezh++ #
###########################################################################
# version: 6.697
nom_maillage cube_soude # nom du maillage
noeuds ------------ # definition des noeuds
27 NOEUDS # definition du nombre de noeuds
#---------------------------------------------------------------
#|NO DU| X | Y | Z |
#|NOEUD| | | |
#---------------------------------------------------------------
1 0.00000000000000000e+00 0.00000000000000000e+00 0.00000000000000000e+00
2 0.00000000000000000e+00 0.00000000000000000e+00 5.00000000000000000e-01
3 0.00000000000000000e+00 0.00000000000000000e+00 1.00000000000000000e+00
4 0.00000000000000000e+00 5.00000000000000000e-01 0.00000000000000000e+00
5 0.00000000000000000e+00 5.00000000000000000e-01 5.00000000000000000e-01
6 0.00000000000000000e+00 5.00000000000000000e-01 1.00000000000000000e+00
7 0.00000000000000000e+00 1.00000000000000000e+00 0.00000000000000000e+00
8 0.00000000000000000e+00 1.00000000000000000e+00 5.00000000000000000e-01
9 0.00000000000000000e+00 1.00000000000000000e+00 1.00000000000000000e+00
10 5.00000000000000000e-01 0.00000000000000000e+00 0.00000000000000000e+00
11 5.00000000000000000e-01 0.00000000000000000e+00 5.00000000000000000e-01
12 5.00000000000000000e-01 0.00000000000000000e+00 1.00000000000000000e+00
13 5.00000000000000000e-01 5.00000000000000000e-01 0.00000000000000000e+00
14 5.00000000000000000e-01 5.00000000000000000e-01 5.00000000000000000e-01
15 5.00000000000000000e-01 5.00000000000000000e-01 1.00000000000000000e+00
16 5.00000000000000000e-01 1.00000000000000000e+00 0.00000000000000000e+00
17 5.00000000000000000e-01 1.00000000000000000e+00 5.00000000000000000e-01
18 5.00000000000000000e-01 1.00000000000000000e+00 1.00000000000000000e+00
19 1.00000000000000000e+00 0.00000000000000000e+00 0.00000000000000000e+00
20 1.00000000000000000e+00 0.00000000000000000e+00 5.00000000000000000e-01
21 1.00000000000000000e+00 0.00000000000000000e+00 1.00000000000000000e+00
22 1.00000000000000000e+00 5.00000000000000000e-01 0.00000000000000000e+00
23 1.00000000000000000e+00 5.00000000000000000e-01 5.00000000000000000e-01
24 1.00000000000000000e+00 5.00000000000000000e-01 1.00000000000000000e+00
25 1.00000000000000000e+00 1.00000000000000000e+00 0.00000000000000000e+00
26 1.00000000000000000e+00 1.00000000000000000e+00 5.00000000000000000e-01
27 1.00000000000000000e+00 1.00000000000000000e+00 1.00000000000000000e+00
elements ----------
2 ELEMENTS # definition du nombre d'elements
#----------------------------------------------------------------------
#| NO | | |
#|ELTS | type element | Noeuds |
#----------------------------------------------------------------------
1 HEXAEDRE QUADRACOMPL 19 25 7 1 21 27 9 3 22 16 4 10 20 26 8 2 24 18 6 12 13 23 17 5 11 15 14
2 HEXAEDRE QUADRACOMPL 19 25 7 1 21 27 9 3 22 16 4 10 20 26 8 2 24 18 6 12 13 23 17 5 11 15 14

View file

@ -0,0 +1,255 @@
###########################################################################
# ecriture automatique d'un maillage au format .lis, par Herezh++ #
###########################################################################
# version: 6.697
# -- reference de noeud
N_arriere 1 2 3 10 11 12 19 20 21
N_arriere_droit 1 2 3
N_arriere_gauche 19 20 21
N_avant 7 8 9 16 17 18 25 26 27
N_avant_droit 7 8 9
N_avant_gauche 25 26 27
N_bas 1 4 7 10 13 16 19 22 25
N_bas_arriere 1 10 19
N_bas_arriere_droit 1
N_bas_arriere_gauche 19
N_bas_avant 7 16 25
N_bas_avant_droit 7
N_bas_avant_gauche 25
N_bas_droit 1 4 7
N_bas_gauche 19 22 25
N_droit 1 2 3 4 5 6 7 8 9
N_gauche 19 20 21 22 23 24 25 26 27
N_haut 3 6 9 12 15 18 21 24 27
N_haut_arriere 3 12 21
N_haut_arriere_droit 3
N_haut_arriere_gauche 21
N_haut_avant 9 18 27
N_haut_avant_droit 9
N_haut_avant_gauche 27
N_haut_droit 3 6 9
N_haut_gauche 21 24 27
N_to 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
21 22 23 24 25 26 27
N_tout 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
21 22 23 24 25 26 27
# -- reference des elements
E_arriere_droit 1
E_arriere_droit_1 2
E_arriere_gauche 1
E_arriere_gauche_1 2
E_avant 1
E_avant_1 2
E_avant_droit 1
E_avant_droit_1 2
E_avant_gauche 1
E_avant_gauche_1 2
E_bas 1
E_bas_1 2
E_bas_arriere 1
E_bas_arriere_1 2
E_bas_arriere_droit 1
E_bas_arriere_droit_1 2
E_bas_arriere_gauche 1
E_bas_arriere_gauche_1 2
E_bas_avant 1
E_bas_avant_1 2
E_bas_avant_droit 1
E_bas_avant_droit_1 2
E_bas_avant_gauche 1
E_bas_avant_gauche_1 2
E_bas_droit 1
E_bas_droit_1 2
E_bas_gauche 1
E_bas_gauche_1 2
E_derriere 1
E_derriere_1 2
E_droit 1
E_droit_1 2
E_gauche 1
E_gauche_1 2
E_haut 1
E_haut_1 2
E_haut_arriere 1
E_haut_arriere_1 2
E_haut_arriere_droit 1
E_haut_arriere_droit_1 2
E_haut_arriere_gauche 1
E_haut_arriere_gauche_1 2
E_haut_avant 1
E_haut_avant_1 2
E_haut_avant_droit 1
E_haut_avant_droit_1 2
E_haut_avant_gauche 1
E_haut_avant_gauche_1 2
E_haut_droit 1
E_haut_droit_1 2
E_haut_gauche 1
E_haut_gauche_1 2
E_to 1
E_to_1 2
E_tout 1 2
E_tout_1 2
# -- references de pt d'integ, noeuds, faces et arretes associes a des elements
A_arriere_droit 1 8
A_arriere_droit_1 2 8
A_arriere_gauche 1 5
A_arriere_gauche_1 2 5
A_avant_droit 1 7
A_avant_droit_1 2 7
A_avant_gauche 1 6
A_avant_gauche_1 2 6
A_bas_arriere 1 4
A_bas_arriere_1 2 4
A_bas_avant 1 2
A_bas_avant_1 2 2
A_bas_droit 1 3
A_bas_droit_1 2 3
A_bas_gauche 1 1
A_bas_gauche_1 2 1
A_haut_arriere 1 12
A_haut_arriere_1 2 12
A_haut_avant 1 10
A_haut_avant_1 2 10
A_haut_droit 1 11
A_haut_droit_1 2 11
A_haut_gauche 1 9
A_haut_gauche_1 2 9
F_arriere 1 2
F_arriere_1 2 2
F_avant 1 5
F_avant_1 2 5
F_bas 1 1
F_bas_1 2 1
F_droit 1 6
F_droit_1 2 6
F_gauche 1 3
F_gauche_1 2 3
F_haut 1 4
F_haut_1 2 4

View file

@ -0,0 +1,59 @@
###########################################################################
# ecriture automatique d'un maillage au format .her, par Herezh++ #
###########################################################################
# version: 6.697
nom_maillage cube_soude_nevez_nevez # nom du maillage
noeuds ------------ # definition des noeuds
27 NOEUDS # definition du nombre de noeuds
#---------------------------------------------------------------
#|NO DU| X | Y | Z |
#|NOEUD| | | |
#---------------------------------------------------------------
1 0.00000000000000000e+00 0.00000000000000000e+00 0.00000000000000000e+00
2 0.00000000000000000e+00 0.00000000000000000e+00 5.00000000000000000e-01
3 0.00000000000000000e+00 0.00000000000000000e+00 1.00000000000000000e+00
4 0.00000000000000000e+00 5.00000000000000000e-01 0.00000000000000000e+00
5 0.00000000000000000e+00 5.00000000000000000e-01 5.00000000000000000e-01
6 0.00000000000000000e+00 5.00000000000000000e-01 1.00000000000000000e+00
7 0.00000000000000000e+00 1.00000000000000000e+00 0.00000000000000000e+00
8 0.00000000000000000e+00 1.00000000000000000e+00 5.00000000000000000e-01
9 0.00000000000000000e+00 1.00000000000000000e+00 1.00000000000000000e+00
10 5.00000000000000000e-01 0.00000000000000000e+00 0.00000000000000000e+00
11 5.00000000000000000e-01 0.00000000000000000e+00 5.00000000000000000e-01
12 5.00000000000000000e-01 0.00000000000000000e+00 1.00000000000000000e+00
13 5.00000000000000000e-01 5.00000000000000000e-01 0.00000000000000000e+00
14 5.00000000000000000e-01 5.00000000000000000e-01 5.00000000000000000e-01
15 5.00000000000000000e-01 5.00000000000000000e-01 1.00000000000000000e+00
16 5.00000000000000000e-01 1.00000000000000000e+00 0.00000000000000000e+00
17 5.00000000000000000e-01 1.00000000000000000e+00 5.00000000000000000e-01
18 5.00000000000000000e-01 1.00000000000000000e+00 1.00000000000000000e+00
19 1.00000000000000000e+00 0.00000000000000000e+00 0.00000000000000000e+00
20 1.00000000000000000e+00 0.00000000000000000e+00 5.00000000000000000e-01
21 1.00000000000000000e+00 0.00000000000000000e+00 1.00000000000000000e+00
22 1.00000000000000000e+00 5.00000000000000000e-01 0.00000000000000000e+00
23 1.00000000000000000e+00 5.00000000000000000e-01 5.00000000000000000e-01
24 1.00000000000000000e+00 5.00000000000000000e-01 1.00000000000000000e+00
25 1.00000000000000000e+00 1.00000000000000000e+00 0.00000000000000000e+00
26 1.00000000000000000e+00 1.00000000000000000e+00 5.00000000000000000e-01
27 1.00000000000000000e+00 1.00000000000000000e+00 1.00000000000000000e+00
elements ----------
1 ELEMENTS # definition du nombre d'elements
#----------------------------------------------------------------------
#| NO | | |
#|ELTS | type element | Noeuds |
#----------------------------------------------------------------------
1 HEXAEDRE QUADRACOMPL 19 25 7 1 21 27 9 3 22 16 4 10 20 26 8 2 24 18 6 12 13 23 17 5 11 15 14

View file

@ -0,0 +1,191 @@
###########################################################################
# ecriture automatique d'un maillage au format .lis, par Herezh++ #
###########################################################################
# version: 6.697
# -- reference de noeud
N_arriere 1 2 3 10 11 12 19 20 21
N_arriere_droit 1 2 3
N_arriere_gauche 19 20 21
N_avant 7 8 9 16 17 18 25 26 27
N_avant_droit 7 8 9
N_avant_gauche 25 26 27
N_bas 1 4 7 10 13 16 19 22 25
N_bas_arriere 1 10 19
N_bas_arriere_droit 1
N_bas_arriere_gauche 19
N_bas_avant 7 16 25
N_bas_avant_droit 7
N_bas_avant_gauche 25
N_bas_droit 1 4 7
N_bas_gauche 19 22 25
N_droit 1 2 3 4 5 6 7 8 9
N_gauche 19 20 21 22 23 24 25 26 27
N_haut 3 6 9 12 15 18 21 24 27
N_haut_arriere 3 12 21
N_haut_arriere_droit 3
N_haut_arriere_gauche 21
N_haut_avant 9 18 27
N_haut_avant_droit 9
N_haut_avant_gauche 27
N_haut_droit 3 6 9
N_haut_gauche 21 24 27
N_to 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
21 22 23 24 25 26 27
N_tout 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
21 22 23 24 25 26 27
# -- reference des elements
E_arriere_droit 1
E_arriere_gauche 1
E_avant 1
E_avant_droit 1
E_avant_gauche 1
E_bas 1
E_bas_arriere 1
E_bas_arriere_droit 1
E_bas_arriere_gauche 1
E_bas_avant 1
E_bas_avant_droit 1
E_bas_avant_gauche 1
E_bas_droit 1
E_bas_gauche 1
E_derriere 1
E_droit 1
E_gauche 1
E_haut 1
E_haut_arriere 1
E_haut_arriere_droit 1
E_haut_arriere_gauche 1
E_haut_avant 1
E_haut_avant_droit 1
E_haut_avant_gauche 1
E_haut_droit 1
E_haut_gauche 1
E_to 1
E_tout 1
# -- references de pt d'integ, noeuds, faces et arretes associes a des elements
A_arriere_droit 1 8
A_arriere_gauche 1 5
A_avant_droit 1 7
A_avant_gauche 1 6
A_bas_arriere 1 4
A_bas_avant 1 2
A_bas_droit 1 3
A_bas_gauche 1 1
A_haut_arriere 1 12
A_haut_avant 1 10
A_haut_droit 1 11
A_haut_gauche 1 9
F_arriere 1 2
F_avant 1 5
F_bas 1 1
F_droit 1 6
F_gauche 1 3
F_haut 1 4

View file

@ -0,0 +1,105 @@
###############################################################################################
# Fichier de commande pour la visualisation elements finis #
# Herezh++ V6.658 #
# Copyright (c) 1997-2014, Gerard Rio (gerard.rio@univ-ubs.fr) http://kleger.univ-ubs.fr/Herezh/ #
# http://www-lg2m.univ-ubs.fr #
###############################################################################################
debut_fichier_commande_visu # >>>>>> le mot cle: <debut_fichier_commande_visu>
# permet au programme de se positionner au debut du fichier, il est indispensable
# =================================================================================
# || ***** demande d'une visualisation Gmsh: ***** ||
# =================================================================================
# un mot cle de debut (debut_visualisation_Gmsh)
# un mot cle de fin ( fin_visualisation_Gmsh) apres tous les ordres particuliers
# la seule presence du premier mots cle suffit a activer la visualisation Gmsh
# la presence du second permet une meilleur lisibilite du fichier, mais n'est pas indispensable
debut_visualisation_Gmsh
# ----------------------------- definition des parametres du maillage initial: ----------------
debut_maillage_initial # un mot cle de debut de liste
actif 0 # <0 ou 1> indique si l'ordre est actif ou non
pseudo-homothetie_sur_les_maillages_ 0 # 0 = aucune homothetie, 1 = il y en a
# --- def eventuelle de la pseudo-homothetie: une par maillage,
# pseudo-homothetie pour le maillage : 1
# maillage_ 1
# mot cle: maillage_ puis le numero du maillage,
# pseudo-homothetie_ 0 # 0 = non active, 1 = active
# ensuite si c'est active, on trouve :
# mot cle: centre_homothetie_ puis les coordonnees du centre d'homothetie
# puis mot cle: fact_mult_ puis les coordonnees donnant les coefs multiplicatifs selon les axes.
# centre_homothetie_
# fact_mult_
visualisation_references_sur_les_maillages_ 1 # 0 = pas de visualisation des reference, 1 = sortie des ref dans fichier unique 2= sortie des ref dans plusieurs fichiers
fin_maillage_initial # le mot cle de fin
# ----------------------------- definition des parametres pour les isovaleurs : ----------------
debut_isovaleur_Gmsh # mot cle de debut des parametres pour les isovaleurs
actif 0 # <0 ou 1> indique si l'ordre est actif ou non
ancien_format_ 0 # 1 = ancien format, 0 = nouveau format
# 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_ 1
1 # le numero de maillage
# tableau des ddl aux noeuds a visualiser, un par maillage
debut_tableau_ddl_aux_noeuds fin_tableau_ddl_aux_noeuds
# tableau des choix_var aux noeuds a visualiser, un par maillage
# choix_var (=1 ou 0) indique si oui ou non il s'agit de la variation
debut_tableau_choix_var_ddl_aux_noeuds fin_tableau_choix_var_ddl_aux_noeuds
# tableau des ddl_etendu aux noeuds a visualiser, un par maillage
debut_tableau_ddl_etendu_aux_noeuds fin_tableau_ddl_etendu_aux_noeuds
# tableau de grandeurs evoluees aux noeuds a visualiser, un par maillage
deb_list_GrandEvoluee_noeud fin_list_GrandEvoluee_noeud
# tableau de ddl aux elements a visualiser, un par maillage
debut_tableau_ddl_aux_elements fin_tableau_ddl_aux_elements
# tableau de grandeurs evoluees aux elements a visualiser, un par maillage
deb_list_GrandEvoluee_element fin_list_GrandEvoluee_element
# tableau de grandeurs particulieres aux elements a visualiser, un par maillage
deb_list_GrandParticuliere_element fin_list_GrandParticuliere_element
fin_isovaleur_Gmsh # mot cle de fin des parametres pour les isovaleurs
# ----------------------------- definition des parametres de deformee: ----------------
debut_deformee # un mot cle de debut de liste
actif 0 # <0 ou 1> indique si l'ordre est actif ou non
# definition des alertes: deb_list_alerte
# un mot clef de debut
# puis deux nombres: un mini et un maxi, et un nom
# un mot clef de fin: fin_list_alerte
deb_list_alerte
fin_list_alerte
fin_deformee # un mot cle de fin
# ----------------------------- 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)
tous_les_increments fin_list_increment
# ----------------------------- choix des maillages a visualiser: ----------------
# la liste est facultative, par defaut la visualisation concerne le premier maillage
debut_choix_maillage # un mot cle de debut,
actif 0 # <0 ou 1> indique si l'ordre est actif ou non
# une liste d'entiers , puis <fin_choix_maillage>, sur une meme ligne
1 fin_choix_maillage
fin_visualisation_Gmsh
# =================================================================================
# || fin de la visualisation Gmsh ||
# =================================================================================
fin_fichier_commande_visu # <<<<<< le mot cle <fin_fichier_commande_visu> permet
# l'arret de la lecture des commandes, apres ce mot cle, aucune commande n'est lu, de plus
# sans le mot cle de fin de fichier, le fichier n'est pas valide
###############################################################################################

View file

@ -0,0 +1,159 @@
#######################################################################
# #
# | | ==== === ==== ==== | | | | #
# | | | | | | / | | | | #
# |====| |=== === |=== / |====| ------- ------- #
# | | | | \ | / | | | | #
# | | ==== | \ ==== ==== | | | | #
# #
#######################################################################
# Copyright (c) 1997-2008 Gerard Rio, gerard.rio@univ-ubs.fr #
# All rights reserved. http://www-lg2m.univ-ubs.fr/~rio #
# Certification IDDN.FR.010.0106078.000.R.P.2006.035.20600 #
#######################################################################
#######################################################################
# Fusion des éléments supperposés #
#######################################################################
#---------------------------------------------------#
# Definition de la dimension de travail (1, 2 ou 3) #
#---------------------------------------------------#
dimension 3
#------------------------------------------------------#
# Definition du niveau de commentaires (entre 0 et 10) #
#------------------------------------------------------#
niveau_commentaire 3
TYPE_DE_CALCUL
#----------------------------------------------------------#
# Definition du type de calcul ou des utilitaires utilises #
#----------------------------------------------------------#
utilitaires avec plus fusion_elements
PARA_TYPE_DE_CALCUL
#-------------------------------------#
# Definition des parametres de calcul #
#-------------------------------------#
#-----------------------------------------------#
# Importation et fusion des mailllages utilises #
#-----------------------------------------------#
< cube_soude.her
< cube_soude.lis
#-------------------------------------#
# Definition facultative de courbe 1D #
#-------------------------------------#
les_courbes_1D ------------
c_charge COURBEPOLYLINEAIRE_1_D
Debut_des_coordonnees_des_points
Coordonnee dim= 2 0. 0.
Coordonnee dim= 2 1. 20.
Fin_des_coordonnees_des_points
choix_materiaux
#----------------------------------------------------------#
# Definition des materiaux associes aux maillages utilises #
#----------------------------------------------------------#
# Elements | Materiau #
#-----------------------#
E_tout acier
materiaux ----------
#-----------------------------#
# Nom Materiau | Loi utilisee #
#-----------------------------#
acier ISOELAS # Loi lineaire elastique 3D
#------------------------------------#
# Module Young (MPa) | Coeff Poisson #
#------------------------------------#
210000. 0.28
masse_volumique -----------
E_tout 8e-09 # (T/mm^3)
#-------------------------------------#
# Definition des charges et bloquages #
#-------------------------------------#
charges ------------
#------------------------------------------------------#
# Ref noeud | Type de charge | Valeurs (N) #
#------------------------------------------------------#
blocages ------------
#-----------------------#
# Ref noeud | Bloquages #
#-----------------------#
N_to UX UY UZ
controle ------------
#----------------------------------#
# Reglage des parametres de calcul #
#----------------------------------#
# PARAMETRE | VALEUR #
#--------------------#
DELTAtMAXI 1
TEMPSFIN 1
DELTAt 1
ITERATIONS 12
PRECISION 5e-3
MAXINCRE 20000000
SAUVEGARDE 0
para_pilotage_equi_global ------------
#------------------------------------#
# PARAMETRE | VALEUR #
#------------------------------------#
FACTEUR_DIMINUTION 5
FACTEUR_AUGMENTATION 5
#NB_BONNE_CONVERGENCE 1000
#INIT_COMP_TANGENT_SIMPLE -1
#SUR_SOUS_RELAXATION 1.2
NORME_MAXI_INCREMENT 0.5
NB_CYCLE_CONTROLE_RESIDU 4 #
PLAGE_CONTROLE_RESIDU 1 # si au bout de 4 iterations, on a toujours pas de diminution du rÈsidue => divergence
CAS_JACOBIEN_NEGATIF 1#2 # jacobien nÈgatif => divergence
VAR_MAXI_JACOBIEN 4#1.5 # au dessus de 20% de variation on considËre qu'il y a divergence
INIT_INCRE_AVEC_PAS_PREC 1
para_energie ------------
#----------------------------#
# PARAMETRE | VALEUR #
#----------------------------#
#NB_INCR_CAL_ENERG 1
#AFFICHE_INCR_ENERGIE 1
para_affichage ------------
#----------------------------------#
# PARAMETRE | VALEUR #
#----------------------------------#
FREQUENCE_AFFICHAGE_INCREMENT 1
FREQUENCE_AFFICHAGE_ITERATION 1
FREQUENCE_SORTIE_FIL_DU_CALCUL 1
para_syteme_lineaire
#------------------------#
# PARAMETRE | VALEUR #
#------------------------#
TYPE_MATRICE BANDE_SYMETRIQUE_LAPACK
TYPE_RESOLUTION GAUSS
resultats pas_de_sortie_finale_
#---------------------------
# PARAMETRE | VALEUR |
#---------------------------
COPIE 0
_fin_point_info_ ----------

View file

@ -0,0 +1,236 @@
#!/usr/bin/perl
use strict;
use warnings;
###############################################################################################
# Script pour une comparaison entre deux fichiers de même extension #
# Auteur: Erwan KERGOURLAY #
# Script qui compare un fichier de références avec le fichier résultat sortit par Herezh #
###############################################################################################
my $version = "1.";
#------------------- écriture de l'entete à l'écran -----------------#
print ("\n");
print ("\n" . '#############################################################################');
print ("\n" . '# #');
print ("\n" . '# comparaison.pl #');
print ("\n" . '#############################################################################');
print ("\n" . '# licence GPL, erwan.kergourlay@univ-ubs.fr #');
print ("\n" . '# #');
print ("\n" . '# version '."$version".' #');
print ("\n" . '#############################################################################');
print ("\n\n\n");
#------------------- fin écriture de l'entete à l'écran -----------------#
my $HZ=$ARGV[0];
print("La version d'herezh testée est: $HZ \n");
#------------------- déclaration des variables -----------------#
my $valeur;
#**Déclaration des variables qui contiennent les fichiers de références**#
#------------------------------------------------------------------------#
my $fichier_her_ref = "cube_soude_nevez.her.ref1";
my $fichier_lis_ref = "cube_soude_nevez.lis.ref1";
#------------------------------------------------------------------------#
#**Déclaration des variables qui contiennent les fichiers résultats sortis par Herezh**#
#------------------------------------------------------------------------#
#**Avec vérification que le fichier existe, sinon une erreure est générée et la comparaison ne peut pas être faites**#
#**Utilisation de l'opérateur de comparaison de chaînes de caractère**#
#------------------------------------------------------------------------#
my $fichier_her_test = "cube_soude_nevez.her";
my $fichier_lis_test = "cube_soude_nevez.lis";
if( -e "$fichier_her_test" && -e "$fichier_lis_test") #commande -e permet de voir si le fichier existe
{
#print("Les fichiers .her et .lis ont été créés lors du test de la version d'Herezh \n");
$valeur=0;
}
else
{
#print("Les fichiers .her et .lis n'ont pas été créés lors du test de la version d'Herezh \n");
$valeur=1;
}
#**Déclaration des fichiers temporaires*#
#------------------------------------------------------------------------#
my $fichier_temp_her_ref = "fichier_temp_her_ref.txt";
my $fichier_temp_her_test = "fichier_temp_her_test.txt";
my $fichier_temp_lis_ref = "fichier_temp_lis_ref.txt";
my $fichier_temp_lis_test = "fichier_temp_lis_test.txt";
#------------------- fin déclaration des variables -----------------#
#------------------- programme de comparaison -----------------#
if($valeur==0)
{
#---On commence par faire une lecture du fichier .her de référence et le fichier .her de test---#
#---On extrait de ces fichiers uniquement les parties données puis on va les comparer entre-elles par rapport à des fichiers temporaires---#
open (HER_REF, "$fichier_her_ref");
open (HER_TEST, "$fichier_her_test");
open (FICHIER_TEMP_HER_REF,">$fichier_temp_her_ref");
open (FICHIER_TEMP_HER_TEST,">$fichier_temp_her_test");
while(<HER_REF>)
{
my $ligne_ref = $_; #on déclare une variable qui va sauvegarder la ligne en cours
chomp($ligne_ref); #on retire à la fin de cette ligne, le retour à la ligne
$ligne_ref=~ s/^[ \t]+//mg; #on supprimme toutes les combinaisons de tabulation et d'espace
#Si on n'a pas de '#' et 'noeuds' et 'elements', la condition est validée
if(index($ligne_ref,'#') == -1 && index($ligne_ref,'noeuds') == -1 && index($ligne_ref,'elements') == -1)
{
my @tab_ref = split (/\s+/,$ligne_ref);
if(defined($tab_ref[0]))
{
print FICHIER_TEMP_HER_REF ("@tab_ref \n");
}
}
}
close FICHIER_TEMP_HER_REF;
close HER_REF;
while(<HER_TEST>)
{
my $ligne_test = $_;
chomp($ligne_test);
$ligne_test=~ s/^[ \t]+//mg;
if(index($ligne_test,'#') == -1 && index($ligne_test,'noeuds') == -1 && index($ligne_test,'elements') == -1)
{
my @tab_test = split (/\s+/,$ligne_test);
if(defined($tab_test[0]))
{
print FICHIER_TEMP_HER_TEST ("@tab_test \n");
}
}
}
close FICHIER_TEMP_HER_TEST;
close HER_TEST;
#---On commence par faire une lecture du fichier .lis de référence et le fichier .lis de test---#
#---On extrait de ces fichiers uniquement les parties données puis on va les comparer entre-elles par rapport à des fichiers temporaires---#
open (LIS_REF, "$fichier_lis_ref");
open (LIS_TEST, "$fichier_lis_test");
open (FICHIER_TEMP_LIS_REF,">$fichier_temp_lis_ref");
open (FICHIER_TEMP_LIS_TEST,">$fichier_temp_lis_test");
while(<LIS_REF>)
{
my $ligne_ref = $_; #on déclare une variable qui va sauvegarder la ligne en cours
chomp($ligne_ref); #on retire à la fin de cette ligne, le retour à la ligne
$ligne_ref=~ s/^[ \t]+//mg; #on supprimme toutes les combinaisons de tabulation et d'espace
#Si on n'a pas de '#' et 'noeuds' et 'elements', la condition est validée
if(index($ligne_ref,'#') == -1)
{
my @tab_ref = split (/\s+/,$ligne_ref);
if(defined($tab_ref[0]))
{
print FICHIER_TEMP_LIS_REF ("@tab_ref \n");
}
}
}
close FICHIER_TEMP_LIS_REF;
close LIS_REF;
while(<LIS_TEST>)
{
my $ligne_test = $_;
chomp($ligne_test);
$ligne_test=~ s/^[ \t]+//mg;
if(index($ligne_test,'#') == -1)
{
my @tab_test = split (/\s+/,$ligne_test);
if(defined($tab_test[0]))
{
print FICHIER_TEMP_LIS_TEST ("@tab_test \n");
}
}
}
close FICHIER_TEMP_LIS_TEST;
close LIS_TEST;
#---On verifie si les deux fichiers .her sont identiques---#
system ("cmp $fichier_temp_her_test $fichier_temp_her_ref");
if ( $? == 0 )
{
print("Les deux fichiers .her sont identiques\n");
$valeur=$valeur+2; #on ajoute 2 dans le cas où le fichier .her est correct
}
elsif ( $? != 0 )
{
print("Les deux fichiers .her sont différents\n");
$valeur=$valeur+1; #on ajoute 1 dans le cas où le fichier .her est incorrect
}
#---On verifie si les deux fichiers .lis sont identiques---#
system ("cmp $fichier_temp_lis_test $fichier_temp_lis_ref");
if ( $? == 0 )
{
print("Les deux fichiers .lis sont identiques\n");
$valeur=$valeur+3; #on ajoute 3 dans le cas où le fichier .lis est correct
}
elsif ( $? != 0 )
{
print("Les deux fichiers .lis sont différents\n");
$valeur=$valeur+1; #on ajoute 1 dans le cas où le fichier .lis est incorrect
}
}
#------------------- Fin programme de comparaison -----------------#
#------------------- Bilan comparaison fichier -----------------#
#----Remarques----#
# Si valeur=1, alors les nouveaux fichiers .her et .lis n'ont pas été créés.
# Si valeur=2, alors le fichier .her et le fichier .lis sont incorrects.
# Si valeur=3, alors le fichier .her est correct mais le fichier .lis est incorrect.
# Si valeur=4, alors le fichier .her est incorrect mais le fichier .lis est correct.
# Si valeur=5, alors les deux fichiers sont corrects
#----Fin remarques----#
if($valeur==1)
{
print("Les fichiers $fichier_her_test et $fichier_lis_test n'ont pas été créés avec la version d'herezh testée: $HZ\n");
print ("resultat verification: ECHEC\n");
}
elsif($valeur==2)
{
print("Le fichier $fichier_her_test a bien été créé mais son contenu est différent du fichier $fichier_her_ref et le fichier $fichier_lis_test a bien été créé mais son contenu est différent du fichier $fichier_lis_ref\n");
}
elsif($valeur==3)
{
print("Le fichier $fichier_her_test a bien été créé et son contenu est similaire au fichier $fichier_her_ref mais le fichier $fichier_lis_test a bien été créé mais son contenu est différent du fichier $fichier_lis_ref\n");
print ("resultat verification: ECHEC\n");
}
elsif($valeur==4)
{
print("Le fichier $fichier_her_test a bien été créé mais son contenu est différent du fichier $fichier_her_ref et le fichier $fichier_lis_test a bien été créé et son contenu est similaire au fichier $fichier_lis_ref\n");
print ("resultat verification: ECHEC\n");
}
elsif($valeur==5)
{
print("Le fichier $fichier_her_test a bien été créé et son contenu est similaire au fichier $fichier_her_ref et le fichier $fichier_lis_test a bien été créé et son contenu est similaire au fichier $fichier_lis_ref\n");
print ("resultat verification: OK\n");
}
#------------------- Fin bilan comparaison fichier -----------------#
#------------------- Ménage dans le répertoire -----------------#
system ("rm -f $fichier_her_test $fichier_lis_test $fichier_temp_her_test $fichier_temp_her_ref $fichier_temp_lis_test $fichier_temp_lis_ref");