Download th_boucle.dgibi

Back to the list

* fichier :  th_boucle.dgibi
DEBP REEV_THE TB*TABLE IND*ENTIER ;
mess 'REEV_THE' ;
FINP ;

*--------------------------------------------------------*

DEBP REEV_MEC TB*TABLE IND*ENTIER ;
mess 'REEV_MEC' ;
*  SI (EXISTE TB 'TT') ;
*    TTTTT = TB. 'TT' . 'T_PREC' ;
*  SINON ;
*    TTTTT = 0. ;
*  FINSI ;
  estim=TB.'ESTIMATION';
  TTTTT= estim.'TEMPS';
  wtab=tb.'WTABLE';
  CONF0 = FORME   ;
  TB_REV = TB.'TABREP' ;

  S1 = TB_REV . 'S1' ;
  S2 = TB_REV . 'S2' ;
*  FORME TB.'DEPI' ;
  FORME estim . 'DEPLACEMENTS';
  VAL_H = (0.02*TTTTT) + 0.1 ;
  SI (TTTTT > 10.) ;
    VAL_H = 0.3 ;
  FINSI ;
  mess 'TEMP0  -->' VAL_H ;

  wtab . 'MAT_TOT' = TB_REV.'MATT1' ET TB_REV.'MATT2' ET
                       TB_REV.'MATM1' ET TB_REV.'MATM2' ;
  wtab . 'MAT_TOT' = wtab . 'MAT_TOT' ET 
                 (mater (TB_REV.'MOT3') 'K' VAL_H 'C' 0. 'RHO' 0.) ;
  wtab.'MAT_COND'='REDU'  wtab.'MAT_TOT' WTAB.'MOD_COND';
  FORME CONF0 ;
FINP ;

*--------------------------------------------------------*
*--------------------------------------------------------*


opti dime 2 elem qua8 ;  
dens 1 ;
* ajout de option epsilon lineaire pour la precision des test!
OPTION epsilon lineaire;
p0 = 0. 0. ; p1 = 1. 0. ;
d1 = d 20 p0 p1;
s1 = d1 tran 4 (0. 1.);
clt1 = cote 4 s1 ;
CLM1 = cote 2 s1 ;

p2 = 1.3 0. ; p3 = 1.6 0. ;
d2 = d 7 p2 p3;
s2 = d2 tran 4 (0. 1.);
clt2 = cote 2 s2 ;
CLM2 = COTE 4 s2 ;
*trace (s1 et s2);
coterac1 = cote 2 s1 ;
coterac2 = cote 4 s2 ;

L1 =      coterac1 ;
L2 = INVE coterac2 ;
II = 0 ;
REPETER BOUC01 (NBELEM L1 ) ;
  II = II + 1 ;
  rac_int = raccord 1.0 (L1 elem II) (L2 ELEM II);
  SI ('EGA' II 1) ;
    RACTOT = RAC_INT ;
  SINON ;
    RACTOT = RACTOT ET RAC_INT ;
  FINSI ;
FIN BOUC01 ;

ractot = coterac1 regler 7 (inve coterac2) ;
mom1 = modele s1 mecanique elastique cons meca ;
mom2 = modele s2 mecanique elastique cons meca ;
matm1 = mater mom1 'YOUN' 1E10 'NU' 0. 'ALPHA' 1E-4 ;
matm2 = mater mom2 'YOUN' 1E10 'NU' 0. 'ALPHA' 0.   ;
bl1 = (BLOQUE 'DEPL' P0) ET (BLOQUE 'DEPL' P3) ;
bl2 = (BLOQUE 'UY'   D1) ET (BLOQUE 'UY'   D2) ;
BL3      = 'BLOQ' UX CLM1  ;
BL4      = 'BLOQ' UX CLM2  ;


mot1 = modele s1 thermique isotrope cons ther ;
mot2 = modele s2 thermique isotrope cons ther ;
mot3 = modele RACTOT thermique isotrope cons ther ;
matt1 = mater mot1 'K' .1 'RHO' 0. 'C' 0. ;
matt2 = mater mot2 'K' .1 'RHO' 0. 'C' 0. ;
matt3 = mater mot3 'K' .1 'RHO' 0. 'C' 0. ;

CL_THER1 = BLOQUE CLT2 'T' ;
DI_PTH1  = DEPI CL_THER1 1500.;
CL_THER2 = BLOQUE CLT1 'T' ;
DI_PTH2  = DEPI CL_THER2 300. ;
CHARG1   = CHARGE 'TIMP' DI_PTH1 (EVOL MANU (PROG 0. 10. 100.) 
                                 (PROG 0.2 1.  1.)) ;   
