1 : * ANLIMTRE PROCEDUR CHAT 12/08/07 21:15:01 7481 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='MODL' ELEMJ MECANIQUE ELASTIQUE BARR; 106 : CARBJ='CARB' 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='MODL' 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 :
© Cast3M 2003 - All rights reserved.
Disclaimer