Download umat01_ortho.dgibi

Back to the list

* fichier : umat01_ortho.dgibi
  'OPTI' 'ECHO' 0                              ;
  'OPTI' 'DIME' 3 'MODE' 'TRIDIM' 'ELEM' cu20  ;
  option epsilon 'LINEAIRE';
  f = 'MOT' 'FIN' ; l = 'MOT' 'LIST'           ;
*
*************************************************************
*   TEST DE VALIDATION DE L'ORTHOTROPIE POUR UN MODELE      *
* DE COMPORTEMENT "UTILISATEUR" DEFINI A L'EXTERNE VIA UMAT *
*             ----------------------------                  *
*                                                           *
*  MODELE DEFINI VIA UMAT                                   *
*    ELASTICITE ORTHOTROPE                                  *
*                                                           *
*  MAILLAGE:                                                *
*     EPROUVETTE CUBIQUE TOURNEE DE L'ANGLE ang_tour        *
*     AUTOUR DE L'AXE VERTCAL Z                             *
*                                                           *
*  REPERE D'ORTHOTROPIE INITIAL:                            *
*     DEFINI PAR L'ANGLE ang AUTOUR DE Z / REPERE GLOBAL    *
*                                                           *
*  CHARGEMENT:                                              *
*     DEPLACEMENT IMPOSE SELON LA DIRECTION Z SUR           *
*     LA FACE SUPERIEURE DU CUBE                            *
*************************************************************
*
* Geometrie
*
* ------------------------------------------
  XX = 1. ; YY = 1. ; ZZ = 1. ;
* ------------------------------------------
*
   VECZ = 0 0 ZZ   ;
*
  ang_tour = 30.            ;
  cosa     = 'COS' ang_tour ;
  sina     = 'SIN' ang_tour ;
*
  V1_ang = cosa          sina 0. ;
  V2_ang = (-1. * sina)  cosa 0. ;
*
   PB00 = 0 0 0                               ;
   PB10 = (XX 0 0)  'TOUR' ang_tour PB00 VECZ ;
   PB11 = (XX YY 0) 'TOUR' ang_tour PB00 VECZ ;
   PB01 = (0 YY 0)  'TOUR' ang_tour PB00 VECZ ;
*
   LBX0 = 'DROI' 1 PB00 PB10 ;
   LBY1 = 'DROI' 1 PB10 PB11 ;
   LBX1 = 'DROI' 1 PB11 PB01 ;
   LBY0 = 'DROI' 1 PB01 PB00 ;
*
* Maillage
*
   PLB   = 'DALL' 'PLAN' LBX0 LBY1 LBX1 LBY0 ;
   EPROU = PLB 'VOLU' 1 'TRAN' VECZ          ;
*
   PLH   = 'FACE' 2 EPROU ;
   PL0YZ = EPROU 'POIN' 'PLAN' PB00 PB01 VECZ 1E-3 ;
   PLX0Z = EPROU 'POIN' 'PLAN' PB00 PB10 VECZ 1E-3 ;
*
   axeX = coul roug (droi 1 PB00 (2.0 0   0  ))     ;
   axeY = coul roug (droi 1 PB00 (0   2.0 0  ))     ;
   axeZ = coul roug (droi 1 PB00 (0   0   2.0))     ;
*   trac   cach qual (EPROU et axeX et axeY et axeZ)   ;
*
* Modele et materiau
*
  LCMAT = 'MOTS'    'YG1 '    'YG2 '    'YG3 '
                    'NU12'    'NU23'    'NU13' 
                    'G12 '    'G23 '    'G13 '
                    'V1X '    'V1Y '    'V1Z '
                    'V2X '    'V2Y '    'V2Z '
                    'ALP1'    'ALP2'    'ALP3'  ;

*  LCPAR = MOTS 'TETA' ;

   mo = 'MODE' EPROU 'MECANIQUE'    'ELASTIQUE' 'ORTHOTROPE'
                     'NON_LINEAIRE' 'UTILISATEUR'
                     'NUME_LOI' 12 
                     'C_MATERIAU' LCMAT ;
* 'PARA_LOI' LCPAR
* ------------------------------------------------------------
  VEC1 = 1. 0. 0. ; VEC2 = 0. 1. 0. ; ang = 60. ;
  SENSIP1 = -2 ; SENSIP2 = 1 ; ICBASE = 0 ;
  fichier = '/u/castem/divers/mimatD3d_par' ;
  PDILT    E1 E2 E3 NU12 NU23 NU13 MU12 MU23 MU13
  PNBRE PCOHI PECOU PEDIR PRVCE PECRX PDVDI PCROI PINCR
    = @mistpar fichier SENSIP1 SENSIP2 ;
