2
0
Fork 0

ajout test en attente debug Test_R_LOI_VIA_UMAT_MELANGE_THERMO_DEPENDANT/ : Segmentation fault pour une loi des melanges thermodependante dans le cas d une UMAT (voir README pour la procedure a suivre); petit commentaire : comme piste pour chercher le bug, je pensais au fait d utiliser une variable TEMP aux noeuds dans le cas de l element special POINT CONSTANT

This commit is contained in:
troufflard 2016-10-12 22:15:08 +00:00
parent c087521b18
commit 8663b01f93
11 changed files with 782 additions and 1 deletions

View file

@ -90,7 +90,7 @@ charges
blocages
N_tout TEMP 0
N_tout 'TEMP=0'
controle

View file

@ -0,0 +1,116 @@
###############################################################################################
# Fichier de commande pour la visualisation elements finis #
# Herezh++ V6.687 #
# Copyright (c) 1997-2015, Gerard Rio (gerard.rio@univ-ubs.fr) http://kleger.univ-ubs.fr/Herezh/ #
# http://www-lg2m.univ-ubs.fr #
###############################################################################################
debut_fichier_commande_visu # >>>>>> le mot cle: <debut_fichier_commande_visu>
# permet au programme de se positionner au debut du fichier, il est indispensable
# =================================================================================
# || ***** demande d'une visualisation maple: ***** ||
# =================================================================================
# un mot cle de debut (debut_visualisation_maple)
# un mot cle de fin ( fin_visualisation_maple)
# la seule presence de ces deux mots cle suffit a activer la visualisation maple
debut_visualisation_maple
# ----------------------------- definition de la liste des increments a balayer: ----------------
debut_list_increment # un mot cle de debut de liste
actif 1 # <0 ou 1> indique si l'ordre est actif ou non
# une liste d'entier separee par des blancs, ou le mot cle (tous_les_increments)
# un mot cle de fin de liste ( fin_list_increment)
dernier_increment fin_list_increment
# ----------------------------- choix des maillages a visualiser: ----------------
# la liste est facultative, par defaut la visualisation concerne le premier maillage
debut_choix_maillage # un mot cle de debut,
actif 0 # <0 ou 1> indique si l'ordre est actif ou non
# une liste d'entiers , puis <fin_choix_maillage>, sur une meme ligne
1 fin_choix_maillage
# ----------------------------- definition des grandeurs a visualiser (maple): ----------------
debut_grandeurs_maple # un mot cle de debut (debut_grandeurs_maple),
actif 1 # <0 ou 1> indique si l'ordre est actif ou non
# les grandeurs globales (energie, puissance ....) un mot cle de debut, le nom des grandeurs puis un mot de fin
debut_grandeurs_globales fin_grandeurs_globales
# ensuite pour chaque maillage:,
# le numero du maillage <un entier>,
# les infos pour la visualisation eventuelle des torseurs de reaction,
# les infos pour la visualisation eventuelle aux noeud,
# - tout d'abord les ddl principaux (position, deplacements, temperature etc.)
# - puis les ddl etendus et particulieres qui peuvent representer des grandeurs diverses
# les infos pour la visualisation eventuelle aux elements,
# - tout d'abord les grandeurs generiques (deformations, contraintes etc.)
# - puis les grandeurs particulieres, par exemple specifique a une loi de comp ou une mesure de def
# enfin un mot cle de fin ( fin_grandeurs_maple)
1 # le numero de maillage
# les torseurs de reaction: un mot cle de debut: debut_list_torseur_reaction
# une liste de nom <chaine de caracteres >, puis <fin_list_torseur_reaction>
debut_list_torseur_reaction fin_list_torseur_reaction
debut_liste_ddl_et_noeud # ** debut des ddl principaux aux noeuds
# debut de la liste de noeuds, puis une liste de numero de noeud <entier>, puis <fin_list_noeud>
deb_list_noeud fin_list_noeud
# debut de la liste des ref de noeuds, puis une liste de nom <chaine de caracteres >, puis <fin_list_ref_noeud>
deb_list_ref_noeud fin_list_ref_noeud
# debut de la liste des ddl a considerer aux noeuds, (une liste de ddl), puis <fin_list_ddl_noeud>
deb_list_ddl_noeud fin_list_ddl_noeud
type_sortie_ddl_retenue= 0
# debut de la liste des ddl etendus a considerer aux noeuds, (une liste de ddl), puis <fin_list_ddl_etendu_noeud>
deb_list_ddl_etendu_noeud fin_list_ddl_etendu_noeud # fin des ddl etendu aux noeuds
# debut de la liste des grandeurs particulieres a considerer aux noeuds, (une liste de string), puis <fin_list_GrandParticuliere_noeud>
deb_list_GrandParticuliere_noeud fin_list_GrandParticuliere_noeud # fin des grandeurs particulieres aux noeuds
fin_liste_ddl_et_noeud # fin des grandeurs aux noeuds
debut_liste_ddl_ptinteg # ** debut des grandeurs aux elements
# debut de la liste des elements et points d'integration, une liste de (un element, un numero de pt d'integ), puis <fin_list_NbElement_NbPtInteg>
deb_list_NbElement_NbPtInteg 1 1 fin_list_NbElement_NbPtInteg
# debut de la liste des ref d'elements, puis une liste de: nom <chaine de caracteres > + numero d'integ, puis <fin_list_ref_element>
deb_list_ref_element fin_list_ref_element
# debut de la liste des ref de ptinteg d'elements, puis une liste de: nom <chaine de caracteres > puis <fin_list_ref_ptinteg_element>
deb_list_ref_ptinteg_element fin_list_ref_ptinteg_element
# debut de la liste des ddl a considerer pour les elements, (une liste de ddl), puis <fin_list_ddl_element>
deb_list_ddl_element EPS11 EPS22 EPS33 SIG11 fin_list_ddl_element # fin de la liste de ddl a considerer pour les elements
# debut de la liste des grandeurs particulieres a considerer pour les elements, (une liste de string), puis <fin_list_GrandParticuliere_element>
deb_list_GrandParticuliere_element fin_list_GrandParticuliere_element # fin des grandeurs particulieres aux elements
# tableau de grandeurs evoluees aux elements a visualiser, un par maillage
deb_list_GrandEvoluee_element fin_list_GrandEvoluee_element
fin_liste_ddl_ptinteg # fin des grandeurs aux elements
# informations particuliere dans le cas ou il y a une animation
# type_xi indique si oui ou non les grandeurs a tracer sont aux noeuds (sinon c'est au elements)
# x1 et x2 indiquent les noms des ddls des grandeurs en x et y. accroi_x1 et accroi_x2 indiquent
# si oui ou non x1 et x2 represente l'accroissement entre 0 et t de la grandeur ou bien la grandeur elle meme.
debut_info_particulier grandeur_au_noeud? 1 x1= NU_DDL x2= NU_DDL accroi_x1= 0 accroi_x2= 1 fin_info_particulier
# un parametre de pilotage du style de sortie
parametre_style_de_sortie 1
# un parametre indiquant si les tenseurs sont en absolue (rep 1) ou suivant un repere ad hoc
# (tangent pour les coques, suivant la fibre moyenne pour les element 1D )
tenseur_en_absolue_ 0
fin_grandeurs_maple # fin des grandeurs a visualiser au format maple
# ----------------------------- definition des parametres d'animation: ----------------
debut_animation # un mot cle de debut de liste (debut_animation)
actif 0 # <0 ou 1> indique si l'ordre est actif ou non
# des parametres avec des valeurs: (sur une meme ligne)
cycleInterval 8 # cycleInterval <un reel> (indique le temps en seconde du cycle de l'animation)
fin_animation # un mot cle de fin
fin_visualisation_maple
# =================================================================================
# || fin de la visualisation maple ||
# =================================================================================
fin_fichier_commande_visu # <<<<<< le mot cle <fin_fichier_commande_visu> permet
# l'arret de la lecture des commandes, apres ce mot cle, aucune commande n'est lu, de plus
# sans le mot cle de fin de fichier, le fichier n'est pas valide
###############################################################################################

