Download fatsin-1d.dgibi

Back to the list

* fichier :  fatsin-1d.dgibi
*******************************************************************
*                                                                 *
* TEST MATERIAU ENDOMMAGEMENT EN FATIGUE SINUSOIDALE              *
*                                                                 *
*                                                                 *
* EPROUVETTE EN FATIGUE UNIAXIALE PILOTE en DEPLACEMENT           *
*                                                                 *
* CONTRAINTES PLANES.                                             *
*                                                                 *
* LES RESULTATS OBTENUS SONT COMPARES  A LA SOLUTION ANALYTIQUE   *
*                                                                 *
*******************************************************************                                                       *
* procédure de génération d'un signal alterné
DEBPROC TR_PROG tps  ;
*donnant la liste des temps  la procédure ressort
* la liste  des temps  complétées des temps intérmédiaires
* la liste du chargement  unitaire alterné en positi et négatif
     char = PROG (DIME tps) * 1. ;
   REPEter bouc (-1+(DIME tps)) ;
     tps = INSE tps (2*&bouc) (0.5*((EXTR tps (2*&bouc-1) )+
                                   (EXTR tps (2*&bouc) ))) ;
     char = INSE char (2*&bouc) -1 ; 
   FIN bouc;
FINPROC tps char  ;
*
*opti echo 0 ; 

GRAPH   = FAUX ;
*GRAPH   = VRAI ;
* ajout de option epsilon lineaire pour la precision des test!
OPTION epsilon lineaire;
opti dime 2 elem qua4 mode plan cont;
densite 1.;
p1=0. 0.;
p2=1. 0.;
p3=1. 1.;
p4=0. 1.;
d1=d p1 p2;d2=d p2 p3;d3=d p3 p4;d4=d p4 p1;
surf1=daller d1 d2 d3 d4 plane;

* amplitude de deplacement (déformation)
eps_a = 100.e-6 ;

ddldepl = 'UY' ;
 chargpt1 = P3 ;
 chargpt2 = P1 ;


* test des deux lois en local et en non-local
lst_loi = PROG 2. 3. 2. 3. ;
lst_nloc = MOTS 'VRAI' 'VRAI' 'FAUX' 'FAUX' ;
lst_err = PROG ;

REPEter bou9 (DIME lst_loi) ;


loi = EXTR  lst_loi  &bou9 ;

SI ((&bou9 EGA 1) OU (&bou9 EGA 2)) ;
 NLOC1 = VRAI ;
SINON;
 NLOC1 = FAUX ;
FINSI ;

NLOCi = EXTR lst_nloc &bou9 ;
tit_1 = CHAINE 'LOI ' loi ' - NON LOCAL = ' NLOCi ;
MESSage tit_1 ;

**************************************************************
 
** Longueur caractéristique pour les calculs non-locaux
*NLOC1 = FAUX ;
*NLOC1 = VRAI  ;
lcar1 = 18.e-3 ;

****************************************************
*données matériau
yg=12.e9;
poisson = 0.35 ;
epsd0 = 0. ;
*
* Parametre loi d'endommagement en fatigue
*
beta= 4. ;
*
*loi = 3. ;
*
SI (loi EGA 2.);
C = 2.87e12 ;
alfa = -2.25 ;
alfa1 = 0. ;
alfa2 = 0. ;
alfa3 = 0. ;
SINON ;        
C =  0. ;
alfa = 0. ;
alfa1 = 5.58e-15 ;
alfa2 = 0.42 ;
alfa3 = 3.0 ;
FINSI ;

*modèle de comportement
MODmeca=mode surf1 'MECANIQUE' 'ELASTIQUE' 'ISOTROPE' 'ENDOMMAGEMENT' 
                  FATSIN  ;
MATmeca=matr MODmeca  YOUN yg NU poisson  RHO 2.3E+03
'KTR0'  epsd0  'BETA' beta 'LOI ' loi
'C   ' C  'ALFA' alfa 
'ALF1' alfa1 'ALF2' alfa2 'ALF3' alfa3 'DIM3' 1.;

********************************************************
*evolution pour le chargement
* nombre de cycle max
N_max = 3e6 ;
****    nb_calc = 30 ;
nb_calc = 15 ;


tps1=prog  0. pas (n_max/nb_calc) n_max ;

tps2 char1 = TR_PROG tps1 ;


* conditions aux limites
MESSage 'ESSAI PILOTE en DEPLACEMENT' ;

blo1=bloq  ux  p1;
blo2=bloq  uy  d1;
blo3=bloq  uy  d3;
cltot=blo1 et blo2 et blo3 ;                                     
fo1 = depi blo3 eps_a ;

evol1=evol manu temps tps2 
                depl char1;
char1=charg evol1 fo1 DIMP; 