* ------------------------------------------------------------
E1 = 1E11 ;
E2 = 2E11 ;
E3 = 3E11 ;
*
NU12 = 0.1 ;
NU13 = 0.2 ;
NU23 = 0.3 ;
*
MU12 = 2E10 ;
MU13 = 4E10 ;
MU23 = 7E10 ;
*
xalph = 1.0e-6 ;
*
    ma = 'MATE' mo  'YG1 ' E1    'YG2 ' E2   'YG3 ' E3
                    'NU12' NU12  'NU23' NU23 'NU13' NU13
                    'G12 ' MU12  'G23 ' MU23 'G13 ' MU13
                    'DIRECTION' VEC1 VEC2 'INCLINE' ang 
                    'ALP1' xalph    'ALP2' xalph   'ALP3' xalph ;
*
* Conditions aux limites
*
   CLB  = PLB   'BLOQ' 'UZ'                ;
   CLH  = PLH   'BLOQ' 'UZ'                ;
   CLYZ = PL0YZ 'BLOQ' 'DIRECTION' V1_ang  ;
   CLXZ = PLX0Z 'BLOQ' 'DIRECTION' V2_ang  ;
   CL   = CLB 'ET' CLH 'ET' CLYZ 'ET' CLXZ ;
*
* Chargements
*
* -------------------------------------------------------
   T1 = 100. ;  EPSZZ1 = 0.02 ;
   TT1 = 300. ;
* -------------------------------------------------------
   TEMPS = 'PROG' 0. T1 ;
*
   DEPZ  = 'DEPI' CLH ZZ                          ;
   EVEPS = 'EVOL' 'MANU' TEMPS ('PROG' 0. EPSZZ1) ;
   CHA1  = 'CHAR' 'DIMP' DEPZ EVEPS               ;
*
   TT = 'MANU' 'CHPO' EPROU 1 'T' 1.         ;
   EVTT = 'EVOL' 'MANU' TEMPS (prog TT1 TT1) ;
   CHA2 = 'CHAR' 'T' TT EVTT                 ;
*
   CHA = CHA1 'ET' CHA2 ;
*
*
* Calcul
*
   TAB = TABLE ;
   TAB.'BLOCAGES_MECANIQUES' = CL ;
   TAB.'CARACTERISTIQUES' = ma ;
   TAB.'MODELE' = mo ;
   TAB.'CHARGEMENT' = CHA ;
   TAB.'TEMPS_CALCULES' = TEMPS ;
TMASAU=table;
tab . 'MES_SAUVEGARDES'=TMASAU;
TMASAU .'DEFTO'=VRAI;
TMASAU .'DEFIN'=VRAI;

   PASAPAS TAB ;
*
* Traitement des resultats
*
   SIG = TAB.'CONTRAINTES'         ;
   DEP = tab.'DEPLACEMENTS'        ;
   VI  = tab.'VARIABLES_INTERNES'  ;
   NT  = ('DIME' TAB.'TEMPS')  - 1 ;

  SIG1 = SIG.NT           ;
  EPS1 = 'EPSI' mo DEP.NT ;
*
*
*******************************************************
*       SOLUTION DIRECTE QUI EVITE UMAT               *
*******************************************************
*
   mo0 = 'MODE' EPROU 'MECANIQUE' 'ELASTIQUE' 'ORTHOTROPE' ;

   ma0 = 'MATE' mo0 'YG1 ' E1    'YG2 ' E2   'YG3 ' E3
                    'NU12' NU12  'NU23' NU23 'NU13' NU13
                    'G12 ' MU12  'G23 ' MU23 'G13 ' MU13
                    'DIRECTION' VEC1 VEC2 'INCLINE' ang 
                    'ALP1' xalph    'ALP2' xalph   'ALP3' xalph ;

  ri   = ('RIGI' mo0 ma0) 'ET' CL  ;
  dep0 = 'RESO' ri (EPSZZ1 * DEPZ) ;
  SIG0 = 'SIGMA' mo0 ma0 dep0      ;
  EPS0 = 'EPSI' mo0 dep0           ;