View file

@ -0,0 +1,74 @@
dimension 3
niveau_commentaire 3
TYPE_DE_CALCUL
non_dynamique avec plus lectureCommandesVisu
< cube_1elt_npti8.her
< cube_1elt_npti8.lis
les_courbes_1D
choix_materiaux
E_tout MAT_UMAT
materiaux
MAT_UMAT LOI_VIA_UMAT
nom_de_la_loi= MAT categorie= CAT_MECANIQUE dim_loi= 3
fin_loi_Umat
masse_volumique
E_tout 1
charges
blocages
#traction uniaxiale suivant X par deplacement impose
N_droit UX
N_arriere UY
N_bas UZ
N_gauche 'UX= 0.01'
N_tout 'TEMP=-10'
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_

View file

@ -0,0 +1,54 @@
#!/usr/bin/env perl
use strict;
use warnings;
use English;
use File::Basename;
use Cwd;
my $NOM_PROG = basename $PROGRAM_NAME;
#
#
# le but de ce script est de tuer (kill -9) le processus Herezh Umat_Hz.info
# remarque : l executable Herezh a ete lance par le script .pretrait via
# un lien symoblique dont le nom le rend facilement reperable pour faire
# un kill du processus
#
#
#
#chemin absolu vers l executable Herezh
my $hzchemin = shift(@ARGV);
#nom du fichier .info
my $finfo = shift(@ARGV);
#nom du fichier .log
my $flog = shift(@ARGV);
#lien symbolique qui a ete utilise pour lancer le processus Herezh UMAT dans le script .pretrait
# rq : le nom de ce lien a ete cree de la maniere ci-dessous (voir script .pretrait)
# c est-a-dire en utilisant le nom du repertoire courant qui est unique
my $lien_symbolique_HZ = basename $hzchemin;
$_ = basename cwd;
$lien_symbolique_HZ = $_.'_'.$lien_symbolique_HZ;
#recuperation du processus Herezh UMAT (par reconnaissance de la chaine $lien_symbolique_HZ)
my @processus = qx(ps -U $ENV{USER} -o pid,%cpu,command | grep $lien_symbolique_HZ | grep -v grep);
#si ce processus tourne encore, on le kill
if($#processus != -1) {
foreach my $processus (@processus) {
next if(not $processus =~ /^\s*(\d+)/);
my $pid = $1;
kill("KILL", $pid);
print "Attention (prog:$NOM_PROG) : le processus Herezh Umat_HZ.info tournait encore (suppression par kill -9)...\n\n";
}
}
#reussite du script
print "resultat posttrait : OK\n";

