Télécharger unilater.procedur

Retour à la liste

Numérotation des lignes :

  1. * UNILATER PROCEDUR PV 19/12/11 21:15:19 10427
  2. * MODIF JUILLET 1987 POUR PERMETTRE DES JEUX DANS LES LES 2 DIRECTIONS
  3. *
  4. * CETTE PROCEDURE EST APPELER PAR RESOU
  5. * LES ARGUMENTS SONT : MATAB TABLE CONTENANT LES INFORMATIONS UTILES
  6. * C'EST A DIRE RRR BBB STAT SUP RITOU ET LISEA
  7. * FFF FORCE A METTRE AU SECOND MEMBRE
  8. *
  9. * RRR MATRICE DE RIGIDITE SANS LES APPUIS
  10. * BBB MATRICE DE RIGIDITE DES APPUIS
  11. * STAT LOGIQUE INDIQUANT SI C'EST LE PREMIER PASSAGE
  12. * SUP SUPER ELEMENT EQUIVALENT
  13. * RITOU DERNIERE RAIDEUR UTILISEE DANS LA RESOLUTION
  14. * LISEA DESCRIPTEUR DES APPUIS COURAMMENT ACTIFS
  15. *
  16. 'DEBP' UNILATER MATAB*'TABLE' FFF*'CHPOINT' MCLE/'MOT' FL/'CHPOINT';
  17.  
  18. * Si il y a lieu,nbnegs est le nombre de multiplicateurs de lagrange contenus da
  19. nbnegs = 0;
  20. nbnegt = 0;
  21. mostab ='MOT' 'NOSTAB';
  22.  
  23. LOG_FL='EGA' ('TYPE' FL) 'CHPOINT' ;
  24.  
  25. 'SI' ('EGA' 'INIB' MCLE);
  26. 'ARGU' TEMP*'RIGIDITE';
  27. MATAB.7 = TEMP;
  28. 'ARGU' TEMP*'LISTENTI';
  29. MATAB.6 = TEMP;
  30. MATAB.'OK' = VRAI ;
  31. 'FINSI';
  32.  
  33. * RRR = MATAB.1 ;
  34. BBB = MATAB.2 ;
  35.  
  36. 'SI' LOG_FL ;
  37. FADZ ='EXCO' FL 'FADH' 'NOID' 'LX' ;
  38. FL ='EXCO' FL 'LX' 'NOID' 'LX' ;
  39. chp2 = BBB * FADZ ;
  40. chp_z = BBB * FL ;
  41. FFF = FFF + chp_z + chp2 ;
  42. 'DETR' chp_z ;
  43. 'DETR' chp2 ;
  44. 'FINSI';
  45.  
  46. STAT = MATAB.3 ;
  47.  
  48. 'SI' STAT ;
  49. 'SI' MATAB.'VRAISUP';
  50. SUP = MATAB.4 ;
  51. 'SINON';
  52. RISUP= MATAB.4 ;
  53. 'FINSI';
  54. 'SINON' ;
  55.  
  56. ************************************************************************
  57. * CALCUL DU SUPER ELEMENT (SI BESOIN)
  58. ************************************************************************
  59. MMM ='EXTR' MATAB.1 'MAILLAGE';
  60. MMB ='EXTR' BBB 'MAILLAGE';
  61. MMU = MMM 'ELEM' 'APPU' 'LARG' MMB;
  62. NTOT='NBEL' MMM ;
  63. NAPP='NBEL' MMU;
  64. * MESS ' unilater ntot napp ' NTOT NAPP ;
  65. 'SI' (((NAPP * 2) > NTOT ) 'OU' MATAB.'NSYM' );
  66. * MESS ' unilater pas de super element' napp ntot;
  67. RISUP = MATAB.1 ;
  68. MATAB.4 = MATAB.1 ;
  69. MATAB.'VRAISUP'= FAUX ;
  70.  
  71. 'SINON';
  72. * mess ' on calcule le super element';
  73. * je remets l'option NOMU car il y a un problème de normalisation avec les mults
  74. * A voir si elle ne pose pas des problèmes de surcontraintes.
  75. SUP ='SUPER' 'RIGI' MATAB.1 BBB ;
  76. MATAB.4 = SUP ;
  77. MATAB.'VRAISUP'= VRAI ;
  78. 'FINSI';
  79. 'FINSI' ;
  80.  
  81. ISUP = MATAB.'VRAISUP' ;
  82. MATAB.3= VRAI;
  83.  
  84. ************************************************************************
  85. * AU CAS OU IL N'Y AURAIT PAS DE DEPIMP
  86. ************************************************************************
  87. FA = FFF + ('DEPI' BBB 0.);
  88. DEPTOT = FA 'EXCO' 'FLX' 'FLX' ;
  89. 'SI' ISUP ;
  90. RISUP= ('EXTRAI' SUP 'RIGI') ;
  91. ** list resu risup;
  92. ** risup = cano risup;
  93. ** list resu risup;
  94. MASUP= 'EXTRAI' RISUP 'MAIL' ;
  95. DEPTOT = DEPTOT - (DEPTOT REDU MASUP);
  96. F = 'SUPER' 'CHAR' SUP FA ;
  97. f_lx = f 'EXCO' 'FLX' 'NOID';
  98. f_lx_m = f_lx 'EXTR' 'MAIL';
  99. 'SI' ('NEG' ('TYPE' F_LX_m) 'ENTIER');
  100. nbnegs = f_lx_m nbno;
  101. 'FINSI';
  102. 'SINON';
  103. RISUP = MATAB.1 * 1;
  104. F=FA 'ENLE' 'FLX';
  105. 'FINSI';
  106. 'SI' ('NON' MATAB.'VRAISUP');
  107. nbnegs = 0;
  108. 'FINSI';
  109. FDEPTO=F + DEPTOT ;
  110.  
  111. ************************************************************************
  112. * INITIALISATION
  113. ************************************************************************
  114. 'SI' ('NON' STAT);
  115. MATAB.'OK' = VRAI;
  116. 'FINSI';
  117. 'SI' (STAT 'ET' MATAB.'OK') ;
  118. RITOU = MATAB.5 ;
  119. LISEA = MATAB.6 ;
  120. *** BLOINI = BBB ;
  121. FDEPTOT=FDEPTO;
  122. 'SINON' ;
  123. 'SI' ('EXISTE' MATAB 7) ;
  124. BLOINI = MATAB.7;
  125. RITOU = RISUP 'ET' MATAB.7 ;
  126. LISEA = MATAB.6 'ET' ('LECT') ;
  127. FDEPTOT=FDEPTO;
  128. 'SINON';
  129. BLOINI = BBB ;
  130. * RITOU = RISUP * 1.;
  131. RITOU = RISUP 'ET' BLOINI ;
  132. * INITIALISER LISEA A UNE VALEUR IMPOSSIBLE
  133. LISEA ='LECT' -1 ;
  134. FDEPTOT= F ;
  135. 'FINSI';
  136. ** 'MESS' 'on est bien la ';
  137. ** RITOU = RISUP 'ET' BLOINI ;
  138. ** RITOU = RISUP * 1. ;
  139. 'FINSI' ;
  140. *
  141. MATAB.'OK' = VRAI;
  142. matab.5 = 1 ;
  143. matab.6 = 1 ;
  144.  
  145. LITOT ='LECT' ;
  146. BLOTOT = BBB ;
  147.  
  148. ************************************************************************
  149. * RECHERCHE DES BLOQUAGES ACTIFS
  150. ************************************************************************
  151. OPTION ='MOT' 'RAPIDE';
  152. 'SI' ('EXIS' FL) ;
  153. OPTIO2='MOT' 'INIT';
  154. 'SINON';
  155. OPTIO2='MOT' 'CONT';
  156. 'FINSI';
  157.  
  158. I = 0 ;
  159. NCONV = VRAI ;
  160.  
  161. 'REPETER' BOUCL1 ;
  162. I = I + 1 ;
  163. MAFREIN*'MAILLAGE' NBE*'ENTIER' DE = 'RESO' 'NOID' 'ENSE' 'NOUNIL' MOSTAB RITOU FDEPTOT;
  164. * nbnegt = 'MAXI' ('LECT' nbnegt ('DIAG' ritou));
  165. nbnegt = 'DIAG' ritou;
  166. 'SI' LOG_FL;
  167. BLOTO LISEN LOG1 = BLOTOT 'EXCITER' DEPTOT DE MAFREIN OPTION FL ;
  168. 'SINON';
  169. BLOTO LISEN LOG1 = BLOTOT 'EXCITER' DEPTOT DE MAFREIN OPTION ;
  170. 'FINSI';
  171. 'SI' ('NON' ('VERI' DE));
  172. DE = 'VIDE' 'CHPOINT'/'DIFFUS';
  173. 'MESS' 'mise a zero des deplacements';
  174. 'QUIT' boucl1;
  175. 'FINSI';
  176. * list lisen;
  177. 'SI' ((I 'EGA' 5) 'ET' ('EGA' OPTION 'RAPIDE'));
  178. OPTION ='MOT' 'MOYEN';
  179. 'FINSI';
  180.  
  181. 'SI' (('NEG' 'INIB' MCLE) 'OU' (I 'NEG' 1));
  182. 'SI' ((LISEN 'EGA' LISEA) 'OU' LOG1) ;
  183. 'SI' (I 'NEG' 1) ;
  184. 'SI' ((NBE 'EGA' 0) 'OU' ('EGA' OPTION 'QAPIDE'));
  185. NCONV= FAUX ;
  186. 'QUIT' BOUCL1;
  187. 'SINON';
  188. M1 = 'EXTR' (RISUP ET BLOTO) 'MAIL';
  189. M2 = 'EXTR' RITOU 'MAIL';
  190. M3 = M1 'DIFF' M2;
  191. 'SI' (('NBEL' M3) 'EGA' 0) ;
  192. NCONV= FAUX ;
  193. 'QUIT' BOUCL1 ;
  194. 'FINSI';
  195. 'FINSI';
  196. 'FINSI';
  197. 'FINSI';
  198.  
  199. 'SI' ((LISEN 'DANS' LITOT) 'OU' (('MULT' &BOUCL1 100) 'ET' ('NEG' OPTION 'LENT'))) ;
  200. 'SI' ('EGA' OPTION 'LENT');
  201. 'SI' ('EGA' OPTIO2 'CONT');
  202. OPTIO2= 'MOT' 'INIT';
  203. OPTION= 'MOT' 'RAPIDE';
  204. BLOTO=BBB;
  205.  
  206. LITOT= 'LECT' ;
  207. LISEN=LISEN * -1;
  208. 'MESS' ' *** UNILATER strategie alternative a la' ' ' I ' eme iteration';
  209. mostab = MOT 'STAB';
  210. I=0;
  211. 'SINON';
  212. 'QUIT' BOUCL1;
  213. 'FINSI';
  214. 'SINON';
  215. OPTION = 'MOT' 'LENT';
  216. LITOT = 'LECT';
  217. 'MESS' ' *** UNILATER strategie lente a la' ' ' I ' eme iteration';
  218. 'FINSI';
  219. 'FINSI';
  220. 'FINSI';
  221. LITAN=LITOT;
  222. LITOT=LITOT 'ET' LISEN;
  223. 'DETR' LITAN;
  224. 'DETR' DE ;
  225. * 'SI' ('EXISTE' MATAB 5);
  226. * 'SI' ('NEG' RITOU (MATAB.5)); 'DETR' RITOU; 'FINSI';
  227. * 'SINON';
  228. 'DETR' RITOU;
  229. * 'FINSI';
  230. * 'SI' (I 'NEG' 1);GEO='EXTRAI' BLOT 'MAIL';'DETR' GEO 'TOUT';
  231. * 'DETR' BLOT 'ELEM' ;'FINSI';
  232.  
  233. RITOU = RISUP 'ET' BLOTO ;
  234. BLOT = BLOTO ;
  235. LISEA = LISEN ;
  236. FDEPTOT= FDEPTO;
  237. 'FIN' BOUCL1;
  238.  
  239. * CFBUG = 'CHAINE' ' *** UNILATER convergence à l''''itération ';
  240. * 'MESS' CFBUG I;
  241. 'SI' (NBE 'NEG' 0) ;
  242. MATAB.'OK' = FAUX;
  243. 'FINSI';
  244.  
  245. MATAB.5 = RITOU ;
  246. MATAB.6 = LISEA ;
  247. MATAB.7 = BLOTO ;
  248. MATAB.13 = nbnegt - nbnegs;
  249.  
  250. 'SI' NCONV ;
  251. NCONV =FAUX;
  252. MATAB.'OK'=FAUX;
  253. 'FINSI';
  254.  
  255. 'SI' NCONV ;
  256. 'MESS' ' *** UNILATER il n y a pas de solution au systeme ';
  257. RITOU = RISUP 'ET' BBB ;
  258. LISEA = 'LECT' 0;
  259. MATAB.5 = RITOU ;
  260. MATAB.6 = LISEA ;
  261. MATAB.7 = BLOTO;
  262. 'SOUCI' 2345;
  263.  
  264. 'SINON';
  265. * CFBUG = 'CHAINE' ' *** UNILATER convergence à l''''itération ';
  266. 'SI' ('NON' MATAB.'OK');
  267. CFBUG = 'CHAINE' ' *** UNILATER non convergence à l''''itération ';
  268. 'MESS' CFBUG I nbe;
  269. MATAB.13 = 1234 ;
  270. 'SOUCI' 1234;
  271. 'FINSI';
  272. MATAB.'NITER' = I;
  273.  
  274. ************************************************************************
  275. * CALCUL SUR TOUTE LA STRUCTURE
  276. ************************************************************************
  277. 'SI' ISUP;
  278. DE1 ='SUPER' 'DEPL' SUP DE FFF;
  279. DE2 = DE1 'ET' (DE 'ENLE' 'LX') 'NOER';
  280. 'DETR' DE1;
  281. 'DETR' DE ;
  282. 'DETR' FA ;
  283. 'SINON';
  284. DE2 = DE ;
  285. 'FINSI' ;
  286.  
  287. 'SI' LOG_FL;
  288. DE2 = DE2 - FADZ ;
  289. FL = FL 'REDU' (BBB 'EXTR' 'MAIL' 'MULT');
  290. DE3 = DE2 - FL ;
  291. 'DETR' DE2 ;
  292. DE2 = DE3 ;
  293. 'FINSI';
  294. 'FINSI' ;
  295.  
  296. 'DETR' F ;
  297. 'DETR' DEPTOT ;
  298. 'DETR' FDEPTOT ;
  299.  
  300. 'SI' ( 'EXISTE' MATAB 50) ;
  301. DE3 = 'MREM' DE2 matab.50 matab.10 matab.11;
  302. 'RESPRO' DE3;
  303. 'SINON' ;
  304. * mess ' dans unilater de2 ';list de2;
  305. 'RESPRO' DE2 ;
  306. 'FINSI' ;
  307.  
  308. 'SI' ('EGA' 'INIB' MCLE);
  309. 'SI' LOG_FL ;
  310. 'RESP' 'bid' 'bid' 'bid' 'bid';
  311. 'SINON';
  312. 'RESP' 'bid' 'bid' 'bid' ;
  313. 'FINSI';
  314. 'FINSI';
  315. 'FINP' ;
  316.  
  317.  
  318.  
  319.  
  320.  
  321.  
  322.  
  323.  
  324.  

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