
----------------------------------------
Description
----------------------------------------
comparaison entre un calcul Herezh et un calcul UMAT de type Abaqus-Herezh dans un cas 
de dilatation thermique pure :
      ISOHYPERBULK3 + dilatation thermique
        avec alphaT = 1.e-4 et un delta TEMP de 40C


 1) un calcul Herezh est present dans le repertoire calcul_HZ/ mais il ne sera pas comparable
    au cas Abaqus-Herezh via le fichier fortran
    car :
     la cinematique n est pas totalement imposee dans Herezh. et donc il itere plusieurs fois
     pour obtenir l equilibre. Dans le programme fortran de type Abaqus-Herezh, on ne peut
     simuler qu une seule iteration.


 2) dans le cas de l UMAT, on passe par le programme fortran UMAT_HZ.f faisant appel a Herezh (selon les
    etapes et explications ci-dessous).

    ce programme fortran permet de simuler une iteration de dilatation thermique pure. Il est prevu
    pour faire appel au choix soit a un materiau ISOHYPERBULK3 (MAT_ISOHYPER), soit a un equivalent
    en HYPO_ELAS3D (MAT_HYPO_ELAS).

    La situation en gros :

      Dans le cas de la dilatation thermique pure, Abaqus calcule une partie thermique de la deformation
    (eps_th). En l absence d autres conditions (ddl et chargements), il en deduit que la partie meca doit
    etre egale a la partie thermique au signe pres (eps_meca = -eps_th). Il demarre donc a l equilibre. Comme
    eps_meca sera negative, le materiau va reagir et renvoyer une contrainte negative. Contrainte negative
    qui va conduire le cube a se dilater pour s equilibrer en l absence d autres chargements.

      si on prend un materiau HYPO_ELAS3D, on a un bon resultat car il depend de DSTRAN 
   (partie meca de la deformation). Dans le cas de cet exemple fortran, un bon resultat veut 
    dire que l UMAT renvoie une contrainte negative d environ -36 MPa. 

      si on prend le materiau ISOHYPERBULK3, on obtient zero contrainte. a priori ISOHYPERBULK3
    ne depend pas de DSTRAN pour calculer la variation de volume, donc sans doute il depend 
    de DFGRD0 et DFGRD1 (gradient de tranfo a t et t+dt). Or, DFGRD0 et DFGRD1 ne distingue pas 
    la partie meca de la partie thermique. C est un gradient de transfo total (cinematique ?)
    Comme le cube demarre a l equilibre (eps_meca + eps_th = 0), on a DFGRD1 = DFGRD0, c est-a-dire
    aucune prediction d evolution au global.






----------------------------------------
A savoir pour tester
----------------------------------------

 le programme UMAT_HZ.f a quelques variables pour jouer avec :
     1) en tout debut de programme, on a la variable MATERL pour changer de materiau
          => choix entre le materiau avec ISOHYPERBULK3
             et un materiau equivalent de type HYPO_ELAS3D (meme module 3K)

     2) en tout debut de programme, les variables DTEMP et alpha_T permettent de modifier 
        l intensite de la dilatation
           DTEMP = increment de temperature
           alpha_T = coef dilatation thermique

     3) plus bas dans le programme, il y a egalement 3 lignes qui peuvent etre utiles
        (pour les trouver, faire cette recherche de texte : ACTIVER DFGRD1)

         il s agit d une astuce pour modifier le gradient de transfo et voir le resultat 
         que devrait donner ISOHYPERBULK i.e environ -35.78 MPa (voir les commentaires dans le programme)

 ATTENTION :
   a chaque changement de materiau, il faut :
    1) recompiler le programme fortran
    2) arreter et relancer le processus Herezh

 NB :
    il est inutile de changer le nom du materiau dans choix_materiaux du fichier 
  Herezh MAT_ISOHYPER/UMAT_MAT_ISOHYPER.info
  On le change dans le programme UMAT_HZ.f et Herezh pointe vers le bon quoiqu on mette
  dans choix_materiaux (curieux d ailleurs, et piegeux quand on ne sait pas et qu on essaye 
  en vain de tester differents materiaux par ce moyen)


----------------------------------------
Etapes pour simuler l UMAT :
----------------------------------------

1) configurer le repertoire MAT_ISOHYPER/ qui contient l UMAT Herezh
   => commande : ./configuration.pl
      (rq : ce script compile appelc_1.cc et cree les pipes dans
            le repertoire MAT_ISOHYPER/)

2) changer les parametres qu on veut dans UMAT_HZ.f 
   et compiler fichier fortran
   => commande : source src_compil
      (rq : creation de l executable UMAT_HZ)


3) lancer Umat
   => dans autre terminal :
        se placer dans le repertoire MAT_ISOHYPER/ et lancer :
          HZppfast_Vn-1 -f UMAT_MAT_ISOHYPER.info


4) lancer simulation d UMAT Abaqus : 
   => dans terminal d origine : ./UMAT_HZ

    (rq : cet executable rappelle quelques variables recues par l UMAT puis 
           affiche les contraintes obtenues pour SIG11, SIG22 et SIG33)



----------------------------------------
Resultat :
----------------------------------------

  1) affichage dans le cas MATERL = MAT_ISOHYPER :

     ---------------------
     Recu par l UMAT :
     ---------------------
     nom materiau :
       MATERL = MAT_ISOHYPER                                                                    
     partie meca increment deformation selon 11 :
       DSTRAN(1) =   -3.9999998989515007E-003
     gradient de transfo initial selon 1 :
       DFGRD0(1,1) =    1.0000000000000000     
     gradient de transfo final selon 1 :
       DFGRD1(1,1) =    1.0000000000000000     
 
     ---------------------
     Resultat UMAT :
     ---------------------
       SIG11 =    0.0000000000000000     
       SIG22 =    0.0000000000000000     
       SIG33 =    0.0000000000000000




  2) affichage dans le cas MATERL = MAT_HYPO_ELAS :

     ---------------------
     Recu par l UMAT :
     ---------------------
     nom materiau :
       MATERL = MAT_HYPO_ELAS                                                                    
     partie meca increment deformation selon 11 :
       DSTRAN(1) =   -3.9999998989515007E-003
     gradient de transfo initial selon 1 :
       DFGRD0(1,1) =    1.0000000000000000     
     gradient de transfo final selon 1 :
       DFGRD1(1,1) =    1.0000000000000000     
 
     ---------------------
     Resultat UMAT :
     ---------------------
       SIG11 =    -35.999999090563506     
       SIG22 =    -35.999999090563506     
       SIG33 =    -35.999999090563506


  3) affichage dans le cas 
         MATERL = MAT_ISOHYPER
       + activation des 3 lignes DFGRD1 (voir programme a la ligne : ACTIVER DFGRD1)

     ---------------------
     Recu par l UMAT :
     ---------------------
       nom materiau :
         MATERL = MAT_ISOHYPER                                                                    
       partie meca increment deformation selon 11 :
         DSTRAN(1) =   -3.9999998989515007E-003
       gradient de transfo initial selon 1 :
         DFGRD0(1,1) =    1.0000000000000000     
       gradient de transfo final selon 1 :
         DFGRD1(1,1) =   0.99600798944463653     
     
     ---------------------
     Resultat UMAT :
     ---------------------
       SIG11 =   -35.783999101477413     
       SIG22 =   -35.783999101477413     
       SIG33 =   -35.783999101477413