View file

@ -0,0 +1,105 @@
#!/usr/bin/env perl
use strict;
use warnings;
use English;
use File::Basename;
use Cwd;
my $NOM_PROG = basename $PROGRAM_NAME;
#
#
# les buts de ce script sont :
# 1- creer les pipes nommes pour le dialogue Herezh-Herezh (mkfifo)
# 2- lancer le processus Herezh Umat_HZ.info (qui sert d UMAT pour le vrai calcul Herezh de ce test)
# 3- s assurer que le processus Umat_HZ.info fonctionne avant de quitter
#
# remarque1 : on lance le processus Herezh Umat_HZ.info via le lien symbolique $lien_symbolique_HZ
# dont le nom sera facile a reperer pour le script de post-traitement .posttrait
# (car le script .posttrait aura pour but de tuer ce processus apres le calcul LOI_VIA_UMAT_1.info)
#
# remarque2 : le processus Herezh Umat_HZ.info est lance dans un processus fils (fork) pour pouvoir le laisser
# tourner en fond de tache et quitter ce script
#
#chemin absolu vers l executable Herezh
my $hzchemin = shift(@ARGV);
#nom du fichier .info
my $finfo = shift(@ARGV);
#forcer a vider le buffer (autoflush)
$| = 1;
#creation des pipes nommes (mkfifo)
system("mkfifo -m+wr Umat_envoi_Hz");
if($!) {
print "\nErreur (prog:$NOM_PROG) : probleme dans la creation du pipe nomme Umat_envoi_Hz ($!)...\n\n";
print "resultat pretrait : ECHEC\n";
exit;
}
system("mkfifo -m+wr Umat_reception_Hz");
if($!) {
print "\nErreur (prog:$NOM_PROG) : probleme dans la creation du pipe nomme Umat_reception_Hz ($!)...\n\n";
print "resultat pretrait : ECHEC\n";
exit;
}
#changement d extension (suppression de l extension .a_renommer pour faire de ce fichier un .info exploitable)
system("mv -f Umat_HZ.info.a_renommer Umat_HZ.info");
#lien symbolique vers Herezh pour rendre le nom de cette commande unique
# rq : on utilise le nom du repertoire courant qui est unique et qui sera
# facile a reperer plus tard dans le script .posttrait (voir script .posttrait)
my $lien_symbolique_HZ = basename $hzchemin;
$_ = basename cwd;
$lien_symbolique_HZ = $_.'_'.$lien_symbolique_HZ;
system("ln -s $hzchemin $lien_symbolique_HZ");
#lancement du processus Herezh Umat dans un processus fils (fork)
# rq : une fois que le calcul rend la main, il cree le fichier $lien_symbolique_HZ.rendu_la_main qui servira plus tard
system("rm -f $lien_symbolique_HZ.rendu_la_main");
my $pid_UMAT_HZ = fork();
#
#le bloc suivant ne concerne que le processus fils
if($pid_UMAT_HZ == 0) {
system("$lien_symbolique_HZ -f Umat_HZ.info");
system("echo 1 > $lien_symbolique_HZ.rendu_la_main");#creation d un fichier pour signaler que le calcul a rendu la main
exit;
}
#apres un temps de pause, on regarde si le processus Herezh tourne
select(undef, undef, undef, 0.5);
my $cpt_probleme = 0;
while(join('', qx(ps | grep $lien_symbolique_HZ | grep -v grep)) eq '') {
select(undef, undef, undef, 0.5);
$cpt_probleme++;
if($cpt_probleme == 50) {
print "\nErreur (prog:$NOM_PROG) : le processus Herezh Umat_HZ.info ne se lance pas (ou alors s est arrete prematurement)...\n\n";
print "resultat pretrait : ECHEC\n";
exit;
}
}
#apres un nouveau temps de pause, on regarde si le fichier $lien_symbolique_HZ.rendu_la_main a ete cree
# si oui, ca veut dire que le processus Herezh Umat s est arrete => donc il y a un probleme
select(undef, undef, undef, 0.5);
if(-e "$lien_symbolique_HZ.rendu_la_main") {
print "\nErreur (prog:$NOM_PROG) : le processus Herezh Umat_HZ.info s est peut-etre arrete prematurement...\n\n";
print "resultat pretrait : ECHEC\n";
exit;
}
#reussite du script
print "resultat pretrait : OK\n";

