Télécharger anlimtre.procedur

Retour à la liste

Numérotation des lignes :

  1. * ANLIMTRE PROCEDUR FANDEUR 14/10/10 21:15:02 8178
  2. *********************************************************************
  3. *
  4. * ANLIMTRE est une procedure d'analyse limite pour des reseaux
  5. * de barres articulees utilisant le nouvel operateur
  6. * SIMPLEX
  7. *
  8. * soit un reseau de barres articulees formant le maillage MESH et
  9. * bloque en deplacement sur l'ensemble de point PBLOQ. On se propose
  10. * de trouver le maximum de la charge placee au point PSOLL dans la
  11. * direction VSOLL sachant que la contrainte EFFX dans chaque barre
  12. * est soumis a la contrainte |EFFX| <EG CONTMAX
  13. *
  14. * methode:
  15. * --------
  16. *
  17. * on considere comme variables independantes:
  18. *
  19. * (NBEL MESH) * (EFFX -CONTMAX) parametres internes
  20. *
  21. * (NBNO PBLOQ) * 2 * (F - REACMAX) parametres de bloquages
  22. *
  23. * 1 * (F - REACMAX) sollicitation
  24. *
  25. * les inegalites sont (indexees par les elements):
  26. *
  27. * (NBEL MESH) * (EFFX -CONTMAX) < 2*CONTMAX
  28. *
  29. * les egalites sont (indexees par les noeuds):
  30. *
  31. * (NBMO MESH) * 2 equilibres au noeud
  32. *
  33. * la fonction est:
  34. *
  35. * (EFFX -CONTMAX) de la variables de sollicitation
  36. *
  37. * sortie (IOK=0):
  38. * ---------------
  39. *
  40. * valeur CHARLIM de la charge limite
  41. *
  42. * champ par elements MCHPV des parametres internes
  43. *
  44. * champ par point CHPPB de bloquages
  45. *
  46. * champ par point CHPPS de sollicitation
  47. *
  48. *********************************************************************
  49. 'DEBPROC' ANLIMTRE TABIN*'TABLE';
  50. *
  51. MESH =TABIN.'MESH';
  52. PBLOQ=TABIN.'PBLOQ';
  53. PSOLL=TABIN.'PSOLL';
  54. VSOLL=TABIN.'VSOLL';
  55. CONLIM=TABIN.'CONLIM';
  56. REACMAX=TABIN.'REACMAX';
  57. *
  58. * on norme vsoll
  59. *
  60. XVSOLL YVSOLL='COOR' VSOLL;
  61. XNVSOLL=((XVSOLL ** 2) + (YVSOLL ** 2)) ** 0.5;
  62. XVSOLL=XVSOLL/XNVSOLL; YVSOLL=YVSOLL/XNVSOLL;
  63. *
  64. * conversion eventuelle point --> maillage
  65. *
  66. 'SI' ('EGA' ('TYPE' PBLOQ) 'POINT ');
  67. PBLOQ=PBLOQ 'ET' PBLOQ;
  68. PBLOQ=PBLOQ 'ELEM' 1;
  69. 'FINSI';
  70. *
  71. * nombre de variables et initialisation des tables pour le simplex
  72. *
  73. * a l'interieur et soumis a inegalite
  74. *
  75. NBVA='NBEL' MESH;
  76. TINEGA='TABLE';
  77. J=0; 'REPETER' LOOP NBVA; J=J+1;
  78. TINEGA.J='TABLE';
  79. 'FIN' LOOP;
  80. *
  81. * points bloques
  82. *
  83. NBPB=2*('NBNO' PBLOQ);
  84. *
  85. * egalites
  86. *
  87. NBEGA=2 * ('NBNO' MESH);
  88. TEGA='TABLE';
  89. J=0; 'REPETER' LOOP NBEGA ; J=J+1;
  90. TEGA.J='TABLE';
  91. TEGA.J.0=0.;
  92. 'FIN' LOOP;
  93. *
  94. * remplissage de la table des inegalites
  95. *
  96. J=0; 'REPETER' LOOP NBVA ; J=J+1;
  97. TINEGA.J.0=2.*CONLIM;
  98. TINEGA.J.J=1.;
  99. 'FIN' LOOP;
  100. *
  101. * remplissage de la table des egalites (contribution interieure)
  102. *
  103. J=0; 'REPETER' LOOP NBVA ; J=J+1;
  104. ELEMJ=MESH 'ELEM' J;
  105. MODLJ='MODE' ELEMJ MECANIQUE ELASTIQUE BARR;
  106. CARBJ='CARA' MODLJ 'SECT' 1.;
  107. CHAMJ='MANU' 'CHAM' MODLJ TYPE 'CONTRAINTES'
  108. 'POSI' 'STRESSES' 'EFFX' 1 1 2. ;
  109. BSIGJ='BSIG' MODLJ CHAMJ CARBJ;
  110. PTJ1=ELEMJ 'POIN' 1; N1='NOEUD' PTJ1; NBEG1=2*(N1-1);
  111. PTJ2=ELEMJ 'POIN' 2; N2='NOEUD' PTJ2; NBEG2=2*(N2-1);
  112. VAL1JX='EXTR' BSIGJ PTJ1 'FX'; VAL1JY='EXTR' BSIGJ PTJ1 'FY';
  113. VAL2JX='EXTR' BSIGJ PTJ2 'FX'; VAL2JY='EXTR' BSIGJ PTJ2 'FY';
  114. TEGA.(NBEG1+1).J=VAL1JX;
  115. TEGA.(NBEG1+1). 0=TEGA.(NBEG1+1). 0 + (CONLIM * VAL1JX);
  116. TEGA.(NBEG1+2).J=VAL1JY;
  117. TEGA.(NBEG1+2). 0=TEGA.(NBEG1+2). 0 + (CONLIM * VAL1JY);
  118. TEGA.(NBEG2+1).J=VAL2JX;
  119. TEGA.(NBEG2+1). 0=TEGA.(NBEG2+1). 0 + (CONLIM * VAL2JX);
  120. TEGA.(NBEG2+2).J=VAL2JY;
  121. TEGA.(NBEG2+2). 0=TEGA.(NBEG2+2). 0 + (CONLIM * VAL2JY);
  122. 'FIN' LOOP;
  123. *
  124. * remplissage de la table des egalites (bloquage)
  125. *
  126. J=0; 'REPETER' LOOP (NBPB/2); J=J+1;
  127. PTJ='POINT' J PBLOQ; NJ='NOEUD' PTJ; NBEGJ=2*(NJ-1);
  128. NPB=NBVA+( 2 * (J - 1));
  129. TEGA.(NBEGJ+1).(NPB+1)=1.;
  130. TEGA.(NBEGJ+1). 0=TEGA.(NBEGJ+1). 0 + REACMAX;
  131. TEGA.(NBEGJ+2).(NPB+2)=1.;
  132. TEGA.(NBEGJ+2). 0=TEGA.(NBEGJ+2). 0 + REACMAX;
  133. 'FIN' LOOP;
  134. *
  135. * remplissage de la table des egalites (sollicitation)
  136. *
  137. NBPS=NBVA+NBPB+1;
  138. NSOLL='NOEUD' PSOLL; NBEGS=2*(NSOLL-1);
  139. TEGA.(NBEGS+1).NBPS=XVSOLL;
  140. TEGA.(NBEGS+1). 0=TEGA.(NBEGS+1). 0 + (XVSOLL * REACMAX);
  141. TEGA.(NBEGS+2).NBPS=YVSOLL;
  142. TEGA.(NBEGS+2). 0=TEGA.(NBEGS+2). 0 + (YVSOLL * REACMAX);
  143. *
  144. * fonction a maximiser
  145. *
  146. TFONC='TABLE' 'VECTEUR';
  147. TFONC.0=(-1)*REACMAX; TFONC.NBPS=1.;
  148. *
  149. * simplex
  150. *
  151. IOK TVAR TSEC='SIMPLEX' TFONC TINEGA TEGA;
  152. *
  153. * sortie
  154. *
  155. 'SI' (IOK 'EGA' 0);
  156. *
  157. * chsrge limite
  158. *
  159. CHARLIM=TVAR.0;
  160. *
  161. * MCHAML de resultat
  162. *
  163. MO='MODE' MESH MECANIQUE ELASTIQUE BARR;
  164. J=0; 'REPETER' LOOP NBVA ; J=J+1;
  165. 'SI' ('EXISTE' TVAR J);
  166. VARJ=TVAR.J - CONLIM;
  167. 'SINON';
  168. VARJ=(-1) * CONLIM;
  169. 'FINSI';
  170. MCHPJ=('MANU' 'CHAM' MO TYPE 'CONTRAINTES'
  171. 'POSI' 'STRESSES' 'EFFX' J 1 VARJ)
  172. +('MANU' 'CHAM' MO TYPE 'CONTRAINTES'
  173. 'POSI' 'STRESSES' 'EFFX' J 2 VARJ);
  174. *tc ajout du ; dans la ligne ci dessu!!!!!!!!!!!!!
  175. 'SI' (J 'EGA' 1);
  176. MCHPV=MCHPJ;
  177. 'SINON';
  178. MCHPV=MCHPV + MCHPJ;
  179. 'FINSI';
  180. 'FIN' LOOP;
  181. *
  182. * CHPO de bloquage
  183. *
  184. J=0; 'REPETER' LOOP (NBPB/2) ; J=J+1;
  185. PTJ='POINT' J PBLOQ;
  186. NPB=NBVA+( 2 * (J - 1));
  187. 'SI' ('EXISTE' TVAR (NPB + 1));
  188. REAJX=TVAR.(NPB+1) - REACMAX;
  189. 'SINON';
  190. REAJX=(-1) * REACMAX;
  191. 'FINSI';
  192. 'SI' ('EXISTE' TVAR (NPB + 2));
  193. REAJY=TVAR.(NPB+2) - REACMAX;
  194. 'SINON';
  195. REAJY=(-1) * REACMAX;
  196. 'FINSI';
  197. CHPPJ='MANU' 'CHPO' PTJ 2 'FX' REAJX 'FY' REAJY;
  198. 'SI' (J 'EGA' 1);
  199. CHPPB=CHPPJ;
  200. 'SINON';
  201. CHPPB=CHPPB + CHPPJ;
  202. 'FINSI';
  203. 'FIN' LOOP;
  204. *
  205. * CHPO de sollicitation
  206. *
  207. 'SI' ('EXISTE' TVAR NBPS);
  208. REACI=TVAR.NBPS - REACMAX;
  209. 'SINON';
  210. REACI=(-1) * REACMAX;
  211. 'FINSI';
  212. CHPPS='MANU' 'CHPO' PSOLL 2 'FX' (XVSOLL * REACI)
  213. 'FY' (YVSOLL * REACI);
  214. *
  215. * sortie
  216. *
  217. TABIN.'CHARLIM'=CHARLIM;
  218. TABIN.'MCHPV'=MCHPV;
  219. TABIN.'CHPPB'=CHPPB;
  220. TABIN.'CHPPS'=CHPPS;
  221. 'FINSI';
  222. *
  223. 'FINPROC' IOK;
  224.  
  225.  
  226.  

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