CHARG2   = CHARGE 'TIMP' DI_PTH2 (EVOL MANU (PROG 0. 10. 100.) 
                                 (PROG 1. 1.  1. )) ;   

  TAB1 = TABLE ;                                                  
  TAB1.'CHARGEMENT' = CHARG1 ET CHARG2 ;
  TAB1.'TEMPS_CALCULES' = PROG 0. PAS 4. 12. ;
  TAB1.'MODELE' = mot1 et mot2 et mot3 et mom1 et mom2 ;
  TAB1.'CARACTERISTIQUES' = MATT1 ET MATT2 ET MATT3 
                         ET MATM1 ET MATM2 ;
  TAB1.'BLOCAGES_MECANIQUES' = BL1 ET BL2 ET BL3 ET BL4 ;
  TAB1.'BLOCAGES_THERMIQUES' = CL_THER1 ET CL_THER2 ;
  TAB1.'TEMPERATURES' = TABLE ;
  TAB1.'TEMPERATURES' . 0 = MANU CHPO (S1 ET S2) 1 'T' 300. ;
  TAB1.'PROCEDURE_REAC_THER' = VRAI ;
  TAB1.'PROCEDURE_REAC_MECA'  = VRAI ;
  TAB1.'CONVERGENCE_MEC_THE' = VRAI ;
  TAB1.'RELAXATION_THETA' = 1. ;
  TAB1.'NB_BOTH' = 5 ;
  TAB1.'CRITERE_COHERENCE' = 1.E-8 ;
  TAB1.'CONVERGENCE_FORCEE' = FAUX ;
*  TAB1.'MEC_THER' = FAUX ;

  TABREP = TABLE ;
  TABREP . 'S1' = S1 ;
  TABREP . 'S2' = S2 ;

  TABREP . 'MATT1' = MATT1 ;  TABREP . 'MATT2' = MATT2 ;
  TABREP . 'MATM1' = MATM1 ;  TABREP . 'MATM2' = MATM2 ;
  TABREP . 'MOT3'  = MOT3  ;

  TAB1 . 'TABREP' = TABREP ;
*opti impi 1754;
  TAB1.'PROCESSEURS' = 'AUTOMATIQUE';
  tab1 =pasapas tab1;

  VAL1 = TABLE ;
  VAL2 = TABLE ;
  II = -1 ;
  REPETER BOUCT (dime TAB1.temperatures);
    II = II + 1 ;
    CHTER = tab1.temperatures . II ;
    VAL1.II = (maxi (redu chter S1)) ;
    VAL2.II = (mini (redu chter S2)) ;
    mess 'T maxi S1: ' (maxi (redu chter S1))
         'T mini S2: ' (mini (redu chter S2)) ;
  FIN BOUCT ;


  NIVERR = FAUX ;
  SI ((VAL1.0 'NEG' 300. 1.E-2) OU (VAL2.0 'NEG' 300. 1.E-2)) ;
    NIVERR = VRAI ;mess ' erreur 1' VAL1.0  VAL2.0 ;
  FINSI ;
  SI ((VAL1.1 'NEG' 627.27 1.E-2) OU (VAL2.1 'NEG' 681.82 1.E-2)) ;
    NIVERR = VRAI ;mess ' erreur 2'  VAL1.1 VAL2.1  ;
  FINSI ;
  SI ((VAL1.2 'NEG' 978.26 1.E-2) OU (VAL2.2 'NEG' 1056.52 1.E-2)) ;
    NIVERR = VRAI ;mess ' erreur 3' VAL1.2 VAL2.2  ;
  FINSI ;
  SI ((VAL1.3 'NEG' 1157.14 1.E-2) OU (VAL2.3 'NEG' 1242.86 1.E-2)) ;
    NIVERR = VRAI ;mess ' erreur 4'  VAL1.3 VAL2.3 ;
  FINSI ;

* je calcule les déplacements à la main sur  mon exemple

  tem1 = redu s1 (tab1.'TEMPERATURES' . 3) ;                                            
  tem1 = tem1 - 300. ;
                                                                        
  rig1 = (rigi matm1 mom1) et ('BLOQ' 'DEPL' P0) 
      et BL3  et (BLOQUE UY D1);        
  sisi = theta tem1 mom1 matm1   ;
  fequ = bsigma mom1 sisi ;
  chf1 = fequ ;

  dep2 = ENLE  (reso rig1 chf1) 'LX' ;
  dep1 = redu s1 (tab1 . deplacements . 3);                                         

  ddep = dep2 - dep1 ; 

  'SI' ((MAXI (ABS DDEP)) > 1.E-8) ;
    NIVERR = VRAI ; mess ' erreur 5'  ddep;    
  'FINSI' ;                                        

  SI NIVERR ;
    ERREUR 5 ;
  FINSI ;

  FIN ;
 

 

 

 

 

 

 

© Cast3M 2003 - All rights reserved.
Disclaimer