View file

@ -0,0 +1,85 @@
#
#
# Remarque : ce fichier est une simple recopie du .maple.ref1 du test :
# FONCTION_UNIQUE/LOI_DE_COMPORTEMENT/LOI_VIA_UMAT/Test_R_LOI_VIA_UMAT_1/
#
#
#
#fichier au format maple6
###############################################################################################
# Visualisation elements finis : Herezh++ V6.743 #
# Copyright (c) 1997-2015, Gerard Rio (gerard.rio@univ-ubs.fr) http://kleger.univ-ubs.fr/Herezh/ #
# http://www-lg2m.univ-ubs.fr #
###############################################################################################
# entete des donnees : informations gererales: on trouve successivement:
# >> le nombre de grandeurs globales (peut etre nul) suivi des identificateurs
# precedes du numero de colonne entre crochet
# >> le nombre de maillages m, et dimension de l'espace de travail
# puis pour chaque maillage,
# >> le nombre de torseurs de reaction (peut etre nul), le nombre total de reel qui va etre ecrit
# correspondant aux composantes des torseurs, puis les noms de ref associee suivi des positions
# des composantes entre crochet accolees a un identificateur: R pour reaction, M pour moment
# puis pour chaque maillage
# >> le nombre de noeud n (peut etre nul) ou il y a des grandeurs en sortie ,
# puis le nombre des grandeurs p1 correspondantes, la position entre crochet des coordonnees
# et enfin l'idendificateur de ces grandeurs(p1 chaines de caractere)
# precedes du numero de colonne correspondant entre crochet
# puis pour chaque maillage
# >> le nombre de couples element-pt_integ (peut etre nulle) ou il y a des grandeurs en sortie ,
# les grandeurs aux elements sont decomposees en 2 listes: la premiere de quantite P2 correspondant
# a des grandeurs generiques, la seconde de quantite P3 corresponds aux grandeurs specifiques,
# on trouve donc a la suite du nombre d'element: le nombre P2, suivi de P2 identificateurs de ddl
# chacun precedes du numero de colonne entre crochet
# puis le nombre P3, suivi de P3 identificateurs+categorie+type (chaines de caracteres),
# suivi entre crochet, de la plage des numeros de colonnes, correspondant
# chacun sur une ligne differentes
# ==== NB: pour les grandeurs specifique tensorielle: exemple d'ordre en 2D:
# tenseur symetrique, A(1,1) A(2,1) A(2,2), non symetrique A(1,1) A(1,2) A(2,1) A(2,2)
# en 3D c'est: tenseur symetrique, A(1,1) A(2,1) A(2,2) A(3,1) A(3,2) A(3,3)
# non symetrique A(1,1) A(1,2) A(2,1) A(2,2) A(2,3) A(3,1) A(3,2) A(3,3)
# ** dans le cas ou il n'y a qu'un seul increment en sortie, pour les grandeurs aux noeuds et aux elements,
# ** les informations peuvent etre decoupees selon: une ligne = un noeud, et le temps n'est pas indique
# ** ( cf: parametre_style_de_sortie = 0)
#====================================================================
#|| recapitulatif des differentes grandeurs par colonne ||
#====================================================================
#---------------------------------- grandeur globales ------------------------------------
#0 (nombre de grandeurs globales)
#---------------------------------- maillage et dimension --------------------------------
#1 3 (nombre de maillages et dimension)
#---------------------------------- torseurs de reactions --------------------------------
#0 0 (nombre de torseurs et nombre total de grandeurs associees)
#
#---------------------------------- grandeurs aux noeuds --------------------------------
#0 0 (nombre de noeuds, nombre total de grandeurs associees)
#---------------------------------- grandeurs aux elements ------------------------------
#1 4 00 (nombre total d'elements, nombre totale de grandeurs associees, nombre de grandeurs particulieres, nombre de grandeurs tensorielles)
# element_1 pt_integ_1: [2]X [3]Y [4]Z [5] EPS11 [6] EPS22 [7] EPS33 [8] SIG11
#
#
#====================================================================
#|| fin du recapitulatif des differentes grandeurs ||
#====================================================================
# ensuite les donnees sont organisees sur differentes lignes, chaques lignes correspondant
# a un calcul (par exemple un pas de temps), sur chaque ligne il y a m enregistrement, chacun
# correspondant a un maillage. On trouve pour chaque enregistrement successivement :
# s'il y a des grandeurs globales: le temps puis les grandeurs globales,
# puis s'il y a des torseurs de reaction :
# de nouveau le temps, les composantes de la resultante puis les composantes du moments
# donc en 1D -> 1 reels (resultante), en 2D -> 3 reels (resultante 2, moment 1) et en 3D 6 reels
# puis s'il y a des grandeurs aux noeuds: de nouveau le temps
# les coordonnees a t du premier noeud suivi des p1 grandeurs correspondant au premier noeud
# puis les coordonnees du second noeud, les p1 grandeurs etc. pour tous les noeuds
# puis s'il y a des grandeur aux elements:
# le temps, puis les coordonnees a t du point d'integration d'un element (pour les grandeurs generiques)
# suivi des p2 grandeurs correspondantes puis les coordonnees a t du point d'integration
# correspondant aux grandeurs specifiques suivi des p3 grandeurs correspondantes
# puis les coordonnees d'un second point d'integration d'un element, les p2 grandeurs
# etc. pour tous les points d'integration - element
1.000000000000e+00 2.134381140592e-01 7.863507681450e-01 7.863507681450e-01 9.851975296539e-03 -2.960258742077e-03 -2.960258742078e-03 2.067784167480e+03

