* fichier : relamili.dgibi
************************************************************************
* Section : Langage Objets
* Section : Maillage Autres
* Section : Mecanique Elastique
************************************************************************
*---------------------------------------------------------------------*
*           Cas-test de l'operateur 'RELA', option 'MILI'.            *
*                                                                     *
* On deplace le coin sup. droit d'un carre (cube en 3D) decrit par un *
* un element quadratique. Le deplacement des noeuds milieux est       *
* lineairement lie a celui des noeuds sommets ('RELA' 'MILI').  On    *
* s'assure que c'est le cas.                                          *
*---------------------------------------------------------------------*
*                                                                     *
* Pour les traces, mettre ITRAC1 a VRAI :                             *
ITRAC1   = FAUX ;
*                                                                     *
'OPTI' 'ECHO' 0 ;
*                                                                     *
*---------------------------------------------------------------------*
*                                 2D                                  *
*---------------------------------------------------------------------*
*                                                                     *
'OPTI' 'DIME' 2 'ELEM' 'QUA8' ;
*                                                                     *
P1       = 0. 0. ;
P2       = 1. 0. ;
P4       = 0. 1. ;
N1       = 1 ;
L1       = P1 'DROI' N1 P2 ;
S1       = L1 'TRAN' N1 P4 ;
L2       = S1 'COTE' 2 ;
L3       = S1 'COTE' 3 ;
L4       = S1 'COTE' 4 ;
P3       = S1 'POIN' 'PROC' (1. 1.) ;
P4       = S1 'POIN' 'PROC' P4 ;
*                                                                     *
MOD1     = 'MODE' S1 'MECANIQUE' 'ELASTIQUE' ;
MAT1     = 'MATE' MOD1 'YOUN' 1.E9 'NU' 0.45 ;
RIG1     = 'RIGI' MOD1 MAT1 ;
*                                                                     *
CX0      = 'BLOQ' L4 'UX' 'UY' ;
CY0      = 'BLOQ' L1 'UX' 'UY' ;
CLXP3    = 'BLOQ' P3 'UX' ;
CLYP3    = 'BLOQ' P3 'UY' ;
RELA1    = 'RELA' 'MILI' S1 ;
CL0      = CX0 'ET' CY0 'ET' CLXP3 'ET' CLYP3 'ET' RELA1 ;
DIMPX1   = 0.1 ;
DIMPY1   = 0.2 ;
DCLP3    = ('DEPI' CLXP3 DIMPX1) 'ET' ('DEPI' CLYP3 DIMPY1) ;
*                                                                     *
DEP1     = 'RESO' (RIG1 'ET' CL0) DCLP3 ;
*                                                                     *
'SI' ITRAC1 ;
  DEFO0  = 'DEFO' S1 DEP1 0. 'VERT' ;
  DEFO1  = 'DEFO' S1 DEP1 3. 'ROUG' ;
  'TITR' 'Maillage ini. (vert), deforme (rouge).' ;
  'TRAC' (DEFO0 'ET' DEFO1) ;
'FINS' ;
*                                                                     *
P6       = S1 'POIN' 'PROC' (1. 0.5) ;
UXP6     = 'EXTR' DEP1 'UX' P6 ;
UYP6     = 'EXTR' DEP1 'UY' P6 ;
P7       = S1 'POIN' 'PROC' (0.5 1.) ;
UXP7     = 'EXTR' DEP1 'UX' P7 ;
UYP7     = 'EXTR' DEP1 'UY' P7 ;
*                                                                     *
DANAX1   = 0.5 * DIMPX1 ;
DANAY1   = 0.5 * DIMPY1 ;
ERR1     = ('ABS' (UXP6 - DANAX1)) + ('ABS' (UYP6 - DANAY1)) +
  ('ABS' (UXP7 - DANAX1)) + ('ABS' (UYP7 - DANAY1)) ;
ERR1     = 'ABS' (ERR1 / ('MAXI' 'ABS' ('PROG' DIMPX1 DIMPY1))) ;
*                                                                     *
'SI' (ERR1 '>' 1.E-4) ;
  'ERRE' 5 ;
'FINS' ;
*                                                                     *
*---------------------------------------------------------------------*
*                                 3D                                  *
*---------------------------------------------------------------------*
*                                                                     *
'OPTI' 'DIME' 3 'ELEM' 'CU20' ;
*                                                                     *
V1       = S1 'VOLU' 'TRAN' N1 (0. 0. 1.) ;
P7       = V1 'POIN' 'PROC' (1. 1. 1.) ;
*                                                                     *
MOD1     = 'MODE' V1 'MECANIQUE' 'ELASTIQUE' ;
MAT1     = 'MATE' MOD1 'YOUN' 1.E9 'NU' 0.45 ;
RIG1     = 'RIGI' MOD1 MAT1 ;
*                                                                     *
CLZ0     = 'BLOQ' S1 'DEPL' ;
CLY0     = 'BLOQ' (V1 'POIN' 'PLAN' P1 P2 (0. 0. 1.) 1.E-3) 'DEPL' ;
CLX0     = 'BLOQ' (V1 'POIN' 'PLAN' P1 P4 (0. 0. 1.) 1.E-3) 'DEPL' ;
CLP7     = 'BLOQ' P7 'DEPL' ;
RELA1    = 'RELA' 'MILI' V1 ;
CL0      = CLX0 'ET' CLY0 'ET' CLZ0 'ET' CLP7 'ET' RELA1 ;
DIMP1    = 0.1 ;
DCLP7    = 'DEPI' CLP7 DIMP1 ;
*                                                                     *
DEP1     = 'RESO' (RIG1 'ET' CL0) DCLP7 ;
*                                                                     *
'SI' ITRAC1 ;
  DEFO0  = 'DEFO' V1 DEP1 0. 'VERT' ;
  DEFO1  = 'DEFO' V1 DEP1 3. 'ROUG' ;
  'TRAC' (100. -50. 40.) (DEFO0 'ET' DEFO1) ;
'FINS' ;
*                                                                     *
P15      = V1 'POIN' 'PROC' (1. 1. 0.5) ;
UXP15    = 'EXTR' DEP1 'UX' P15 ;
UYP15    = 'EXTR' DEP1 'UY' P15 ;
UZP15    = 'EXTR' DEP1 'UZ' P15 ;
P18      = V1 'POIN' 'PROC' (1. 0.5 1.) ;
UXP18    = 'EXTR' DEP1 'UX' P18 ;
UYP18    = 'EXTR' DEP1 'UY' P18 ;
UZP18    = 'EXTR' DEP1 'UZ' P18 ;
P19      = V1 'POIN' 'PROC' (0.5 1. 1.) ;
UXP19    = 'EXTR' DEP1 'UX' P19 ;
UYP19    = 'EXTR' DEP1 'UY' P19 ;
UZP19    = 'EXTR' DEP1 'UZ' P19 ;
*                                                                     *
ERR2     = 'ABS' (UXP15 + UYP15 + UZP15 + UXP18 + UYP18 + UZP18 +
  UXP19 + UYP19 + UZP19 - (4.5 * DIMP1)) ;
ERR2     = ERR2 / ('ABS' DIMP1) ;
*                                                                     *
'SI' (ERR2 '>' 1.E-4) ;
  'ERRE' 5 ;
'FINS' ;
*                                                                     *
ERRMAX   = 'MAXI' ('PROG' ERR1 ERR2) ;
'SAUT' 1 'LIGN' 
'MESS'
'***** Cas-test reussi, max. erreur sur deplacements:' (ERRMAX) ;
*                                                                     *
'FIN' ;
 

 

