Télécharger mrcfram1.procedur

Retour à la liste

Numérotation des lignes :

  1. * MRCFRAM1 PROCEDUR BP208322 20/05/05 21:15:02 10601
  2. DEBPROC MRCFRAM1 TYP_CAL2*'MOT '
  3. TAB_IN2*'TABLE' TOL_2*'FLOTTANT';
  4. *
  5. * --------------------------------------------------------
  6. * Procedure FRCFRAM1
  7. * Procedure appelee par MRCFRAME pour le calcul de la marge sismique
  8. * d'un element frame tyep POUTEAU COURT
  9. *
  10. * Developpers:
  11. * Alberto FRAU
  12. * DEN/DANS/DM2S/SEMT/EMSI
  13. * Nicolas ILE
  14. * DEN/DANS/DM2S/SEMT/EMSI
  15. * Giulia DI STEFANO
  16. *
  17. *
  18. * LAM1 = MRCFRAM1 MOT1 TAB1 TOL1;
  19. *
  20. *
  21. * INPUT:
  22. *
  23. * MOT1 [MOT] afin de specifier le type de calcul:
  24. * 'ELLIPSOIDE' calcul des marges avec l'enveloppe
  25. * ellipsiodale
  26. * 'RECTANGLE' calcul des marges avec l'enveloppe
  27. * prismatique
  28. *
  29. * TAB1 type TABLE pour definir les donnees suivantes:
  30. * TAB1.'BASE_Y1' dimension section direction Y en m [FLOTTANT]
  31. * TAB1.'BASE_Z1' dimension section direction Z en m [FLOTTANT]
  32. * TAB1.'LONG_Y1' longuer ly [FLOTTANT]
  33. * TAB1.'LONG_Z1' longuer lz [FLOTTANT]
  34. * TAB1.'ENROBA1' enrobage en m [FLOTTANT]
  35. * TAB1.'ACADRY1' aire de l'armature transversale
  36. * direction y en m2 [FLOTTANT]
  37. * TAB1.'ACADRZ1' aire de l'armature transversale
  38. * direction z en m2 [FLOTTANT]
  39. * TAB1.'S_CADR1' espacement des cadres en
  40. * m [FLOTTANT]
  41. * TAB1.'LI_PHI1' LISTREEL des diam barres d'acier en mm
  42. * TAB1.'PY_PHI1' LISTREEL de la position y en m de
  43. * chaque barre par rapport au
  44. * baricentre de la section
  45. * TAB1.'PZ_PHI1' LISTREEL de la position z en m de
  46. * chaque barre par rapport au
  47. * baricentre de la section
  48. * TAB1.'E_ACIE1' Module Young acier [FLOTTANT]
  49. * TAB1.'EP_BET1' deformation ultime beton [FLOTTANT]
  50. * TAB1.'EP_ACI1' deformation ultime acier [FLOTTANT]
  51. * TAB1.'OM_SY1' omega_s_y [FLOTTANT]
  52. * TAB1.'OM_SZ1' omega_s_z [FLOTTANT]
  53. * TAB1.'OM_WZ1' omega_w_y [FLOTTANT]
  54. * TAB1.'OM_WY1' omega_w_z [FLOTTANT]
  55. * TAB1.'LAMB_Y1' lambda_y [FLOTTANT]
  56. * TAB1.'LAMB_Z1' lambda_y [FLOTTANT]
  57. * TAB1.'CHI_Z1' chi_z [FLOTTANT]
  58. * TAB1.'CHI_Y1' chi_y [FLOTTANT]
  59. * TAB1.'EFFX0' EFFX statique [FLOTTANT]
  60. * TAB1.'EFFY0' EFFY statique [FLOTTANT]
  61. * TAB1.'EFFZ0' EFFZ statique [FLOTTANT]
  62. * TAB1.'MOMX0' MOMX statique [FLOTTANT]
  63. * TAB1.'MOMY0' MOMY statique [FLOTTANT]
  64. * TAB1.'MOMZ0' MOMZ statique [FLOTTANT]
  65. * TAB1.'NNNN1' (EFFX)2 - matrice X seisme [FLOTTANT]
  66. * TAB1.'NNVY1' Cov EFFX et EFFY -matrice X seisme [FLOTTANT]
  67. * TAB1.'NNVZ1' Cov EFFX et EFFZ -matrice X seisme [FLOTTANT]
  68. * TAB1.'NNMT1' Cov EFFX et MOMX -matrice X seisme [FLOTTANT]
  69. * TAB1.'NNMY1' Cov EFFX et MOMY -matrice X seisme [FLOTTANT]
  70. * TAB1.'NNMZ1' Cov EFFX et MOMZ -matrice X seisme [FLOTTANT]
  71. * TAB1.'VYVY1' (EFFY)2 - matrice X seisme [FLOTTANT]
  72. * TAB1.'VYVZ1' Cov EFFY et EFFZ -matrice X seisme [FLOTTANT]
  73. * TAB1.'VYMT1' Cov EFFY et MOMX -matrice X seisme [FLOTTANT]
  74. * TAB1.'VYMY1' Cov EFFY et MOMY -matrice X seisme [FLOTTANT]
  75. * TAB1.'VYMZ1' Cov EFFY et MOMZ -matrice X seisme [FLOTTANT]
  76. * TAB1.'VZVZ1' (EFFZ)2 - matrice X seisme [FLOTTANT]
  77. * TAB1.'VZMT1' Cov EFFZ et MOMX -matrice X seisme [FLOTTANT]
  78. * TAB1.'VZMY1' Cov EFFZ et MOMY -matrice X seisme [FLOTTANT]
  79. * TAB1.'VZMZ1' Cov EFFZ et MOMZ -matrice X seisme [FLOTTANT]
  80. * TAB1.'MTMT1' (MOMX)2 - matrice X seisme [FLOTTANT]
  81. * TAB1.'MTMY1' Cov MOMX et MOMY -matrice X seisme [FLOTTANT]
  82. * TAB1.'MTMZ1' Cov MOMX et MOMZ -matrice X seisme [FLOTTANT]
  83. * TAB1.'MYMY1' (MOMY)2 - matrice X seisme [FLOTTANT]
  84. * TAB1.'MYMZ1' Cov MOMY et MOMZ -matrice X seisme [FLOTTANT]
  85. * TAB1.'MZMZ1' (MOMZ)2 - matrice X seisme [FLOTTANT]
  86. * TAB1.'FCD1' fcd du beton [FLOTTANT]
  87. * TAB1.'FSD1' fsd du acier [FLOTTANT]
  88. *
  89. * TOL1 Tolerence du calcul (1.e-4)
  90. *
  91. *
  92. * OUTPUT:
  93. *
  94. *
  95. * LAM1 Marge sismique
  96. *
  97. *
  98. *
  99. * --------------------------------------------------------
  100. *
  101. *
  102. * Input Phase
  103. BASE_Y1 = TAB_IN2.'BASE_Y1';
  104. BASE_Z1 = TAB_IN2.'BASE_Z1';
  105. LONG_Y1 = TAB_IN2.'LONG_Y1';
  106. LONG_Z1 = TAB_IN2.'LONG_Z1';
  107. ENROBA1 = TAB_IN2.'ENROBA1';
  108. ACADRY1 = TAB_IN2.'ACADRY1';
  109. ACADRZ1 = TAB_IN2.'ACADRZ1';
  110. S_CADR1 = TAB_IN2.'S_CADR1';
  111. LI_PHI1 = TAB_IN2.'LI_PHI1';
  112. PY_PHI1 = TAB_IN2.'PY_PHI1';
  113. PZ_PHI1 = TAB_IN2.'PZ_PHI1';
  114. E_ACIE1 = TAB_IN2.'E_ACIE1';
  115. EP_BET1 = TAB_IN2.'EP_BET1';
  116. EP_ACI1 = TAB_IN2.'EP_ACI1';
  117. OM_SY1 = TAB_IN2.'OM_SY1';
  118. OM_SZ1 = TAB_IN2.'OM_SZ1';
  119. OM_WZ1 = TAB_IN2.'OM_WZ1';
  120. OM_WY1 = TAB_IN2.'OM_WY1';
  121. LAMB_Y1 = TAB_IN2.'LAMB_Y1';
  122. LAMB_Z1 = TAB_IN2.'LAMB_Z1';
  123. CHI_Z1 = TAB_IN2.'CHI_Z1';
  124. CHI_Y1 = TAB_IN2.'CHI_Y1';
  125. EFFX0 = TAB_IN2.'EFFX0';
  126. EFFY0 = TAB_IN2.'EFFY0';
  127. EFFZ0 = TAB_IN2.'EFFZ0';
  128. MOMX0 = TAB_IN2.'MOMX0';
  129. MOMY0 = TAB_IN2.'MOMY0';
  130. MOMZ0 = TAB_IN2.'MOMZ0';
  131. NNNN1 = TAB_IN2.'NNNN1';
  132. NNVY1 = TAB_IN2.'NNVY1';
  133. NNVZ1 = TAB_IN2.'NNVZ1';
  134. NNMT1 = TAB_IN2.'NNMT1';
  135. NNMY1 = TAB_IN2.'NNMY1';
  136. NNMZ1 = TAB_IN2.'NNMZ1';
  137. VYVY1 = TAB_IN2.'VYVY1';
  138. VYVZ1 = TAB_IN2.'VYVZ1';
  139. VYMT1 = TAB_IN2.'VYMT1';
  140. VYMY1 = TAB_IN2.'VYMY1';
  141. VYMZ1 = TAB_IN2.'VYMZ1';
  142. VZVZ1 = TAB_IN2.'VZVZ1';
  143. VZMT1 = TAB_IN2.'VZMT1';
  144. VZMY1 = TAB_IN2.'VZMY1';
  145. VZMZ1 = TAB_IN2.'VZMZ1';
  146. MTMT1 = TAB_IN2.'MTMT1';
  147. MTMY1 = TAB_IN2.'MTMY1';
  148. MTMZ1 = TAB_IN2.'MTMZ1';
  149. MYMY1 = TAB_IN2.'MYMY1';
  150. MYMZ1 = TAB_IN2.'MYMZ1';
  151. MZMZ1 = TAB_IN2.'MZMZ1';
  152. FCD1 = TAB_IN2.'FCD1';
  153. FSD1 = TAB_IN2.'FSD1';
  154. *
  155. ENR1 = ENROBA1;
  156. *
  157. * limites compression et traction
  158. NLIMC1 = (-1.0 - OM_SY1)*(((BASE_Y1)*(BASE_Z1))*(FCD1));
  159. NLIMT1 = (OM_SY1)*(((BASE_Y1)*(BASE_Z1))*(FCD1));
  160. *
  161. * Static Point
  162. TINI1 = TABLE;
  163. TINI1.'TYPE' = CHAINE 'P_COURT';
  164. TINI1.'NN' = EFFX0;
  165. TINI1.'VY' = EFFY0;
  166. TINI1.'VZ' = EFFZ0;
  167. TINI1.'MT' = MOMX0;
  168. TINI1.'MY' = MOMY0;
  169. TINI1.'MZ' = MOMZ0;
  170. TINI1.'BY' = BASE_Y1;
  171. TINI1.'BZ' = BASE_Z1;
  172. TINI1.'FCD' = FCD1;
  173. TINI1.'FSD' = FSD1;
  174. TINI1.'WSY' = OM_SY1;
  175. TINI1.'WSZ' = OM_SZ1;
  176. TINI1.'WWY' = OM_WY1;
  177. TINI1.'WWZ' = OM_WZ1;
  178. TINI1.'LY' = LAMB_Y1;
  179. TINI1.'LZ' = LAMB_Z1;
  180. TINI1.'XIY' = CHI_Y1;
  181. TINI1.'XIZ' = CHI_Z1;
  182. TINI1.'PHI_LON' = LI_PHI1;
  183. TINI1.'PHI_Y' = PY_PHI1;
  184. TINI1.'PHI_Z' = PZ_PHI1;
  185. TINI1.'EPSI_BET' = EP_BET1;
  186. TINI1.'EPSI_ACI' = EP_ACI1;
  187. TINI1.'YOUNG_ACIER' = E_ACIE1;
  188. *
  189. *
  190. 'SI' ('EGA' TYP_CAL1 'ELLIPSOIDE');
  191. *
  192. *-------------------------------------------------------------
  193. * Methode Ellipse
  194. *
  195. * Test about the static state stress
  196. T_ST1 = G_ULTIFR TINI1;
  197. *
  198. 'SI' (T_ST1 '<EG' 0.0);
  199. LAM_FIN1 = 0.0;
  200. TIT1 = 'CHAINE' ' Element ' I_IE1 ' Lambda='
  201. LAM_FIN1 '.....Sig0 externe';
  202. 'MESS' TIT1;
  203. 'SINON';
  204. MAI1 = 0. 0. 0.;
  205. * Matrix X
  206. MATX1 = VIDE 'RIGIDITE'/'RIGIDITE';
  207. MATX1 = MATX1 'ET' ('MANU' 'RIGIDITE' MAI1 (MOTS 'UX' 'UY' 'UZ')
  208. ('PROG' VYVY1 VYVZ1 NNVY1
  209. VYVZ1 VZVZ1 NNVZ1
  210. NNVY1 NNVZ1 NNNN1));
  211. *
  212. * Static state stress
  213. EF_ST0 = 'MANU' 'CHPO' MAI1 3 'FX' EFFY0 'FY' EFFZ0 'FZ' EFFX0;
  214. EF_ST0 = 'CHAN' 'ATTRIBUT' EF_ST0 'NATURE' 'DISCRET';
  215. *
  216. *
  217. * Initial Vecteur
  218. ALP_0 = 'MANU' 'CHPO' MAI1 3 'UX' 2.0 'UY' 2.0 'UZ' 2.0;
  219. XALP_0 = (MATX1*ALP_0)/(('XTMX' MATX1 ALP_0)**(0.5));
  220. XALP_0 = ('CHAN' ATTRIBUT XALP_0 NATURE DISCRET) + EF_ST0;
  221. *
  222. * direction used for the ellispoide methode
  223. TB_DIR = 'TABLE';
  224. TB_DIR. 1 = 'MANU' 'CHPO' MAI1 3 'UX' 1.0 'UY' 0.0 'UZ' 0.0;
  225. TB_DIR. 2 = 'MANU' 'CHPO' MAI1 3 'UX' 0.0 'UY' 1.0 'UZ' 0.0;
  226. TB_DIR. 3 = 'MANU' 'CHPO' MAI1 3 'UX' 0.0 'UY' 0.0 'UZ' 1.0;
  227. TB_DIR. 4 = 'MANU' 'CHPO' MAI1 3 'UX' -1.0 'UY' 0.0 'UZ' 0.0;
  228. TB_DIR. 5 = 'MANU' 'CHPO' MAI1 3 'UX' 0.0 'UY' -1.0 'UZ' 0.0;
  229. TB_DIR. 6 = 'MANU' 'CHPO' MAI1 3 'UX' 0.0 'UY' 0.0 'UZ' -1.0;
  230. *
  231. SB0 = ('XTX' (XALP_0 - EF_ST0))**(0.5);
  232. RB0 = SB0;
  233. LAMB0 = RB0/SB0;
  234. *
  235. * incremental step
  236. H_VAL1 = (SB0)/(100000.0);
  237. H_VAL2 = (SB0)/(100000.0);
  238. *
  239. * loop for each direction
  240. I_K1 = 1;
  241. 'REPE' IND3 (6);
  242. *
  243. TAB_ITE = 'TABLE';
  244. TAB_ITE. 0 = 'TABLE';
  245. TAB_ITE. 0 . 'ALPA' = ALP_0;
  246. TAB_ITE. 0 . 'LAMBDA' = LAMB0;
  247. TAB_ITE. 0 . 'RB' = RB0;
  248. *
  249. ALP_K = (TB_DIR. I_K1);
  250. I_M1 = 1;
  251. * first loop in order to have n_elllips=n_limite
  252. 'REPE' IND2 (200);
  253. * sauving Lambda for j iteraction
  254. TAB_ITE. I_M1 = 'TABLE';
  255. TAB_ITE. I_M1 . 'ALPA' = ALP_K;
  256. * determination of the stress state for the chosen direction
  257. XALP_J = (MATX1*ALP_K)/(('XTMX' MATX1 ALP_K)**(0.5));
  258. XALP_J = ('CHAN' ATTRIBUT XALP_J NATURE DISCRET) + EF_ST0;
  259. * nomalisez vector of hte rayon of the ellipsoide for the
  260. * chosen direction
  261. SBJ = ('XTX' (XALP_J - EF_ST0))**(0.5);
  262. BJ = (XALP_J - EF_ST0)/(SBJ);
  263. * rayon of the ellipsoide for the chosen direction
  264. RBVAL1 = (TAB_ITE.(I_M1 - 1). 'RB');
  265. * second loop in order to have f=0
  266. I_I1 = 1;
  267. 'REPE' IND1 (200);
  268. * strees state x0, x0+h, x0-h
  269. VV1 = (RBVAL1 + H_VAL1)*(BJ);
  270. VV2 = (RBVAL1 - H_VAL1)*(BJ);
  271. VV3 = (RBVAL1)*(BJ);
  272. VV1 = ('CHAN' 'ATTRIBUT' VV1 'NATURE' 'DISCRET') + EF_ST0;
  273. VV2 = ('CHAN' 'ATTRIBUT' VV2 'NATURE' 'DISCRET') + EF_ST0;
  274. VV3 = ('CHAN' 'ATTRIBUT' VV3 'NATURE' 'DISCRET') + EF_ST0;
  275. TINIA1 = 'COPI' TINI1;
  276. TINIB1 = 'COPI' TINI1;
  277. TINIC1 = 'COPI' TINI1;
  278. TINIA1.'NN' = EXTR VV1 'FZ' MAI1;
  279. TINIA1.'VY' = EXTR VV1 'FX' MAI1;
  280. TINIA1.'VZ' = EXTR VV1 'FY' MAI1;
  281. TINIA1.'MT' = 0.0;
  282. TINIA1.'MY' = 0.0;
  283. TINIA1.'MZ' = 0.0;
  284. TINIB1.'NN' = EXTR VV2 'FZ' MAI1;
  285. TINIB1.'VY' = EXTR VV2 'FX' MAI1;
  286. TINIB1.'VZ' = EXTR VV2 'FY' MAI1;
  287. TINIB1.'MT' = 0.0;
  288. TINIB1.'MY' = 0.0;
  289. TINIB1.'MZ' = 0.0;
  290. TINIC1.'NN' = EXTR VV3 'FZ' MAI1;
  291. TINIC1.'VY' = EXTR VV3 'FX' MAI1;
  292. TINIC1.'VZ' = EXTR VV3 'FY' MAI1;
  293. TINIC1.'MT' = 0.0;
  294. TINIC1.'MY' = 0.0;
  295. TINIC1.'MZ' = 0.0;
  296. 'OUBL' VV1;
  297. 'OUBL' VV2;
  298. 'OUBL' VV3;
  299. F_VAL1 = G_ULTIFR TINIC1;
  300. D_VAL1 = ((G_ULTIFR TINIA1) - (G_ULTIFR TINIB1))/
  301. ((2.0)*(H_VAL1));
  302. * controle
  303. 'SI' ((('ABS'(F_VAL1)) '<' ((TOL_2)/(100.0)))
  304. 'OU' (I_I1 'EGA' 200));
  305. RBJ = RBVAL1;
  306. 'QUIT' IND1;
  307. 'SINON';
  308. 'SI' (('ABS'(D_VAL1)) < 1.E-12);
  309. 'SI' (((ABS(TINIC1.'VY')) '<' ((TOL_1)*(1.E-4))) 'ET'
  310. ((ABS(TINIC1.'VZ')) '<' ((TOL_1)*(1.E-4))));
  311. 'SI' (((TINIC1.'NN') '<' NLIMC1));
  312. RBVAL2 = RBVAL1;
  313. RBVAL1 = ((NLIMC1) -
  314. (EXTR EF_ST0 'FZ' MAI1))/
  315. (EXTR BJ 'FZ' MAI1);
  316. 'SINON';
  317. 'SI' (((TINIC1.'NN') '>' NLIMT1));
  318. RBVAL2 = RBVAL1;
  319. RBVAL1 = ((NLIMT1) -
  320. (EXTR EF_ST0 'FZ' MAI1))/
  321. (EXTR BJ 'FZ' MAI1);
  322. 'FINSI';
  323. 'FINSI';
  324. 'SI' ((((TINIC1.'NN') '>EG' NLIMC1))
  325. 'ET' (((TINIC1.'NN') '&lt;EG' NLIMT1)));
  326. 'SI' ((EXTR ALP_K MAI1 'UZ') '<' 0.0);
  327. RBVAL2 = RBVAL1;
  328. RBVAL1 = ((NLIMC1) -
  329. (EXTR EF_ST0 'FZ' MAI1))/
  330. (EXTR BJ 'FZ' MAI1);
  331. 'SINON';
  332. RBVAL2 = RBVAL1;
  333. RBVAL1 = ((NLIMT1) -
  334. (EXTR EF_ST0 'FZ' MAI1))/
  335. (EXTR BJ 'FZ' MAI1);
  336. 'FINSI';
  337. 'FINSI';
  338. 'SINON';
  339. 'SI' (((TINIC1.'NN') '<' 0.0));
  340. RBVAL2 = RBVAL1;
  341. RBVAL1 = ((NLIMC1) -
  342. (EXTR EF_ST0 'FZ' MAI1) +
  343. ((NLIMT1)*(TOL_1)))/
  344. (EXTR BJ 'FZ' MAI1);
  345. 'SINON';
  346. 'SI' (((TINIC1.'NN') '>EG' 0.0));
  347. RBVAL2 = RBVAL1;
  348. RBVAL1 = ((NLIMT1) -
  349. (EXTR EF_ST0 'FZ' MAI1) -
  350. ((NLIMT1)*(TOL_1)))/
  351. (EXTR BJ 'FZ' MAI1);
  352. 'FINSI';
  353. 'FINSI';
  354. 'FINSI';
  355. 'SINON';
  356. * otherwise
  357. RBVAL2 = RBVAL1;
  358. RBVAL1 = RBVAL1 - ((F_VAL1)/(D_VAL1));
  359. 'FINSI';
  360. 'FINSI';
  361. I_I1 = I_I1 + 1;
  362. 'FIN' IND1;
  363. * computation of lambda
  364. LAMBJ = RBJ/SBJ;
  365. TAB_ITE. I_M1 . 'LAMBDA' = LAMBJ;
  366. TAB_ITE. I_M1 . 'RB' = RBJ;
  367. XCOUB1 = (((TAB_ITE. I_M1 .'LAMBDA')*(TAB_ITE. I_M1 .'LAMBDA'))*
  368. (MATX1));
  369. * amplified stress state using the lambda coef
  370. XALP_L = (XCOUB1*ALP_K)/(('XTMX' XCOUB1 ALP_K)**(0.5));
  371. XALP_L = ('CHAN' ATTRIBUT XALP_L NATURE DISCRET) + EF_ST0;
  372. * Dh*ex ; Dh*ey ; Dh*ez
  373. DE_HX = 'MANU' 'CHPO' MAI1 3 'FX' H_VAL2 'FY' 0.0 'FZ' 0.0;
  374. DE_HY = 'MANU' 'CHPO' MAI1 3 'FX' 0.0 'FY' H_VAL2 'FZ' 0.0;
  375. DE_HZ = 'MANU' 'CHPO' MAI1 3 'FX' 0.0 'FY' 0.0 'FZ' H_VAL2;
  376. * x0*lam + Dh*ex ; x0*lam + Dh*ey ; x0*lam + Dh*ez
  377. VV_HXP = XALP_L + DE_HX;
  378. VV_HYP = XALP_L + DE_HY;
  379. VV_HZP = XALP_L + DE_HZ;
  380. * x0*lam + Dh*ex ; x0*lam + Dh*ey ; x0*lam + Dh*ez
  381. VV_HXN = XALP_L - DE_HX;
  382. VV_HYN = XALP_L - DE_HY;
  383. VV_HZN = XALP_L - DE_HZ;
  384. * x0*lam
  385. VV_0 = XALP_L;
  386. *
  387. VV_HXP1 = 'EXTR' VV_HXP 'FX' MAI1;
  388. VV_HXP2 = 'EXTR' VV_HXP 'FY' MAI1;
  389. VV_HXP3 = 'EXTR' VV_HXP 'FZ' MAI1;
  390. VV_HYP1 = 'EXTR' VV_HYP 'FX' MAI1;
  391. VV_HYP2 = 'EXTR' VV_HYP 'FY' MAI1;
  392. VV_HYP3 = 'EXTR' VV_HYP 'FZ' MAI1;
  393. VV_HZP1 = 'EXTR' VV_HZP 'FX' MAI1;
  394. VV_HZP2 = 'EXTR' VV_HZP 'FY' MAI1;
  395. VV_HZP3 = 'EXTR' VV_HZP 'FZ' MAI1;
  396. VV_HXN1 = 'EXTR' VV_HXN 'FX' MAI1;
  397. VV_HXN2 = 'EXTR' VV_HXN 'FY' MAI1;
  398. VV_HXN3 = 'EXTR' VV_HXN 'FZ' MAI1;
  399. VV_HYN1 = 'EXTR' VV_HYN 'FX' MAI1;
  400. VV_HYN2 = 'EXTR' VV_HYN 'FY' MAI1;
  401. VV_HYN3 = 'EXTR' VV_HYN 'FZ' MAI1;
  402. VV_HZN1 = 'EXTR' VV_HZN 'FX' MAI1;
  403. VV_HZN2 = 'EXTR' VV_HZN 'FY' MAI1;
  404. VV_HZN3 = 'EXTR' VV_HZN 'FZ' MAI1;
  405. *
  406. VV_01 = 'EXTR' VV_0 'FX' MAI1;
  407. VV_02 = 'EXTR' VV_0 'FY' MAI1;
  408. VV_03 = 'EXTR' VV_0 'FZ' MAI1;
  409. *
  410. 'SI' ((VV_HZP3) '>' (NLIMT1));
  411. TINIA1 = 'COPI' TINI1;
  412. TINIB1 = 'COPI' TINI1;
  413. TINIA1.'NN' = VV_HXP3;
  414. TINIA1.'VY' = VV_HXP1;
  415. TINIA1.'VZ' = VV_HXP2;
  416. TINIA1.'MT' = 0.0;
  417. TINIA1.'MY' = 0.0;
  418. TINIA1.'MZ' = 0.0;
  419. TINIB1.'NN' = VV_HXN3;
  420. TINIB1.'VY' = VV_HXN1;
  421. TINIB1.'VZ' = VV_HXN2;
  422. TINIB1.'MT' = 0.0;
  423. TINIB1.'MY' = 0.0;
  424. TINIB1.'MZ' = 0.0;
  425. VAL_X1 = ((G_ULTIFR TINIA1) - (G_ULTIFR TINIB1))/
  426. ((2.0)*(H_VAL2));
  427. *
  428. TINIA1 = 'COPI' TINI1;
  429. TINIB1 = 'COPI' TINI1;
  430. TINIA1.'NN' = VV_HYP3;
  431. TINIA1.'VY' = VV_HYP1;
  432. TINIA1.'VZ' = VV_HYP2;
  433. TINIA1.'MT' = 0.0;
  434. TINIA1.'MY' = 0.0;
  435. TINIA1.'MZ' = 0.0;
  436. TINIB1.'NN' = VV_HYN3;
  437. TINIB1.'VY' = VV_HYN1;
  438. TINIB1.'VZ' = VV_HYN2;
  439. TINIB1.'MT' = 0.0;
  440. TINIB1.'MY' = 0.0;
  441. TINIB1.'MZ' = 0.0;
  442. VAL_Y1 = ((G_ULTIFR TINIA1) - (G_ULTIFR TINIB1))/
  443. ((2.0)*(H_VAL2));
  444. *
  445. TINIA1 = 'COPI' TINI1;
  446. TINIB1 = 'COPI' TINI1;
  447. TINIA1.'NN' = VV_03;
  448. TINIA1.'VY' = VV_01;
  449. TINIA1.'VZ' = VV_02;
  450. TINIA1.'MT' = 0.0;
  451. TINIA1.'MY' = 0.0;
  452. TINIA1.'MZ' = 0.0;
  453. TINIB1.'NN' = VV_HZN3;
  454. TINIB1.'VY' = VV_HZN1;
  455. TINIB1.'VZ' = VV_HZN2;
  456. TINIB1.'MT' = 0.0;
  457. TINIB1.'MY' = 0.0;
  458. TINIB1.'MZ' = 0.0;
  459. VAL_Z1 = ((G_ULTIFR TINIA1) - (G_ULTIFR TINIB1))/
  460. ((1.0)*(H_VAL2));
  461. 'SINON';
  462. 'SI' ((VV_HZN3) '<' (NLIMC1));
  463. TINIA1 = 'COPI' TINI1;
  464. TINIB1 = 'COPI' TINI1;
  465. TINIA1.'NN' = VV_HXP3;
  466. TINIA1.'VY' = VV_HXP1;
  467. TINIA1.'VZ' = VV_HXP2;
  468. TINIA1.'MT' = 0.0;
  469. TINIA1.'MY' = 0.0;
  470. TINIA1.'MZ' = 0.0;
  471. TINIB1.'NN' = VV_HXN3;
  472. TINIB1.'VY' = VV_HXN1;
  473. TINIB1.'VZ' = VV_HXN2;
  474. TINIB1.'MT' = 0.0;
  475. TINIB1.'MY' = 0.0;
  476. TINIB1.'MZ' = 0.0;
  477. VAL_X1 = ((G_ULTIFR TINIA1) - (G_ULTIFR TINIB1))/
  478. ((2.0)*(H_VAL2));
  479. *
  480. TINIA1 = 'COPI' TINI1;
  481. TINIB1 = 'COPI' TINI1;
  482. TINIA1.'NN' = VV_HYP3;
  483. TINIA1.'VY' = VV_HYP1;
  484. TINIA1.'VZ' = VV_HYP2;
  485. TINIA1.'MT' = 0.0;
  486. TINIA1.'MY' = 0.0;
  487. TINIA1.'MZ' = 0.0;
  488. TINIB1.'NN' = VV_HYN3;
  489. TINIB1.'VY' = VV_HYN1;
  490. TINIB1.'VZ' = VV_HYN2;
  491. TINIB1.'MT' = 0.0;
  492. TINIB1.'MY' = 0.0;
  493. TINIB1.'MZ' = 0.0;
  494. VAL_Y1 = ((G_ULTIFR TINIA1) - (G_ULTIFR TINIB1))/
  495. ((2.0)*(H_VAL2));
  496. *
  497. TINIA1 = 'COPI' TINI1;
  498. TINIB1 = 'COPI' TINI1;
  499. TINIA1.'NN' = VV_HZP3;
  500. TINIA1.'VY' = VV_HZP1;
  501. TINIA1.'VZ' = VV_HZP2;
  502. TINIA1.'MT' = 0.0;
  503. TINIA1.'MY' = 0.0;
  504. TINIA1.'MZ' = 0.0;
  505. TINIB1.'NN' = VV_03;
  506. TINIB1.'VY' = VV_01;
  507. TINIB1.'VZ' = VV_02;
  508. TINIB1.'MT' = 0.0;
  509. TINIB1.'MY' = 0.0;
  510. TINIB1.'MZ' = 0.0;
  511. VAL_Z1 = ((G_ULTIFR TINIA1) - (G_ULTIFR TINIB1))/
  512. ((1.0)*(H_VAL2));
  513. 'SINON';
  514. TINIA1 = 'COPI' TINI1;
  515. TINIB1 = 'COPI' TINI1;
  516. TINIA1.'NN' = VV_HXP3;
  517. TINIA1.'VY' = VV_HXP1;
  518. TINIA1.'VZ' = VV_HXP2;
  519. TINIA1.'MT' = 0.0;
  520. TINIA1.'MY' = 0.0;
  521. TINIA1.'MZ' = 0.0;
  522. TINIB1.'NN' = VV_HXN3;
  523. TINIB1.'VY' = VV_HXN1;
  524. TINIB1.'VZ' = VV_HXN2;
  525. TINIB1.'MT' = 0.0;
  526. TINIB1.'MY' = 0.0;
  527. TINIB1.'MZ' = 0.0;
  528. VAL_X1 = ((G_ULTIFR TINIA1) - (G_ULTIFR TINIB1))/
  529. ((2.0)*(H_VAL2));
  530. *
  531. TINIA1 = 'COPI' TINI1;
  532. TINIB1 = 'COPI' TINI1;
  533. TINIA1.'NN' = VV_HYP3;
  534. TINIA1.'VY' = VV_HYP1;
  535. TINIA1.'VZ' = VV_HYP2;
  536. TINIA1.'MT' = 0.0;
  537. TINIA1.'MY' = 0.0;
  538. TINIA1.'MZ' = 0.0;
  539. TINIB1.'NN' = VV_HYN3;
  540. TINIB1.'VY' = VV_HYN1;
  541. TINIB1.'VZ' = VV_HYN2;
  542. TINIB1.'MT' = 0.0;
  543. TINIB1.'MY' = 0.0;
  544. TINIB1.'MZ' = 0.0;
  545. VAL_Y1 = ((G_ULTIFR TINIA1) - (G_ULTIFR TINIB1))/
  546. ((2.0)*(H_VAL2));
  547. *
  548. TINIA1 = 'COPI' TINI1;
  549. TINIB1 = 'COPI' TINI1;
  550. TINIA1.'NN' = VV_HZP3;
  551. TINIA1.'VY' = VV_HZP1;
  552. TINIA1.'VZ' = VV_HZP2;
  553. TINIA1.'MT' = 0.0;
  554. TINIA1.'MY' = 0.0;
  555. TINIA1.'MZ' = 0.0;
  556. TINIB1.'NN' = VV_HZN3;
  557. TINIB1.'VY' = VV_HZN1;
  558. TINIB1.'VZ' = VV_HZN2;
  559. TINIB1.'MT' = 0.0;
  560. TINIB1.'MY' = 0.0;
  561. TINIB1.'MZ' = 0.0;
  562. VAL_Z1 = ((G_ULTIFR TINIA1) - (G_ULTIFR TINIB1))/
  563. ((2.0)*(H_VAL2));
  564. 'FINSI';
  565. 'FINSI';
  566. *
  567. * costruction n_limit
  568. DELTG1 = 'MANU' 'CHPO' MAI1 'UX' ((-1.0)*(VAL_X1))
  569. 'UY' ((-1.0)*(VAL_Y1))
  570. 'UZ' ((-1.0)*(VAL_Z1));
  571. DELTG1 = DELTG1/((XTX DELTG1)**(0.5));
  572. *
  573. * variable for the convergence test
  574. ID1_CON = 0;
  575. * check on the n_limit
  576. 'SI' ((('XTX' DELTG1)**(0.5)) < 1.E-7);
  577. * if |n_limit|=0 rotate the chosen direction by 10 degrees
  578. MATR1 = 'VIDE' 'RIGIDITE'/'RIGIDITE';
  579. MATR1 = MATR1 'ET'
  580. ('MANU' 'RIGIDITE' MAI1 ('MOTS' 'UX' 'UY' 'UZ') 'QUEL'
  581. ('PROG' (COS(10.0)) ((-1.0)*(SIN(10.0))) 0.0
  582. (SIN(10.0)) (COS(10.0)) 0.0
  583. 0.0 0.0 1.0));
  584. AAA1 = MATR1*ALP_K;
  585. DELTG1 = MANU CHPO MAI1 'UX' (EXTR AAA1 MAI1 'FX')
  586. 'UY' (EXTR AAA1 MAI1 'FY')
  587. 'UZ' (EXTR AAA1 MAI1 'FZ');
  588. 'FINSI';
  589. * convergence test
  590. VET_TEST = (TAB_ITE. I_M1 . 'ALPA')
  591. - (TAB_ITE. (I_M1 - 1) . 'ALPA');
  592. *
  593. 'SI' ((('XTX' VET_TEST)**(0.5)) '<' TOL_2);
  594. * deduction of the final value of Lambda
  595. 'SI' ((TAB_ITE. I_M1 . 'LAMBDA') '>' 0.0);
  596. 'SI' ('NEG' ('TYPE' LAM_FIN1) 'FLOTTANT');
  597. LAM_FIN1 = (TAB_ITE. I_M1 . 'LAMBDA');
  598. 'SINON';
  599. 'SI' (LAM_FIN1 '>' (TAB_ITE. I_M1 . 'LAMBDA'));
  600. LAM_FIN1 = (TAB_ITE. I_M1 . 'LAMBDA');
  601. 'FINSI';
  602. 'FINSI';
  603. 'FINSI';
  604. 'QUIT' IND2;
  605. 'SINON';
  606. 'SI' (I_M1 'EGA' 200);
  607. ID1_CON = 1;
  608. 'SI' ((TAB_ITE. I_M1 . 'LAMBDA') '>' 0.0);
  609. 'SI' ('NEG' ('TYPE' LAM_FIN1) 'FLOTTANT');
  610. LAM_FIN1 = (TAB_ITE. I_M1 . 'LAMBDA');
  611. 'SINON';
  612. 'SI' (LAM_FIN1 '>' (TAB_ITE. I_M1 . 'LAMBDA'));
  613. LAM_FIN1 = (TAB_ITE. I_M1 . 'LAMBDA');
  614. 'FINSI';
  615. 'FINSI';
  616. 'FINSI';
  617. 'SINON';
  618. * otherwise updating the n_limit
  619. ALP_K = DELTG1;
  620. 'FINSI';
  621. 'FINSI';
  622. * Display
  623. * MESS '-----------------------------';
  624. * LIST F_VAL1;
  625. * LIST I_I1;
  626. * LIST LAMBJ;
  627. * MESS '*';
  628. * LIST NLIMT1;
  629. * LIST NLIMC1;
  630. * LIST TINIC1.'VY';
  631. * LIST TINIC1.'VZ';
  632. * LIST TINIC1.'NN';
  633. * MESS '*';
  634. * LIST ('EXTR' (TAB_ITE. I_M1 . 'ALPA') 'UX' MAI1);
  635. * LIST ('EXTR' (TAB_ITE. I_M1 . 'ALPA') 'UY' MAI1);
  636. * LIST ('EXTR' (TAB_ITE. I_M1 . 'ALPA') 'UZ' MAI1);
  637. * LIST ('EXTR' DELTG1 'UX' MAI1);
  638. * LIST ('EXTR' DELTG1 'UY' MAI1);
  639. * LIST ('EXTR' DELTG1 'UZ' MAI1);
  640. * MESS '-----------------------------';
  641. I_M1 = I_M1 + 1;
  642. 'FIN' IND2;
  643. I_K1 = I_K1 + 1;
  644. 'FIN' IND3;
  645. *
  646. * screen message
  647. 'SI' (ID1_CON 'EGA' 0);
  648. TIT1 = 'CHAINE' ' Element ' I_ELE1 ' Lambda='
  649. LAM_FIN1;
  650. 'MESS' TIT1;
  651. 'FINSI';
  652. 'SI' (ID1_CON 'EGA' 1);
  653. TIT1 = 'CHAINE' ' Element ' I_ELE1 ' Lambda='
  654. LAM_FIN1 '.....Attention non convergence';
  655. 'FINSI';
  656. 'FINSI';
  657. 'SINON';
  658. *
  659. *-------------------------------------------------------------
  660. * Methode Rectangle
  661. *
  662. * Test about the static state stress
  663. T_ST1 = G_ULTIFR TINI1;
  664. *
  665. ID1_CON = 0;
  666. 'SI' (T_ST1 '&lt;EG' 0.0);
  667. LAM_FIN1 = 0.0;
  668. TIT1 = 'CHAINE' ' Element ' I_IE1 ' Lambda='
  669. LAM_FIN1 '.....Sig0 externe';
  670. 'MESS' TIT1;
  671. 'SINON';
  672. LAMB0 = 1.0;
  673. H_VAL3 = LAMB0/100;
  674. LL_LAMX = PROG -1.0 1.0 1.0 -1.0 -1.0 1.0 1.0 -1.0;
  675. LL_LAMY = PROG -1.0 -1.0 1.0 1.0 -1.0 -1.0 1.0 1.0;
  676. LL_LAMZ = PROG -1.0 -1.0 -1.0 -1.0 1.0 1.0 1.0 1.0;
  677. *
  678. * reference list for the 8 point for rectangle solid
  679. LL_I = PROG 1. 2. 3. 4. 5. 6. 7. 8.;
  680. *
  681. * creation of the resuming table
  682. TAB_ITE = 'TABLE';
  683. TAB_ITE. 0 = 'TABLE';
  684. TAB_ITE. 0 .'LAMBDA' = LAMB0 ;
  685. *
  686. I_MM1 = 0;
  687. ID1_CON = 0;
  688. *
  689. * loop for in order to find f=0
  690. 'REPE' IND4 (200);
  691. *
  692. * stress state for the 8 points
  693. X1_0 = (((VYVY1)**(0.5))*(((-1.0)*(LAMB0)))) + EFFY0;
  694. Y1_0 = (((VZVZ1)**(0.5))*(((-1.0)*(LAMB0)))) + EFFZ0;
  695. Z1_0 = (((NNNN1)**(0.5))*(((-1.0)*(LAMB0)))) + EFFX0;
  696. X2_0 = (((VYVY1)**(0.5))*(((1.0)*(LAMB0)))) + EFFY0;
  697. Y2_0 = (((VZVZ1)**(0.5))*(((-1.0)*(LAMB0)))) + EFFZ0;
  698. Z2_0 = (((NNNN1)**(0.5))*(((-1.0)*(LAMB0)))) + EFFX0;
  699. X3_0 = (((VYVY1)**(0.5))*(((1.0)*(LAMB0)))) + EFFY0;
  700. Y3_0 = (((VZVZ1)**(0.5))*(((1.0)*(LAMB0)))) + EFFZ0;
  701. Z3_0 = (((NNNN1)**(0.5))*(((-1.0)*(LAMB0)))) + EFFX0;
  702. X4_0 = (((VYVY1)**(0.5))*(((1.0)*(LAMB0)))) + EFFY0;
  703. Y4_0 = (((VZVZ1)**(0.5))*(((-1.0)*(LAMB0)))) + EFFZ0;
  704. Z4_0 = (((NNNN1)**(0.5))*(((-1.0)*(LAMB0)))) + EFFX0;
  705. X5_0 = (((VYVY1)**(0.5))*(((-1.0)*(LAMB0)))) + EFFY0;
  706. Y5_0 = (((VZVZ1)**(0.5))*(((-1.0)*(LAMB0)))) + EFFZ0;
  707. Z5_0 = (((NNNN1)**(0.5))*(((1.0)*(LAMB0)))) + EFFX0;
  708. X6_0 = (((VYVY1)**(0.5))*(((1.0)*(LAMB0)))) + EFFY0;
  709. Y6_0 = (((VZVZ1)**(0.5))*(((-1.0)*(LAMB0)))) + EFFZ0;
  710. Z6_0 = (((NNNN1)**(0.5))*(((1.0)*(LAMB0)))) + EFFX0;
  711. X7_0 = (((VYVY1)**(0.5))*(((1.0)*(LAMB0)))) + EFFY0;
  712. Y7_0 = (((VZVZ1)**(0.5))*(((1.0)*(LAMB0)))) + EFFZ0;
  713. Z7_0 = (((NNNN1)**(0.5))*(((1.0)*(LAMB0)))) + EFFX0;
  714. X8_0 = (((VYVY1)**(0.5))*(((1.0)*(LAMB0)))) + EFFY0;
  715. Y8_0 = (((VZVZ1)**(0.5))*(((-1.0)*(LAMB0)))) + EFFZ0;
  716. Z8_0 = (((NNNN1)**(0.5))*(((1.0)*(LAMB0)))) + EFFX0;
  717. *
  718. * put the N11, N22 et N12 stress state in the lists
  719. LL_X0 = 'PROG' (X1_0) (X2_0) (X3_0) (X4_0)
  720. (X5_0) (X6_0) (X7_0) (X8_0);
  721. LL_Y0 = 'PROG' (Y1_0) (Y2_0) (Y3_0) (Y4_0)
  722. (Y5_0) (Y6_0) (Y7_0) (Y8_0);
  723. LL_Z0 = 'PROG' (Z1_0) (Z2_0) (Z3_0) (Z4_0)
  724. (Z5_0) (Z6_0) (Z7_0) (Z8_0);
  725. LL_F0 = 'PROG';
  726. *
  727. * deduction of f for each point
  728. III1 = 1;
  729. 'REPE' IND2 (8);
  730. TINIC1 = 'COPI' TINI1;
  731. TINIC1.'NN' = ('EXTR' LL_Z0 III1);
  732. TINIC1.'VY' = ('EXTR' LL_X0 III1);
  733. TINIC1.'VZ' = ('EXTR' LL_Y0 III1);
  734. TINIC1.'MT' = 0.0;
  735. TINIC1.'MY' = 0.0;
  736. TINIC1.'MZ' = 0.0;
  737. LL_F0 = LL_F0 ET
  738. ('PROG' (G_ULTIFR TINIC1));
  739. III1 = III1 + 1;
  740. 'FIN' IND2;
  741. * saving
  742. TAB_ITE. I_MM1 .'L_X' = LL_X0;
  743. TAB_ITE. I_MM1 .'L_Y' = LL_Y0;
  744. TAB_ITE. I_MM1 .'L_Z' = LL_Z0;
  745. TAB_ITE. I_MM1 .'L_F' = LL_F0;
  746. * finding the minimum value of f and the corresponding point
  747. EV1 = 'EVOL' 'MANU' LL_I (LL_F0);
  748. II1 II2 VAL_F = 'MINI' EV1;
  749. * computation of D (gradiant) in case of Point_1=Argmin(fmin)
  750. X1_DP =
  751. (((VYVY1)**(0.5))*((('EXTR' LL_LAMX II1)*(LAMB0 + H_VAL3))))
  752. + EFFY0;
  753. Y1_DP =
  754. (((VZVZ1)**(0.5))*((('EXTR' LL_LAMY II1)*(LAMB0 + H_VAL3))))
  755. + EFFZ0;
  756. Z1_DP =
  757. (((NNNN1)**(0.5))*((('EXTR' LL_LAMZ II1)*(LAMB0 + H_VAL3))))
  758. + EFFX0;
  759. X1_0 =
  760. (((VYVY1)**(0.5))*((('EXTR' LL_LAMX II1)*(LAMB0))))
  761. + EFFY0;
  762. Y1_0 =
  763. (((VZVZ1)**(0.5))*((('EXTR' LL_LAMY II1)*(LAMB0))))
  764. + EFFZ0;
  765. Z1_0 =
  766. (((NNNN1)**(0.5))*((('EXTR' LL_LAMZ II1)*(LAMB0))))
  767. + EFFX0;
  768. X1_DN =
  769. (((VYVY1)**(0.5))*((('EXTR' LL_LAMX II1)*(LAMB0 - H_VAL3))))
  770. + EFFY0;
  771. Y1_DN =
  772. (((VZVZ1)**(0.5))*((('EXTR' LL_LAMY II1)*(LAMB0 - H_VAL3))))
  773. + EFFZ0;
  774. Z1_DN =
  775. (((NNNN1)**(0.5))*((('EXTR' LL_LAMZ II1)*(LAMB0 - H_VAL3))))
  776. + EFFX0;
  777. 'SI' (Z1_DP '>EG' NLIMT1);
  778. TINIA1 = 'COPI' TINI1;
  779. TINIB1 = 'COPI' TINI1;
  780. TINIA1.'NN' = Z1_0;
  781. TINIA1.'VY' = X1_0;
  782. TINIA1.'VZ' = Y1_0;
  783. TINIA1.'MT' = 0.0;
  784. TINIA1.'MY' = 0.0;
  785. TINIA1.'MZ' = 0.0;
  786. TINIB1.'NN' = Z1_DN;
  787. TINIB1.'VY' = X1_DN;
  788. TINIB1.'VZ' = Y1_DN;
  789. TINIB1.'MT' = 0.0;
  790. TINIB1.'MY' = 0.0;
  791. TINIB1.'MZ' = 0.0;
  792. D_VAL1 = ((G_ULTIFR TINIA1) - (G_ULTIFR TINIB1))/
  793. ((1.0)*(H_VAL3));
  794. 'SINON';
  795. 'SI' (Z1_DN '&lt;EG' NLIMC1);
  796. TINIA1 = 'COPI' TINI1;
  797. TINIB1 = 'COPI' TINI1;
  798. TINIA1.'NN' = Z1_DP;
  799. TINIA1.'VY' = X1_DP;
  800. TINIA1.'VZ' = Y1_DP;
  801. TINIA1.'MT' = 0.0;
  802. TINIA1.'MY' = 0.0;
  803. TINIA1.'MZ' = 0.0;
  804. TINIB1.'NN' = Z1_0;
  805. TINIB1.'VY' = X1_0;
  806. TINIB1.'VZ' = Y1_0;
  807. TINIB1.'MT' = 0.0;
  808. TINIB1.'MY' = 0.0;
  809. TINIB1.'MZ' = 0.0;
  810. D_VAL1 = ((G_ULTIFR TINIA1) - (G_ULTIFR TINIB1))/
  811. ((1.0)*(H_VAL3));
  812. 'SINON';
  813. TINIA1 = 'COPI' TINI1;
  814. TINIB1 = 'COPI' TINI1;
  815. TINIA1.'NN' = Z1_DP;
  816. TINIA1.'VY' = X1_DP;
  817. TINIA1.'VZ' = Y1_DP;
  818. TINIA1.'MT' = 0.0;
  819. TINIA1.'MY' = 0.0;
  820. TINIA1.'MZ' = 0.0;
  821. TINIB1.'NN' = Z1_DN;
  822. TINIB1.'VY' = X1_DN;
  823. TINIB1.'VZ' = Y1_DN;
  824. TINIB1.'MT' = 0.0;
  825. TINIB1.'MY' = 0.0;
  826. TINIB1.'MZ' = 0.0;
  827. D_VAL1 = ((G_ULTIFR TINIA1) - (G_ULTIFR TINIB1))/
  828. ((2.0)*(H_VAL3));
  829. 'FINSI';
  830. 'FINSI';
  831. 'OUBL' X1_DP;
  832. 'OUBL' Y1_DP;
  833. 'OUBL' Z1_DP;
  834. 'OUBL' X1_DN;
  835. 'OUBL' Y1_DN;
  836. 'OUBL' Z1_DN;
  837. * 'OUBL' X1_0;
  838. * 'OUBL' Y1_0;
  839. * 'OUBL' Z1_0;
  840. *
  841. * Display
  842. * MESS '-----------------------';
  843. * LIST II1;
  844. * LIST LAMB0;
  845. * LIST VAL_F;
  846. * LIST D_VAL1;
  847. * MESS '*';
  848. * LIST X1_0;
  849. * LIST Y1_0;
  850. * LIST Z1_0;
  851. *
  852. * test convergence
  853. 'SI' (('ABS'(VAL_F)) '<' TOL_2);
  854. * convergence!!!
  855. LAM_FIN1 = LAMB0;
  856. 'QUIT' IND4;
  857. 'SINON';
  858. 'SI' (I_MM1 'EGA' 199);
  859. LAM_FIN1 = LAMB0;
  860. ID1_CON = 1;
  861. 'QUIT' IND4;
  862. 'FINSI';
  863. 'SI' (('ABS'(D_VAL1)) < 1.E-12);
  864. 'SI' ((Z1_0) '>EG' (NLIMT1));
  865. LAMB1 = LAMB0;
  866. LAMB0 = ((NLIMT1) - EFFX0 - ((NLIMT1)*(TOL_2)))/
  867. (((NNNN1)**(0.5))*('EXTR' LL_LAMZ II1));
  868. 'SINON';
  869. 'SI' ((Z1_0) '&lt;EG' (NLIMC1));
  870. LAMB1 = LAMB0;
  871. LAMB0 = ((NLIMC1) - EFFX0 + ((NLIMC1)*(TOL_2)))/
  872. (((NNNN1)**(0.5))*('EXTR' LL_LAMZ II1));
  873.  
  874. 'FINSI';
  875. 'FINSI';
  876. 'SINON';
  877.  
  878.  
  879. * otherwise
  880. LAMB1 = LAMB0;
  881. LAMB0 = LAMB0 - ((VAL_F)/(D_VAL1));
  882. 'SI' (((ABS(LAMB1 - LAMB0))/(LAMB0)) '<' (1.E-8));
  883. LAMB0 = LAMB0*0.90;
  884. 'FINSI';
  885. 'FINSI';
  886. 'FINSI';
  887. 'OUBL' VAL_F;
  888. 'OUBL' D_VAL1;
  889. *
  890. TAB_ITE. (I_MM1 + 1) = 'TABLE';
  891. TAB_ITE. (I_MM1 + 1) .'LAMBDA' = ABS(LAMB0) ;
  892. *
  893. I_MM1 = I_MM1 + 1;
  894. 'FIN' IND4;
  895.  
  896. 'FINSI';
  897. *
  898. * screen message
  899. 'SI' (ID1_CON 'EGA' 0);
  900. TIT1 = 'CHAINE' ' Element ' I_ELE1 ' Lambda='
  901. LAM_FIN1;
  902. 'MESS' TIT1;
  903. 'FINSI';
  904. 'SI' (ID1_CON 'EGA' 1);
  905. TIT1 = 'CHAINE' ' Element ' I_ELE1 ' Lambda='
  906. LAM_FIN1 '.....Attention non convergence';
  907. 'MESS' TIT1;
  908. 'FINSI';
  909. *
  910. 'FINSI';
  911. * MESS 'SONO QUI';
  912. FINPROC LAM_FIN1;
  913.  
  914.  
  915.  
  916.  

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