Download @zacplus.procedur

Back to the list

   1 : * @ZACPLUS  PROCEDUR  CHAT      99/06/07    21:24:42     3584           
   2 : *-----------------------------PROCEDURE ZACPLUS----------------------*
   3 : 
   4 : 'DEBP' @ZACPLUS TBZA*'TABLE';
   5 : 
   6 : **********************************************************************
   7 : *                METHODE ZAC MODIFIEE (ZACPLUS)                      *
   8 : **********************************************************************
   9 :  
  10 : 
  11 : *------------ENTREE DES DONNEES PAR LA TABLE TBZA--------------------*
  12 : 
  13 : SIG1  =  'CHAN' 'CONS' TBZA.'SIG1' 'ZACCONST';
  14 : SIG2  =  'CHAN' 'CONS' TBZA.'SIG2'  'ZACCONST';
  15 : CLIM  = TBZA.'CLIM';
  16 : TAMOD = 'TABLE';
  17 : TAMAT = 'TABLE';
  18 : 
  19 : I = 0;
  20 : 'REPETER' BLOCM;
  21 :    I = I + 1;
  22 :    'SI' ('EXISTE' TBZA I);
  23 :       TAMOD.I = 'MODEL' TBZA.I.'GEOM' 'MECANIQUE' 'ELASTIQUE' 
  24 :       'PLASTIQUE' 'CINEMATIQUE' CONS 'ZACCONST';
  25 :       TAMAT.I = 'MATE' TAMOD.I 'YOUN' TBZA.I.'YOUN' 'NU' TBZA.I.'NU'
  26 :                 'SIGY' TBZA.I.'SIGY' 'H' TBZA.I.'H';
  27 :       'SI' (I 'EGA' 1);
  28 :          MOTOT = TAMOD. 1;
  29 :          MATOT = TAMAT. 1;
  30 :       'SINON';
  31 :          MOTOT = MOTOT 'ET' TAMOD.I;
  32 :          MATOT = MATOT 'ET' TAMAT.I;
  33 :       'FINSI';
  34 : 
  35 :     'SINON';
  36 :       'QUITER' BLOCM;
  37 :     'FINSI';
  38 : 'FIN' BLOCM;
  39 : 
  40 : *----------------------DEFINITION DU MATERIAU------------------------*
  41 : E1       = 'EXCO' MATOT 'YOUN' SCAL;
  42 : NU1      = 'EXCO' MATOT 'NU' SCAL;
  43 : SIGY1    = 'EXCO' MATOT 'SIGY' SCAL;
  44 : H1       = 'EXCO' MATOT 'H' SCAL;
  45 : 
  46 : E1       = 'CHANGER' 'STRESSES' MOTOT E1;
  47 : NU1      = 'CHANGER' 'STRESSES' MOTOT NU1; 
  48 : SIGY1    = 'CHANGER' 'STRESSES' MOTOT SIGY1;   
  49 : H1       = 'CHANGER' 'STRESSES' MOTOT H1;
  50 : 
  51 : E1       = 'CHANGER' 'TYPE' E1 'SCALAIRE';
  52 : NU1      = 'CHANGER' 'TYPE' NU1 'SCALAIRE';
  53 : SIGY1    = 'CHANGER' 'TYPE' SIGY1 'SCALAIRE';
  54 : H1       = 'CHANGER' 'TYPE' H1 'SCALAIRE';
  55 : 
  56 : SIGY2    = SIGY1 + (SIGY1/100.);
  57 : 
  58 : *---------------------NOMBRE D ITERATION MAXI-------------------------*
  59 : NF1      = 5;
  60 : NF2      = 5;
  61 : NITER    = NF1 + NF2;
  62 : 
  63 : 
  64 : *-------------CALCUL DES NOUVEAUX PARAMETRES DU MATERIAU--------------*
  65 : H1M1      = H1**-1;
  66 : E1M1      = E1**-1;
  67 : E1H1      = E1 + H1;
  68 : E1H1M1    = E1H1**-1;
  69 : CM1       = 1.5 * H1M1;
  70 : C         = CM1**-1;
  71 : EPRIM1    = (E1 * H1) * E1H1M1;
  72 : NUPRIM1   = EPRIM1 * ((NU1 * E1M1) + (0.5 * H1M1));
  73 : 
  74 : 
  75 : SS1       = @ZACPRO5 SIG1 MOTOT;
  76 : SS2       = @ZACPRO5 SIG2 MOTOT;
  77 : DEVSIG    = SS2 - SS1;
  78 : SELMOY    = (SS1 + SS2)/2.;
  79 : SIGMEL    = (SIG1 + SIG2)/2.;
  80 : DSIGEL    = SIG2 - SIG1;
  81 : FEL       = @ZACPRO7 DEVSIG ;
  82 : IND       = FEL 'MASQUE' 'EGSUPE' -1.;
  83 : NUL       = 0.*SS1;
  84 : DESIGY1   = 2.*SIGY1;
  85 : DIST      = FEL - DESIGY1;
  86 : ACCOM1    = DIST 'MASQUE' 'SUPERIEUR' 'SOMME' 0.;
  87 : ACCOMM    = ACCOM1 > 0;
  88 : 
  89 : SI ACCOMM; 
  90 : *--------------------------------------------*
  91 : MESS 'LA STRUCTURE EST ACCOMMODEE';
  92 : *--------------------------------------------*
  93 : SINON;
  94 : *--------------------------------------------*
  95 : MESS 'LA STRUCTURE EST ADAPTEE';
  96 : *--------------------------------------------*
  97 : FINSI;
  98 : 
  99 : *----------------------INITIALISATION DE PARAMETRES-------------------*
 100 : ZONEZA    = 0. * IND;
 101 : ZONEGA1   = ZONEZA;
 102 : ZONEGA2   = ZONEZA;
 103 : CRIT2     = IND;
 104 : CRIT3     = IND;
 105 : BOUCLE    = 1;
 106 : NBRB1     = 0;
 107 : NBRB2     = 0;
 108 : QQQQ      = 1;
 109 : IND1      = DIST 'MASQUE' 'INFERIEUR' 0.;
 110 : IND2      = IND - IND1;
 111 : 
 112 : *----------------CALCUL DE DXCHAP RELATIF A LA ZONE 3-----------------*
 113 : FELM1     = FEL**-1;
 114 : RRR1      = DEVSIG * FELM1;
 115 : RRRR      = RRR1 * SIGY1;
 116 : DXCHAP1   = DEVSIG - (2. * RRRR);
 117 : 
 118 : 
 119 : SS1EQ     = @ZACPRO7 SS1 ;
 120 : SS2EQ     = @ZACPRO7 SS2 ;
 121 : SS1EQM    = SS1EQ 'MASQUE' 'INFERIEUR' 1.E-10;
 122 : SS2EQM    = SS2EQ 'MASQUE' 'INFERIEUR' 1.E-10;
 123 : SS1EQMC   = IND - SS1EQM;
 124 : SS2EQMC   = IND - SS2EQM;
 125 : SS1EQ     = SS1EQ + SS1EQM;
 126 : SS2EQ     = SS2EQ + SS2EQM;
 127 : 
 128 : *--------------CONVEXE1 CONVEXE2----------*
 129 : RAY1      = SS1EQ - SIGY1;
 130 : RAY2      = SS2EQ - SIGY1;
 131 : CVX1      = RAY1 'MASQUE' 'INFERIEUR' 0.;
 132 : CVX2      = RAY2 'MASQUE' 'INFERIEUR' 0.;
 133 : HCVX1     = IND - CVX1;
 134 : HCVX2     = IND - CVX2;
 135 : *-----------------------------------------*
 136 : 
 137 : *--------------INTERSECTION---------------*
 138 : INTER     = CVX1 * CVX2;
 139 : NINTER    = IND - INTER;
 140 : *-----------------------------------------*
 141 : 
 142 : *-------------------CALCUL DE XCHAP RELATIF A LA ZONE 2---------------*
 143 : 
 144 : 
 145 : *----------------------OPERATION DE PROJECTION------------------------*
 146 : NBRPRO    = 0;
 147 : FACT1     = FEL**2;
 148 : FELM2     = FEL**-2;
 149 : FACT      = FACT1 * FELM2 /2.;
 150 : S         = SS1 + (FACT * DEVSIG);
 151 : SMDS      = @ZACPRO6 S DEVSIG;
 152 : COTE1     = SMDS 'MASQUE' 'EGSUPE' 0.;
 153 : COTE2     = IND - COTE1;
 154 : MA        = @ZACPRO8 NUL SS2 SIGY1;
 155 : MB        = @ZACPRO8 NUL SS1 SIGY1;
 156 : XCHAPD1   = (MA * COTE1) + (MB * COTE2); 
 157 : REPETER BLOCPROJ 10;
 158 : NBRPRO    = NBRPRO + 1;
 159 : MM1       = XCHAPD1;
 160 : SMM1      = S - MM1;
 161 : SMDS      = @ZACPRO6 SMM1 DEVSIG;
 162 : COTE1     = SMDS 'MASQUE' 'EGSUP' 0.;
 163 : COTE2     = IND - COTE1;
 164 : MA        = @ZACPRO8 MM1 SS2 SIGY1;
 165 : MB        = @ZACPRO8 MM1 SS1 SIGY1;
 166 : XCHAPD1   = (MA * COTE1) + (MB * COTE2); 
 167 : DMM       = (MM1 - XCHAPD1) * IND1;
 168 : NDMM      = @ZACPRO7 DMM;
 169 : CCRIT1    = NDMM 'MASQUE' 'SUPERIEUR' 'SOMME' 1.;
 170 : CCRIT     = CCRIT1 'EGA' 0;
 171 : SI CCRIT;
 172 : MESS 'NOMBRE DE PROJECTIONS';
 173 : LIST NBRPRO;
 174 : QUITER BLOCPROJ;
 175 : FINSI;
 176 : FIN BLOCPROJ;
 177 : 
 178 : 
 179 : ***********************************************************************
 180 : *                         DEBUT DE LA BOUCLE                          *
 181 : ***********************************************************************
 182 : 
 183 : REPETER BLOC1 NITER;
 184 : MESS 'DEBUT DU BLOC1';
 185 : 
 186 : *DEFINITION DES DIFFERENTES ZONES VARIABLES EN FONCTION DES ITERATIONS*
 187 : ZONEA3    = INTER * ZONEZA;
 188 : ZONEA2    = (NINTER * ZONEZA) * CRIT3;
 189 : ZONEA1A   = (IND2 + ZONEA3) * CRIT2;
 190 : ZONEA1M   = (IND2 + ZONEA3) * CRIT3;
 191 : ZONEIA    = (IND1 - ZONEZA) + ZONEGA1;
 192 : ZONEAA    = IND - ZONEIA;
 193 : ZONEIM    = (IND1 - ZONEZA) + ZONEGA2;
 194 : ZONEAM    = IND - ZONEIM;
 195 : 
 196 : *------------------------CALCUL DES AMPLITUDES------------------------*
 197 : DXCHAP    = DXCHAP1 * ZONEA1A;
 198 : 
 199 : *-----------MATERIAU-------------*
 200 : EPRIM2    = EPRIM1 * ZONEAA;
 201 : NUPRIM2   = NUPRIM1 * ZONEAA;
 202 : E3        = EPRIM2 + (ZONEIA * E1);
 203 : NU3       = NUPRIM2 + (ZONEIA * NU1);
 204 : E3        = 'EXCO' 'SCAL' E3 'YOUN';
 205 : NU3       = 'EXCO' 'SCAL' NU3 'NU';
 206 : MA3       = 'MANU' 'CHML' MOTOT 'YOUN' E3 'NU' NU3 'TYPE' 
 207 : CARACTERISTIQUES 'STRESSES';
 208 : 
 209 : 
 210 : DEPSIM    = CM1 * DXCHAP;
 211 : EPI1 EPI2 EPI3 EPI4 EPI5 EPI6 = @ZACPRO4 DEPSIM;
 212 : DEPSIM    = @ZACPRO1 EPI1 EPI2 EPI3 EPI4 EPI5 EPI6 MOTOT; 
 213 : DSIGIM    = 'ELAS' MOTOT DEPSIM MA3;
 214 : DFOIM     = 'BSIGMA' MOTOT DSIGIM;
 215 : RIIM2     = 'RIGI' MOTOT MA3;
 216 : DRIIM     = RIIM2 ET CLIM;
 217 : DDINEL    = 'RESOU' DRIIM DFOIM;
 218 : DEPSINEL  = 'EPSI' MOTOT DDINEL;
 219 : DROA      = 'ELAS' MOTOT DEPSINEL MA3;
 220 : DRO       = DROA - DSIGIM;
 221 : DSIG      = DSIGEL + DRO;
 222 : DDEVRO    = @ZACPRO5 DRO MOTOT;
 223 : DXCHNOU   = (DXCHAP * ZONEAA) - (DDEVRO * ZONEIA);
 224 : DX        = (DXCHNOU + DDEVRO) * ZONEAA;
 225 : DEPSPL1   = CM1 * DX;
 226 : EPSPL11 EPSPL12 EPSPL13 EPSPL14 EPSPL15 EPSPL16 = @ZACPRO4 DEPSPL1;
 227 : DEPSIP    = @ZACPRO1 EPSPL11 EPSPL12 EPSPL13 
 228 :                      EPSPL14 EPSPL15 EPSPL16 MOTOT;
 229 : 
 230 : *---------------------CALCUL DES VALEURS MOYENNES---------------------*
 231 : XCHAP3    = SELMOY * ZONEA1M;
 232 : XCHAP2    = XCHAPD1 * ZONEA2;
 233 : XCHAP     = XCHAP3 + XCHAP2;
 234 : 
 235 : *-----------MATERIAU-------------*
 236 : EPRIM     = EPRIM1 * ZONEAM;
 237 : NUPRIM    = NUPRIM1 * ZONEAM;
 238 : E2        = EPRIM + (ZONEIM * E1);
 239 : NU2       = NUPRIM + (ZONEIM * NU1);
 240 : E2        = 'EXCO' 'SCAL' E2 'YOUN';
 241 : NU2       = 'EXCO' 'SCAL' NU2 'NU';  
 242 : MA2       = 'MANU' 'CHML' MOTOT 'YOUN' E2 'NU' NU2 'TYPE'
 243 :             CARACTERISTIQUES 'STRESSES';
 244 : 
 245 : 
 246 : EPSIM     = CM1 * XCHAP;
 247 : EPI1 EPI2 EPI3 EPI4 EPI5 EPI6 = @ZACPRO4 EPSIM;
 248 : EPSIM     = @ZACPRO1 EPI1 EPI2 EPI3 EPI4 EPI5 EPI6 MOTOT;
 249 : SIGIM     = 'ELAS' MOTOT EPSIM MA2;
 250 : FOIM      = 'BSIGMA' MOTOT SIGIM;
 251 : RIIM1     = 'RIGI' MOTOT MA2;
 252 : RIIM      = RIIM1 ET CLIM;
 253 : DINEL     = 'RESOU' RIIM FOIM;
 254 : EPSINEL   = 'EPSI' MOTOT DINEL;
 255 : ROA       = 'ELAS' MOTOT EPSINEL MA2;
 256 : RO        = ROA - SIGIM;
 257 : SIGMOY    = RO + SIGMEL;
 258 : DEVRO     = @ZACPRO5 RO MOTOT;
 259 : XCHNO1    = XCHAP * ZONEAM;
 260 : XCHNO2    = ((-1.) * DEVRO) * ZONEIM;
 261 : XCHAMOY   = XCHNO1 + XCHNO2;
 262 : X         = (XCHAMOY + DEVRO) * ZONEAM;
 263 : EPSPL1    = CM1 * X;
 264 : EPSPL11 EPSPL12 EPSPL13 EPSPL14 EPSPL15 EPSPL16 = @ZACPRO4 EPSPL1;
 265 : EPSIPM    = @ZACPRO1 EPSPL11 EPSPL12 EPSPL13 
 266 :                      EPSPL14 EPSPL15 EPSPL16 MOTOT; 
 267 : QQQQ      = QQQQ + 1;
 268 : CRIT1     = BOUCLE EGA 1;
 269 : SI CRIT1;
 270 :   
 271 : *-----VERIFICATION XCHAPMOY +/- DXCHAP APPARTIENT A L'INTERSECTION----*
 272 : XCHMAX    = XCHAMOY + (DXCHNOU * 0.5);
 273 : XCHMIN    = XCHAMOY - (DXCHNOU * 0.5);
 274 : DMAX1     = XCHMAX - SS2;
 275 : DMIN1     = XCHMIN - SS1;
 276 : DMAX      = @ZACPRO7 DMAX1  ;
 277 : DMIN      = @ZACPRO7 DMIN1 ;
 278 : INB17     = DMAX 'MASQUE' 'SUPERIEUR' SIGY2;
 279 : INB18     = DMIN 'MASQUE' 'SUPERIEUR' SIGY2;
 280 : INB1718   = INB17 * INB18;
 281 : ZONEZAS   = ((INB17 + INB18) - INB1718) * ZONEIA;
 282 : ZONEZA    = ZONEZAS + ZONEZA;
 283 : FMOY1     = ZONEZAS 'MASQUE' 'DIFFERENT' 'SOMME' 0.;
 284 : FMOY2     = FMOY1 EGA 0;
 285 : NBRB1     = NBRB1 + 1;
 286 : FMOY3     = NBRB1 'EGA' NF1;
 287 : FMOY      = FMOY2 OU FMOY3;
 288 : SI FMOY;
 289 : BOUCLE    = BOUCLE + 1;
 290 : FINSI;
 291 : FINSI;
 292 : CRIT4     = BOUCLE NEG 1;
 293 : SI CRIT4;
 294 : 
 295 : *---------------------VERIFICATION DSEL.DX>=0-------------------------*
 296 : MESS 'VERIFICATION DSEL.DX>=0';
 297 : DSELDX    = @ZACPRO6 DEVSIG DX;
 298 : ZON1GAS   = DSELDX 'MASQUE' 'INFERIEUR' 0.;
 299 : FDELTA1   = ZON1GAS 'MASQUE' 'DIFFERENT' 'SOMME' 0.;
 300 : FDELTA    = FDELTA1 EGA 0;
 301 : 
 302 : *----------------------VERIFICATION SIGM.XM>=0------------------------*
 303 : MESS 'VERIFICATION SIGM.XM>=0';
 304 : SIGMXM    = @ZACPRO6 SIGMOY X;
 305 : ZON2GAS   = SIGMXM 'MASQUE' 'INFERIEUR' 0.;
 306 : GDELTA1   = ZON2GAS 'MASQUE' 'DIFFERENT' 'SOMME' 0.;
 307 : GDELTA    = GDELTA1 'EGA' 0;
 308 : HDELTA1   = FDELTA ET GDELTA;
 309 : NBRB2     = NBRB2 + 1;
 310 : HDELTA2   = NBRB2 'EGA' NF2;
 311 : HDELTA    = HDELTA1 OU HDELTA2;
 312 : SI HDELTA;
 313 : QUITER BLOC1;
 314 : FINSI;
 315 : 
 316 : 
 317 : ZONEGA1   = ZONEGA1 + ZON1GAS;
 318 : CRIT2     = IND - ZONEGA1;
 319 : ZONEGA2   = ZONEGA2 + ZON2GAS;
 320 : CRIT3     = IND - ZONEGA2;
 321 : MESS 'FIN BLOC1';
 322 : MESS 'NOMBRE DE BOUCLES 1 ET 2';
 323 : LIST NBRB1;
 324 : LIST NBRB2;
 325 : FINSI;
 326 : FIN BLOC1;
 327 : *-------------------------RESULTAT FINAL------------------------------*
 328 : TABRES    = TABLE;
 329 : TABRES.'DEPFINA'  = DEPSIP;
 330 : TABRES.'DSIFINA'  = DSIG;
 331 : TABRES.'EPMFINA'  = EPSIPM;
 332 : TABRES.'SIMFINA'  = SIGMOY;
 333 : TABRES.'MATETOT'  = MATOT;
 334 : TABRES.'MODETOT'  = MOTOT;
 335 : 
 336 : FINP TABRES;
 337 :  
 338 :  

© Cast3M 2003 - All rights reserved.
Disclaimer