* preparation des données pour PASAPAS                                                 
tab1=table;                                                             
tab1.mova='D   ';
tab1.blocages_mecaniques=cltot;
tab1.caracteristiques=MATmeca;
tab1.modele=MODmeca;
tab1.chargement=char1;
tab1.temps_calcules=tps2;
tab1.temps_sauves=tps1;
tab1.maxisouspas=1000;


SI NLOC1 ;
*construction ed la matrice de connectivité
  conn1 = CONN MODmeca  lcar1 'NORMAL' 'INTERIEUR' ;
  conntot = conn1 ;
*
  tab1 . 'NON_LOCAL' = 'MOT' 'MOYE' ;
  tab1 . 'LCAR' = lcar1 ;
  tab1 . 'CONN' = conntot ; ;
* Grandeur moyennee
  tab1 . 'LVIAM' = (MOTS  'EPTI' ) ;
FINSI  ;

pasapas tab1;

***************************************
* Results post-treatment
***************************************

force1 = tab1.'REACTIONS';

ndim = DIME force1 ;

* list de réel de force
     
     lis1 = PROG (YG * EPS_A) ;mess  ' prem ';list lis1; 
          REPETER BOUCL1 (ndim-1) ;
          forc1 =  ABS (-1*(@TOTAL (force1 . (&BOUCL1)) d1 'FY'));
          lis1 = INSER lis1 (&BOUCL1+1) (forc1) ;
     FIN BOUCL1;

mess ' lis1 ' ;list lis1;
lst_un = prog  (DIME tps1) * 1. ;
mess ' lst_un';list lst_un;

** Resultat du calcul EF
aaa = maxi lis1;
ppp= prog (DIME tps1) * aaa; 
D_EFA = (lst_un-(lis1/(MAXI lis1))) ;
D_EF=ABS (( ppp - lis1) / aaa); 

** solution analytique 

def_t1 = ((eps_a**(beta+1))-(epsd0**(beta+1))) ;
def_t1 = 0.5*(def_t1+(abs(def_t1))) ;

def_term = (def_t1 /(beta+1));
SI (def_term EGA 0.) ;
  N_N = tps1 ;
  D_N = 0.*lst_un ;

SINON ;
SI (loi EGA 2.);
    D_N = ( C*(1-alfa)*def_term*tps1)**(1/(1-alfa));
    N_N = tps1 ;
SINON ;        
    N_N = PROG ;
    D_N = PROG ;
    REPEter bou1 (DIME tps1) ;
       N_i = EXTR  tps1 &bou1 ;
       N_1 = alfa1/def_term*(1-(EXP(-1.*(alfa2**(-1.*alfa3))))) ;
       SI (N_i < N_1) ;      
       D_i = alfa2 *
            ((-1.*(LOG (1.-(def_term*N_i/alfa1))))**(1/(alfa3))) ;
       SINON ;
       D_i = 1.-1e-5 ;
       FINSI ;
       D_N = INSE D_N &bou1 D_i;
       N_N = INSE N_N &bou1 N_i;
    FIN bou1 ;
              
FINSI ;
FINSI ;
ev2=evol manu Cycles N_N 
              Damage D_N 'COUL' 'ROUG' ;

ev1=evol manu Cycles tps1 
              Damage D_EF 'COUL' 'VERT' ;
  
  
                
ev3 = evol manu 'Cycles' tps1
                'Num-Analytique' (D_N-D_EF) ;                
                

Tdess     = 'TABLE' ;
    Tdess  . 1 = 'MOT' 'MARQ LOSA NOLI';
 
Tdess  . 'TITRE'     = 'TABLE' ;
    Tdess  . 'TITRE' . 1 = 'MOT' 'Calcul EF';
    Tdess  . 'TITRE' . 2 = 'MOT' 'Reference analytique' ;
 

'SI' GRAPH ;
   dess (ev1 et ev2) Tdess 'LEGE' Tdess 'TITR' tit_1 ;
   dess ev3 Tdess 'TITR' tit_1 ;   
'FINSI' ;   
mess ' d_EF' ; list d_ef; mess ' d_n ' ; list d_n;
zdn  = 'MASQUE' d_n 'EGAL' 0.D0 ;
udn  = 'PROG' ('DIME' D_N) * 1.D0 ;
mzdn = '-' udn zdn ;
d_n2 = '+' ('*' d_n mzdn) ('*' udn zdn) ;
qqq= abs( (D_EF - D_N)/D_N2); mess ' err ' ; list qqq;
err1=maxi (abs( (D_EF - D_N)/D_N2));

lst_err = INSE lst_err &bou9 err1  ;

FIN bou9 ;



*comparaison des deux resultats
*

list lst_err ;
err1 = maxi (lst_err) ;
temps;
si (err1 < 1.e-10);
  ERRE 0;
sinon ;
  ERRE 5;
finsi;
fin;








*
 

 

 

 

© Cast3M 2003 - All rights reserved.
Disclaimer