*
*
********************************************
*        COMPARAISON DES RESULTATS         *
********************************************
nbgau  = 27   ;
seuil  = 1.   ;  tolsig = 1E-5 ;
seui   = 1E-7 ;  toldef = 1E-5 ;
*
* CONTRAINTES:
'REPE' stru nbgau ;
  sig0x  = 'EXTR' SIG0 'SMXX' 1 1 &stru ;
  sig1x  = 'EXTR' SIG1 'SMXX' 1 1 &stru ;
  sig0y  = 'EXTR' SIG0 'SMYY' 1 1 &stru ;
  sig1y  = 'EXTR' SIG1 'SMYY' 1 1 &stru ;
  sig0z  = 'EXTR' SIG0 'SMZZ' 1 1 &stru ;
  sig1z  = 'EXTR' SIG1 'SMZZ' 1 1 &stru ;
  sig0xy = 'EXTR' SIG0 'SMXY' 1 1 &stru ;
  sig1xy = 'EXTR' SIG1 'SMXY' 1 1 &stru ;

   sigx_rel = 0.                                                    ;
  'SI' ( ('>' ('ABS' sig0x) seuil) 'ET' ('>' ('ABS' sig1x) seuil) ) ;
     sigx_rel = 'ABS' ((sig0x - sig1x) / sig0x)                     ;
  'FINSI'                                                           ;

   sigy_rel = 0.                                                    ;
  'SI' ( ('>' ('ABS' sig0y) seuil) 'ET' ('>' ('ABS' sig1y) seuil) ) ;
     sigy_rel = 'ABS' ((sig0y - sig1y) / sig0y)                     ;
  'FINSI'                                                           ;

   sigz_rel = 0.                                                    ;
  'SI' ( ('>' ('ABS' sig0z) seuil) 'ET' ('>' ('ABS' sig1z) seuil) ) ;
     sigz_rel = 'ABS' ((sig0z - sig1z) / sig0z)                     ;
  'FINSI'                                                           ;

   sigxyrel = 0.                                                      ;
  'SI' ( ('>' ('ABS' sig0xy) seuil) 'ET' ('>' ('ABS' sig1xy) seuil) ) ;
     sigxyrel = 'ABS' ((sig0xy - sig1xy) / sig0xy)                    ;
  'FINSI'                                                             ;
*
  sig_max = 'MAXI' ('PROG' sigx_rel sigy_rel sigz_rel sigxyrel) ;
*
  'SI' ('>' sig_max tolsig)                                            ;
     'MESS' 'Point de Gauss n:' &stru                                  ;
     'MESS' 'Ecart relatif trop important sur les contraintes' sig_max ;
      ERRE 5                                                           ;
  'FINSI'                                                              ;
'FIN' stru ; 
*
* DEFORMATIONS:
'REPE' stru nbgau ;
  def0x = 'EXTR' EPS0 'EPXX' 1 1 &stru ;
  def1x = 'EXTR' EPS1 'EPXX' 1 1 &stru ;
  def0y = 'EXTR' EPS0 'EPYY' 1 1 &stru ;
  def1y = 'EXTR' EPS1 'EPYY' 1 1 &stru ;
  def0z = 'EXTR' EPS0 'EPZZ' 1 1 &stru ;
  def1z = 'EXTR' EPS1 'EPZZ' 1 1 &stru ;
  ga0xy = 'EXTR' EPS0 'GAXY' 1 1 &stru ;
  ga1xy = 'EXTR' EPS1 'GAXY' 1 1 &stru ;

   defx_rel = 0.                                                  ;
  'SI' ( ('>' ('ABS' def0x) seui) 'ET' ('>' ('ABS' def1x) seui) ) ;
     defx_rel = 'ABS' ((def0x - def1x) / def0x)                   ;
  'FINSI'                                                         ;

   defy_rel = 0.                                                  ;
  'SI' ( ('>' ('ABS' def0y) seui) 'ET' ('>' ('ABS' def1y) seui) ) ;
     defy_rel = 'ABS' ((def0y - def1y) / def0y)                   ;
  'FINSI'                                                         ;

   defz_rel = 0.                                                  ;
  'SI' ( ('>' ('ABS' def0z) seui) 'ET' ('>' ('ABS' def1z) seui) ) ;
     defz_rel = 'ABS' ((def0z - def1z) / def0z)                   ;
  'FINSI'                                                         ;

   gaxyrel = 0.                                                   ;
  'SI' ( ('>' ('ABS' ga0xy) seui) 'ET' ('>' ('ABS' ga1xy) seui) ) ;
     gaxyrel = 'ABS' ((ga0xy - ga1xy) / ga0xy)                    ;
  'FINSI'                                                         ;

  def_max = 'MAXI' ('PROG' defx_rel defy_rel defz_rel gaxyrel) ;
*
  'SI' ('>' def_max toldef)                                            ;
    'MESS' 'Point de Gauss n:' &stru                                   ;
    'MESS' 'Ecart relatif trop important sur les deformations' def_max ;
*      ERRE 5                                                           ;
  'FINSI'                                                              ; 
'FIN' stru ;
*
   'FIN' ;


 

 

© Cast3M 2003 - All rights reserved.
Disclaimer