Télécharger @zacplus.procedur

Retour à la liste

Numérotation des lignes :

  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.  

© Cast3M 2003 - Tous droits réservés.
Mentions légales