Télécharger unilater.procedur

Retour à la liste

Numérotation des lignes :

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

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