View file

@ -0,0 +1,87 @@
------------------------------------------------------
Auteur
------------------------------------------------------
Julien Troufflard (troufflard@univ-ubs.fr)
------------------------------------------------------
Mots-cles
------------------------------------------------------
cube unitaire
traction uniaxiale
statique
non_dynamique
LOI_VIA_UMAT
thermo dependance
LOI_DES_MELANGES_EN_SIGMA
------------------------------------------------------
But du test
------------------------------------------------------
test d une loi de comportement externe LOI_VIA_UMAT dans le cas d un dialogue Herezh-Herezh pour une loi des mélanges gouvernée par la température
@@@@@@@@@@@@@@@@@
@@@ A EFFACER @@@
@@@@@@@@@@@@@@@@@
@
@ pour l instant, ce calcul ne tourne pas. Segmentation fault de la part du processus
@ Herezh UMAT.
@
@
@ pour reproduire le bug, c est plus simple et plus fiable de TRAVAILLER DANS UNE COPIE de ce
@ repertoire de test. Voici les commandes suivantes dans l ordre pour reproduire le bug :
@
@--------------------------------------------------------
@ preparation du calcul (A NE FAIRE QU UNE SEULE FOIS) :
@--------------------------------------------------------
@ 1) creation des pipes :
@ > tmp.creation_pipes.pl
@ 2) renommer le fichier Umat_HZ.info.a_renommer en Umat_HZ.info
@ 3) renommer le fichier .CVisu1 en .CVisu
@
@--------------------------------------------------------
@ debug du calcul :
@--------------------------------------------------------
@ 1) ouverture d un second terminal pour y lancer Herezh UMAT :
@ > HZppfast_Vn-1 -f Umat_HZ.info
@ 2) lancement du calcul principal dans le premier terminal :
@ > HZppfast_Vn-1 -f LOI_VIA_UMAT_MELANGE_THERMO_DEPENDANT.info
@
@ résultat => actuellement, avec la version 6.777, le processus UMAT renvoit Segmentation Fault
@
@--------------------------------------------------------
@ une fois le bug résolu
@--------------------------------------------------------
@ 1) on peut supprimer cette copie de travail
@ 2) on repasse dans le répertoire original
@ 3) le .maple.ref1 est deja pret, étant donné que c est sensé etre le meme calcul
@ qu un test déja existant dans la Batterie (voir ci-dessous rubrique "Informations sur les fichiers facultatifs")
@
@ 4) il suffit d effacer le fichier tmp.creation_pipes.pl et le repertoire est pret a etre transfere dans la batterie
@ dans le repertoire FONCTION_UNIQUE/LOI_DE_COMPORTEMENT/LOI_VIA_UMAT/
@
@@@@@@@@@@@@@@@@@
------------------------------------------------------
Description du calcul
------------------------------------------------------
traction uniaxiale suivant X sur un cube 1x1x1 (1 element HEXAEDRE LINEAIRE)
Loi de comportement obtenue par un dialogue Herezh-Herezh sous la forme d une loi externe UMAT. Cette loi est un mélange de 2 lois ISOELAS utilisant la variable TEMP (température) aux noeuds (valeur_aux_noeuds=1). La variation de température de -10 ne change pas la loi (mélange de 2 fois la meme loi ISOELAS). Il s agit juste d un test purement informatique d utilisation de la variable TEMP aux noeuds dans une loi des mélanges. Ceci dans le but de voir si la température aux noeuds est correctement traitée dans le cas de l element special "POINT CONSTANT" et d une UMAT.
-------------------------------------------------------
Informations sur les fichiers facultatifs
-------------------------------------------------------
le script .pretrait1 lance le calcul Umat_Hz.info (loi externe) et le script .posttrait1 se charge de tuer ce processus avant de finir le test (car ce processus ne s arrete pas tout seul).
A titre de remarque, étant donné que l on fait un mélange de 2 fois la meme loi ISOELAS E=210000 NU=0.3, ce test doit donner les memes résultats que le test FONCTION_UNIQUE/LOI_DE_COMPORTEMENT/LOI_VIA_UMAT/Test_R_LOI_VIA_UMAT_1. C est pourquoi le fichier .maple.ref1 ici présent est une simple recopie du .maple.ref1 de ce test. On vérifie donc indirectement que la loi des mélanges donne les memes résultats qu une simple loi. Cette remarque est rappelée dans l en-tete du .maple.ref1.
-------------------------------------------------------
Grandeurs de comparaison
-------------------------------------------------------
pour le point d integration 1 de l element 1 :
- deformations : EPS11 EPS22 EPS33
- contrainte : SIG11

