Télécharger g_ulti2D.procedur

Retour à la liste

Numérotation des lignes :

  1. * G_ULTI2D PROCEDUR AF221230 16/11/03 21:15:04 9139
  2. 'DEBPROC' G_ULTI2D TAB1*'TABLE';
  3. * --------------------------------------------------------
  4. * Procedure G_ULTI2D
  5. * fonction pour la determination de la position de l'etat de contrainte S
  6. * actuel par rapport à la surface limite pour les trois couches
  7. * (externe, interne et intermediaire) selon le modele de MARTI
  8. * (voir EFFMERTI). la procedure donne en sortie la
  9. * valeur de controle VAL1. Si VAL1<0. S est en dehors du domaine ultime
  10. * VAL1>0. S est à l'intérieur du domaine ultime
  11. *
  12. * VAL1 = G_ULTI2D TAB1;
  13. *
  14. * En entree on utilise une table TAB1. Un indice de la table TAB1
  15. * indique si la definition de la surface limite doit etre faite pour
  16. * la couche extrene, interne ou intermediaire:
  17. *
  18. * TAB1.'TYPE_COUCHE' MOT pour indiquer le type de couche
  19. * 'COUCHE_EXT' couche externe
  20. * 'COUCHE_INT' couche interne
  21. * 'COUCHE_COR' couche intermediaire
  22. *
  23. * 1er option: TAB1.'TYPE_COUCHE' = 'COUCHE_EXT' (couche externe)
  24. * ou TAB1.'TYPE_COUCHE' = 'COUCHE_INT' (couche interne)
  25. *
  26. * TAB1.'S11' Contrainte sigma_11 [FLOTTANT]
  27. * .'S22' Contrainte sigma_22 [FLOTTANT]
  28. * .'S12' Contrainte sigma_12 [FLOTTANT]
  29. * .'FCK' Resistence caracteristiques du beton [FLOTTANT]
  30. * .'FSK_1' Resis. caract. de l'acier direction x [FLOTTANT]
  31. * .'FSK_2' Resis. caract. de l'acier direction y [FLOTTANT]
  32. * .'RHO_1' taux d'acier direction x [FLOTTANT]
  33. * .'RHO_2' taux d'acier direction y [FLOTTANT]
  34. * .'GAMMA_C' coefficient gamma_c
  35. * .'ALPA_C' coefficient alpha
  36. * .'NU_C' coefficient nu
  37. * .'GAMMA_S' coefficient gamma_s
  38. *
  39. *
  40. * 2er option: TAB1.'TYPE_COUCHE' = 'COUCHE_COR' (couche interm.)
  41. *
  42. * TAB1.'T1' Contrainte sigma_11 [FLOTTANT]
  43. * .'T2' Contrainte sigma_22 [FLOTTANT]
  44. * .'FCK' Resistence caracteristique du beton [FLOTTANT]
  45. * .'FSK_T' Resis. caract. de l'acier direction x [FLOTTANT]
  46. * .'RHO_T taux d'acier direction x [FLOTTANT]
  47. * .'GAMMA_C' coefficient gamma_c
  48. * .'ALPA_C' coefficient alpha
  49. * .'NU_C' coefficient nu
  50. * .'GAMMA_S' coefficient gamma_s
  51. * .'COT_THETA' cotg(theta) - facteur cisaillement[FLOTTANT]
  52. *
  53. *
  54. * Develeppers:
  55. * Alberto FRAU
  56. * DEN/DANS/DM2S/SEMT/EMSI
  57. * Nicolas ILE
  58. * DEN/DANS/DM2S/SEMT/EMSI
  59. *
  60. * --------------------------------------------------------
  61. *
  62. * Type of surface
  63. 'SI' ('EXIST' TAB1 'TYPE_COUCHE');
  64. TPY1 = TAB1.'TYPE_COUCHE';
  65. 'SI' ('NEG' ('TYPE' TPY1) 'MOT');
  66. 'MESS' 'Input Error ...';
  67. 'QUIT' G_ULTI2D;
  68. 'FINSI';
  69. 'SINON';
  70. 'MESS' 'Input Error ...';
  71. 'QUIT' G_ULTI2D;
  72. 'FINSI';
  73. *
  74. *
  75. 'SI' (('EGA' TPY1 'COUCHE_INT') 'OU' ('EGA' TPY1 'COUCHE_EXT'));
  76. *
  77. * ------------ Surface ultime pour les couches externes et ---------
  78. * ------------ interne du modele de MARTI -------------------------
  79. *
  80. * controle
  81. 'SI' ('EXIST' TAB1 'S11');
  82. X1 = TAB1.'S11';
  83. 'SI' ('NEG' ('TYPE' X1) 'FLOTTANT');
  84. 'MESS' 'Input Error ...';
  85. 'QUIT' G_ULTI2D;
  86. 'FINSI';
  87. 'SINON';
  88. 'MESS' 'Input Error ...';
  89. 'QUIT' G_ULTI2D;
  90. 'FINSI';
  91. 'SI' ('EXIST' TAB1 'S22');
  92. Y1 = TAB1.'S22';
  93. 'SI' ('NEG' ('TYPE' Y1) 'FLOTTANT');
  94. 'MESS' 'Input Error ...';
  95. 'QUIT' G_ULTI2D;
  96. 'FINSI';
  97. 'SINON';
  98. 'MESS' 'Input Error ...';
  99. 'QUIT' G_ULTI2D;
  100. 'FINSI';
  101. 'SI' ('EXIST' TAB1 'S12');
  102. Z1 = TAB1.'S12';
  103. 'SI' ('NEG' ('TYPE' Z1) 'FLOTTANT');
  104. 'MESS' 'Input Error ...';
  105. 'QUIT' G_ULTI2D;
  106. 'FINSI';
  107. 'SINON';
  108. 'MESS' 'Input Error ...';
  109. 'QUIT' G_ULTI2D;
  110. 'FINSI';
  111. 'SI' ('EXIST' TAB1 'FCK');
  112. FC1 = TAB1.'FCK';
  113. 'SI' ('NEG' ('TYPE' FC1) 'FLOTTANT');
  114. 'MESS' 'Input Error ...';
  115. 'QUIT' G_ULTI2D;
  116. 'FINSI';
  117. 'SINON';
  118. 'MESS' 'Input Error ...';
  119. 'QUIT' G_ULTI2D;
  120. 'FINSI';
  121. 'SI' ('EXIST' TAB1 'FSK_1');
  122. FSX = TAB1.'FSK_1';
  123. 'SI' ('NEG' ('TYPE' FSX) 'FLOTTANT');
  124. 'MESS' 'Input Error ...';
  125. 'QUIT' G_ULTI2D;
  126. 'FINSI';
  127. 'SINON';
  128. 'MESS' 'Input Error ...';
  129. 'QUIT' G_ULTI2D;
  130. 'FINSI';
  131. 'SI' ('EXIST' TAB1 'FSK_2');
  132. FSY = TAB1.'FSK_2';
  133. 'SI' ('NEG' ('TYPE' FSY) 'FLOTTANT');
  134. 'MESS' 'Input Error ...';
  135. 'QUIT' G_ULTI2D;
  136. 'FINSI';
  137. 'SINON';
  138. 'MESS' 'Input Error ...';
  139. 'QUIT' G_ULTI2D;
  140. 'FINSI';
  141. 'SI' ('EXIST' TAB1 'RHO_1');
  142. RSX = TAB1.'RHO_1';
  143. 'SI' ('NEG' ('TYPE' RSX) 'FLOTTANT');
  144. 'MESS' 'Input Error ...';
  145. 'QUIT' G_ULTI2D;
  146. 'FINSI';
  147. 'SINON';
  148. 'MESS' 'Input Error ...';
  149. 'QUIT' G_ULTI2D;
  150. 'FINSI';
  151. 'SI' ('EXIST' TAB1 'RHO_2');
  152. RSY = TAB1.'RHO_2';
  153. 'SI' ('NEG' ('TYPE' RSY) 'FLOTTANT');
  154. 'MESS' 'Input Error ...';
  155. 'QUIT' G_ULTI2D;
  156. 'FINSI';
  157. 'SINON';
  158. 'MESS' 'Input Error ...';
  159. 'QUIT' G_ULTI2D;
  160. 'FINSI';
  161. 'SI' ('EXIST' TAB1 'GAMMA_C');
  162. GAMC = TAB1.'GAMMA_C';
  163. 'SI' ('NEG' ('TYPE' GAMC) 'FLOTTANT');
  164. 'MESS' 'Input Error ...';
  165. 'QUIT' G_ULTI2D;
  166. 'FINSI';
  167. 'SINON';
  168. 'MESS' 'Input Error ...';
  169. 'QUIT' G_ULTI2D;
  170. 'FINSI';
  171. 'SI' ('EXIST' TAB1 'ALPA_C');
  172. ALP1 = TAB1.'ALPA_C';
  173. 'SI' ('NEG' ('TYPE' ALP1) 'FLOTTANT');
  174. 'MESS' 'Input Error ...';
  175. 'QUIT' G_ULTI2D;
  176. 'FINSI';
  177. 'SINON';
  178. 'MESS' 'Input Error ...';
  179. 'QUIT' G_ULTI2D;
  180. 'FINSI';
  181. 'SI' ('EXIST' TAB1 'NU_C');
  182. NU1 = TAB1.'NU_C';
  183. 'SI' ('NEG' ('TYPE' NU1) 'FLOTTANT');
  184. 'MESS' 'Input Error ...';
  185. 'QUIT' G_ULTI2D;
  186. 'FINSI';
  187. 'SINON';
  188. 'MESS' 'Input Error ...';
  189. 'QUIT' G_ULTI2D;
  190. 'FINSI';
  191. 'SI' ('EXIST' TAB1 'GAMMA_S');
  192. GAMS = TAB1.'GAMMA_S';
  193. 'SI' ('NEG' ('TYPE' GAMS) 'FLOTTANT');
  194. 'MESS' 'Input Error ...';
  195. 'QUIT' G_ULTI2D;
  196. 'FINSI';
  197. 'SINON';
  198. 'MESS' 'Input Error ...';
  199. 'QUIT' G_ULTI2D;
  200. 'FINSI';
  201. *
  202. * Determination of resistances (Steel and concrete)
  203. FXS = ((FSX)*(RSX))/(GAMS);
  204. FYS = ((FSY)*(RSY))/(GAMS);
  205. FC = ((ALP1)*((FC1)/(GAMC)));
  206. FC = FC*NU1;
  207. *
  208. VAL1 = -10000.;
  209. *
  210. *
  211. ****************************************************************
  212. * Domain 1
  213. ****************************************************************
  214. *
  215. 'SI' ((X1 '&lt;EG' (FXS)) 'ET'
  216. (X1 '>EG' (FXS - FC)) 'ET'
  217. (Y1 '&lt;EG' (FYS)) 'ET'
  218. (Y1 '>' (FYS - FC)) 'ET'
  219. ((X1 + Y1 - FXS - FYS + FC) '>EG' 0.0));
  220. *
  221. VAL1 = ((FXS - X1)*(FYS - Y1)) - ((Z1)*(Z1));
  222. *
  223. 'FINSI';
  224. *
  225. ****************************************************************
  226. * Domain 2
  227. ****************************************************************
  228. *
  229. 'SI' ((X1 '&lt;EG' (FXS - (0.5*FC))) 'ET'
  230. (X1 '>EG' ((-1.0)*(FXS + FC))) 'ET'
  231. (Y1 '>EG' (FYS - (0.5*FC))) 'ET'
  232. (Y1 '&lt;EG' (FYS)) 'ET'
  233. ((X1 + Y1 - FXS - FYS + FC) '<' 0.0) 'ET'
  234. ((X1 + Y1 + FXS - FYS + FC) '>EG' 0.0));
  235. *
  236. VAL1 = ((FC - FYS + Y1)*(FYS - Y1)) - ((Z1)*(Z1));
  237. *
  238. 'FINSI';
  239. *
  240. ****************************************************************
  241. * Domain 3
  242. ****************************************************************
  243. *
  244. 'SI' ((X1 '&lt;EG' (FXS)) 'ET'
  245. (X1 '>' (FXS - (0.5*FC))) 'ET'
  246. (Y1 '>EG' ((-1.0)*(FYS + FC))) 'ET'
  247. (Y1 '&lt;EG' (FYS - (0.5*FC))) 'ET'
  248. ((X1 + Y1 - FXS - FYS + FC) '<' 0.0) 'ET'
  249. ((X1 + Y1 - FXS + FYS + FC) '>EG' 0.0));
  250. *
  251. VAL1 = ((FXS - X1)*(FC - FXS + X1)) - ((Z1)*(Z1));
  252. *
  253. 'FINSI';
  254. *
  255. ****************************************************************
  256. * Domain 4
  257. ****************************************************************
  258. *
  259. 'SI' ((X1 '<' (FXS - (0.5*FC))) 'ET'
  260. (X1 '>EG' ((-1.0)*(FXS + (0.5*FC)))) 'ET'
  261. (Y1 '<' (FYS - (0.5*FC))) 'ET'
  262. (Y1 '>EG' ((-1.0)*(FYS + (0.5*FC)))));
  263. *
  264. VAL1 = (((FC)*(FC))/(4.0)) - ((Z1)*(Z1));
  265. *
  266. 'FINSI';
  267. *
  268. ****************************************************************
  269. * Domain 5
  270. ****************************************************************
  271. *
  272. 'SI' ((X1 '<' ((-1.0)*(FXS + (0.5*FC)))) 'ET'
  273. (X1 '>EG' ((-1.0)*(FXS + (FC)))) 'ET'
  274. (Y1 '>EG' ((-1.0)*(FYS + FC))) 'ET'
  275. (Y1 '&lt;EG' FYS) 'ET'
  276. ((X1 + Y1 + FXS - FYS + FC) '<' 0.0) 'ET'
  277. ((X1 + Y1 + FXS + FYS + FC) '>EG' 0.0));
  278. *
  279. VAL1 = ((-1.0)*((FXS + X1)*(FC + FXS + X1))) - ((Z1)*(Z1));
  280. *
  281. 'FINSI';
  282. *
  283. ****************************************************************
  284. * Domain 6
  285. ****************************************************************
  286. *
  287. 'SI' ((X1 '&lt;EG' FXS) 'ET'
  288. (X1 '>EG' ((-1.0)*(FXS + (0.5*FC)))) 'ET'
  289. (Y1 '<' ((-1.0)*(FYS + (0.5*FC)))) 'ET'
  290. (Y1 '>EG' ((-1.0)*(FYS + (FC)))) 'ET'
  291. ((X1 + Y1 - FXS + FYS + FC) '<' 0.0) 'ET'
  292. ((X1 + Y1 + FXS + FYS + FC) '>EG' 0.0));
  293. *
  294. VAL1 = ((-1.0)*((FYS + Y1)*(FC + FYS + Y1))) - ((Z1)*(Z1));
  295. *
  296. 'FINSI';
  297. *
  298. ****************************************************************
  299. * Domain 7
  300. ****************************************************************
  301. *
  302. 'SI' ((X1 '&lt;EG' ((1.0)*(FXS))) 'ET'
  303. (X1 '>EG' ((-1.0)*(FXS + (FC)))) 'ET'
  304. (Y1 '>EG' ((-1.0)*(FYS + (FC)))) 'ET'
  305. (Y1 '&lt;EG' ((1.0)*(FYS))) 'ET'
  306. ((X1 + Y1 + FXS + FYS + FC) '<' 0.0));
  307. *
  308. VAL1 = ((FC + FXS + X1)*(FC + FYS + Y1)) - ((Z1)*(Z1));
  309. *
  310. 'FINSI';
  311. *
  312. 'SINON';
  313. 'SI' (('EGA' TPY1 'COUCHE_COR'));
  314. *
  315. * ------------ Surface ultime pour la couches externes et ----
  316. * ------------ interne du modele de MARTI -------------------------
  317. *
  318. * controle
  319. 'SI' ('EXIST' TAB1 'T1');
  320. X1 = TAB1.'T1';
  321. 'SI' ('NEG' ('TYPE' X1) 'FLOTTANT');
  322. 'MESS' 'Input Error ...';
  323. 'QUIT' G_ULTI2D;
  324. 'FINSI';
  325. 'SINON';
  326. 'MESS' 'Input Error ...';
  327. 'QUIT' G_ULTI2D;
  328. 'FINSI';
  329. 'SI' ('EXIST' TAB1 'T2');
  330. Y1 = TAB1.'T2';
  331. 'SI' ('NEG' ('TYPE' Y1) 'FLOTTANT');
  332. 'MESS' 'Input Error ...';
  333. 'QUIT' G_ULTI2D;
  334. 'FINSI';
  335. 'SINON';
  336. 'MESS' 'Input Error ...';
  337. 'QUIT' G_ULTI2D;
  338. 'FINSI';
  339. 'SI' ('EXIST' TAB1 'FCK');
  340. FC1 = TAB1.'FCK';
  341. 'SI' ('NEG' ('TYPE' FC1) 'FLOTTANT');
  342. 'MESS' 'Input Error ...';
  343. 'QUIT' G_ULTI2D;
  344. 'FINSI';
  345. 'SINON';
  346. 'MESS' 'Input Error ...';
  347. 'QUIT' G_ULTI2D;
  348. 'FINSI';
  349. 'SI' ('EXIST' TAB1 'FSK_T');
  350. FST = TAB1.'FSK_T';
  351. 'SI' ('NEG' ('TYPE' FST) 'FLOTTANT');
  352. 'MESS' 'Input Error ...';
  353. 'QUIT' G_ULTI2D;
  354. 'FINSI';
  355. 'SINON';
  356. 'MESS' 'Input Error ...';
  357. 'QUIT' G_ULTI2D;
  358. 'FINSI';
  359. 'SI' ('EXIST' TAB1 'RHO_T');
  360. RST = TAB1.'RHO_T';
  361. 'SI' ('NEG' ('TYPE' RST) 'FLOTTANT');
  362. 'MESS' 'Input Error ...';
  363. 'QUIT' G_ULTI2D;
  364. 'FINSI';
  365. 'SINON';
  366. 'MESS' 'Input Error ...';
  367. 'QUIT' G_ULTI2D;
  368. 'FINSI';
  369. 'SI' ('EXIST' TAB1 'GAMMA_C');
  370. GAMC = TAB1.'GAMMA_C';
  371. 'SI' ('NEG' ('TYPE' GAMC) 'FLOTTANT');
  372. 'MESS' 'Input Error ...';
  373. 'QUIT' G_ULTI2D;
  374. 'FINSI';
  375. 'SINON';
  376. 'MESS' 'Input Error ...';
  377. 'QUIT' G_ULTI2D;
  378. 'FINSI';
  379. 'SI' ('EXIST' TAB1 'ALPA_C');
  380. ALP1 = TAB1.'ALPA_C';
  381. 'SI' ('NEG' ('TYPE' ALP1) 'FLOTTANT');
  382. 'MESS' 'Input Error ...';
  383. 'QUIT' G_ULTI2D;
  384. 'FINSI';
  385. 'SINON';
  386. 'MESS' 'Input Error ...';
  387. 'QUIT' G_ULTI2D;
  388. 'FINSI';
  389. 'SI' ('EXIST' TAB1 'GAMMA_S');
  390. GAMS = TAB1.'GAMMA_S';
  391. 'SI' ('NEG' ('TYPE' GAMS) 'FLOTTANT');
  392. 'MESS' 'Input Error ...';
  393. 'QUIT' G_ULTI2D;
  394. 'FINSI';
  395. 'SINON';
  396. 'MESS' 'Input Error ...';
  397. 'QUIT' G_ULTI2D;
  398. 'FINSI';
  399. 'SI' ('EXIST' TAB1 'NU_C');
  400. NU1 = TAB1.'NU_C';
  401. 'SI' ('NEG' ('TYPE' NU1) 'FLOTTANT');
  402. 'MESS' 'Input Error ...';
  403. 'QUIT' G_ULTI2D;
  404. 'FINSI';
  405. 'SINON';
  406. 'MESS' 'Input Error ...';
  407. 'QUIT' G_ULTI2D;
  408. 'FINSI';
  409. 'SI' ('EXIST' TAB1 'COT_THETA');
  410. COTH1 = TAB1.'COT_THETA';
  411. 'SI' ('NEG' ('TYPE' COTH1) 'FLOTTANT');
  412. 'MESS' 'Input Error ...';
  413. 'QUIT' G_ULTI2D;
  414. 'FINSI';
  415. 'SINON';
  416. 'MESS' 'Input Error ...';
  417. 'QUIT' G_ULTI2D;
  418. 'FINSI';
  419. *
  420. *
  421. 'SI' (RST > 0.0);
  422. FC = ((ALP1)*((FC1)/(GAMC)));
  423. FGA = ((((FST)*(RST))/(GAMS)))*(COTH1);
  424. FGB = (((1.0)*(NU1))*(FC))/(COTH1 + ((1.0)/(COTH1)));
  425. FG1 = 'MINI' ('PROG' FGA FGB);
  426. 'SINON';
  427. 'SI' (FC1 < 1.e6);
  428. FG1 = ((0.35)/(GAMC))*((((FC1)/(10.0)))**(0.5));
  429. FG1 = ((FG1)*(10.0));
  430. 'SINON';
  431. FG1 = ((0.35)/(GAMC))*(((FC1)/(1.E6))**(0.5));
  432. FG1 = ((FG1)*(1.E6));
  433. 'FINSI';
  434. 'FINSI';
  435. *
  436. VAL1 = ((FG1)*(FG1)) - ((X1*X1)) - ((Y1*Y1));
  437. 'FINSI';
  438. 'FINSI';
  439. *
  440. 'FINPROC' VAL1;
  441.  
  442.  

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