View file

@ -0,0 +1,63 @@
#
# l extension .a_renommer sera supprimee
# pour faire de ce fichier un .info
# (pour eviter d avoir 2 fichiers .info
# au debut de ce test, car ce n est pas
# autorise)
#
#
dimension 3
niveau_commentaire 4
TYPE_DE_CALCUL
umat_abaqus
noeuds
1 NOEUDS
1 0 0 0
elements
1 ELEMENTS
1 POINT CONSTANT 1
choix_materiaux
E_tout MAT
materiaux
MAT LOI_DES_MELANGES_EN_SIGMA
grandeur_proportion= TEMP type_melange= 1 valeur_aux_noeuds= 1 somme_pondere_etendue_
A= 1. avec_fonction_proportion_
fonction_prop= COURBEPOLYLINEAIRE_1_D
Debut_des_coordonnees_des_points
Coordonnee dim= 2 9.999999 0.
Coordonnee dim= 2 10 0.
Coordonnee dim= 2 20 1.
Coordonnee dim= 2 20.000001 1.
Fin_des_coordonnees_des_points
ISOELAS
210000. 0.3
ISOELAS
210000. 0.3
fin_liste_lois_elementaires
masse_volumique
E_tout 1
charges
blocages
N_tout 'TEMP=0'
controle
SAUVEGARDE 1
resultats pas_de_sortie_finale_
COPIE 0
_fin_point_info_

View file

@ -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

View file

@ -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

View file

@ -0,0 +1,21 @@
#!/usr/bin/env perl
use strict;
use warnings;
use English;
use File::Basename;
use Cwd;
my $NOM_PROG = basename $PROGRAM_NAME;
#creation des pipes nommes (mkfifo)
system("mkfifo -m+wr Umat_envoi_Hz");
if($!) {
print "\nErreur (prog:$NOM_PROG) : probleme dans la creation du pipe nomme Umat_envoi_Hz ($!)...\n\n";
exit;
}
system("mkfifo -m+wr Umat_reception_Hz");
if($!) {
print "\nErreur (prog:$NOM_PROG) : probleme dans la creation du pipe nomme Umat_reception_Hz ($!)...\n\n";
exit;
}