1 : * UNILATER PROCEDUR PV 13/09/30 21:15:04 7829 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; 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 : SUP = 'SUPER' 'RIGI' MATAB.1 BBB ; 60 : MATAB.4 = SUP ; 61 : MATAB.'VRAISUP'=VRAI; 62 : 'FINSI'; 63 : 'FINSI' ; 64 : * 65 : ISUP=MATAB.'VRAISUP' ; 66 : MATAB.3=VRAI; 67 : * 68 : * AU CAS OU IL N'Y AURAIT PAS DE DEPIMP 69 : * 70 : FFF0= 'DEPIMP' BBB 0.; FA = FFF + FFF0; 71 : DEPTOT = FA 'EXCO' 'FLX' 'FLX' ; 72 : 'SI' ISUP ; 73 : RISUP= ('EXTRAI' SUP 'RIGI') ; 74 : ** list resu risup; 75 : ** risup = cano risup; 76 : ** list resu risup; 77 : MASUP= 'EXTRAI' RISUP 'MAIL' ; 78 : DEPTOT = DEPTOT - (DEPTOT REDU MASUP); 79 : F = 'SUPER' 'CHAR' SUP FA ; 80 : f_lx = f 'EXCO' 'FLX' 'NOID'; 81 : f_lx_m = f_lx 'EXTR' 'MAIL'; 82 : 'SI' ('NEG' ('TYPE' F_LX_m) 'ENTIER'); 83 : nbnegs = f_lx_m nbno; 84 : 'FINSI'; 85 : 'SINON'; 86 : RISUP = MATAB.1 * 1; 87 : F=FA 'ENLE' 'FLX'; 88 : 'FINSI'; 89 : 'SI' ('NON' matab.'VRAISUP'); 90 : nbnegs = 0; 91 : 'FINSI'; 92 : FDEPTO=F + DEPTOT ; 93 : 'DETR' FFF0 ; 94 : * 95 : * INITIALISATION 96 : * 97 : 'SI' ('NON' STAT); MATAB.'OK' = VRAI; 'FINSI'; 98 : 'SI' (STAT 'ET' MATAB.'OK') ; 99 : RITOU = MATAB.5 ; 100 : LISEA = MATAB.6 ; 101 : *** BLOINI = BBB ; 102 : FDEPTOT=FDEPTO; 103 : 'SINON' ; 104 : 'SI' ('EXISTE' MATAB 7) ; 105 : BLOINI = MATAB.7; 106 : RITOU = RISUP 'ET' MATAB.7 ; 107 : LISEA = MATAB.6 'ET' ('LECT' ) ; 108 : FDEPTOT=FDEPTO; 109 : 'SINON'; 110 : BLOINI = BBB ; 111 : RITOU = RISUP * 1.; 112 : ** RITOU = RISUP 'ET' BLOINI ; 113 : * INITIALISER LISEA A UNE VALEUR IMPOSSIBLE 114 : LISEA = 'LECT' -1 ; 115 : FDEPTOT=F ; 116 : 'FINSI'; 117 : ** 'MESS' 'on est bien la '; 118 : ** RITOU = RISUP 'ET' BLOINI ; 119 : ** RITOU = RISUP * 1. ; 120 : 'FINSI' ; 121 : * 122 : MATAB.'OK' = VRAI; matab.5 = 1 ; matab.6 = 1 ; 123 : 124 : LITOT = 'LECT' ; 125 : BLOTOT = BBB ; 126 : * 127 : * RECHERCHE DES BLOQUAGES ACTIFS 128 : OPTION = 'MOT' 'RAPIDE'; 129 : 'SI' ('EXISTE' FL) ; 130 : OPTIO2='MOT' 'INIT'; 131 : 'SINON'; 132 : OPTIO2='MOT' 'CONT'; 133 : 'FINSI'; 134 : * 135 : I = 0 ; NCONV= VRAI ; 136 : * 137 : 'REPETER' BOUCL1 ; 138 : I = I + 1 ; 139 : MAFREIN*'MAILLAGE' NBE*'ENTIER' DE = 140 : 'RESOU' 'NOID' 'ENSE' 'NOUNIL' RITOU FDEPTOT; 141 : ** nbnegt = 'MAXI' ('LECT' nbnegt ('DIAG' ritou)); 142 : nbnegt = 'DIAG' ritou; 143 : 'SI' ('EGA' ('TYPE' FL) 'CHPOINT '); 144 : BLOTO LISEN LOG = BLOTOT 'EXCITER' DEPTOT DE MAFREIN OPTION FL; 145 : 'SINON'; 146 : BLOTO LISEN LOG = BLOTOT 'EXCITER' DEPTOT DE MAFREIN OPTION ; 147 : 'FINSI'; 148 : *list lisen; 149 : 'SI' ((I 'EGA' 5) 'ET' ('EGA' OPTION 'RAPIDE')); 150 : OPTION= 'MOT' 'MOYEN'; 151 : 'FINSI'; 152 : 'SI' (('NEG' 'INIB' MCLE) 'OU' (I 'NEG' 1)); 153 : 'SI' ((LISEN 'EGA' LISEA) 'OU' LOG) ; 154 : 'SI' (I 'NEG' 1) ; 155 : 'SI' ((NBE 'EGA' 0) 'OU' ('EGA' OPTION 'RAPIDE')); 156 : NCONV= FAUX ; 157 : 'QUITTER' BOUCL1; 158 : 'SINON'; 159 : M1 = 'EXTR' (RISUP ET BLOTO) 'MAIL'; 160 : M2 = 'EXTR' RITOU 'MAIL'; 161 : M3 = M1 'DIFF' M2; 162 : 'SI' (('NBEL' M3) 'EGA' 0) ; 163 : NCONV= FAUX ; 164 : 'QUITTER' BOUCL1; 165 : 'FINSI'; 166 : 'FINSI'; 167 : 'FINSI'; 168 : 'FINSI'; 169 : 'SI' (LISEN 'DANS' LITOT) ; 170 : 'SI' ('EGA' OPTION 'LENT'); 171 : 'SI' ('EGA' OPTIO2 'CONT'); 172 : OPTIO2= 'MOT' 'INIT'; 173 : OPTION= 'MOT' 'RAPIDE'; 174 : BLOTO=BBB; 175 : 176 : LITOT= 'LECT' ; 177 : LISEN=LISEN * -1; 178 : 'MESS' ' *** UNILATER stratégie alternative à la ' I 'ème itération'; 179 : I=0; 180 : 'SINON'; 181 : 'QUITTER' BOUCL1; 182 : 'FINSI'; 183 : 'SINON'; 184 : OPTION = 'MOT' 'LENT'; 185 : LITOT = 'LECT'; 186 : 'MESS' ' *** UNILATER stratégie lente à la ' I 'ème itération'; 187 : 'FINSI'; 188 : 'FINSI'; 189 : 'FINSI'; 190 : LITAN=LITOT; 191 : LITOT=LITOT 'ET' LISEN; 192 : 'DETRUIRE' LITAN; 'DETRUIRE' LISEA; 'DETRUIRE' DE ; 193 : * 'SI' ('EXISTE' MATAB 5); 194 : * 'SI' ('NEG' RITOU (MATAB.5)); 'DETRUIRE' RITOU; 'FINSI'; 195 : * 'SINON'; 196 : 'DETRUIRE' RITOU; 197 : * 'FINSI'; 198 : * 'SI' (I 'NEG' 1);GEO='EXTRAI' BLOT 'MAIL';'DETR' GEO 'TOUT'; 199 : * 'DETR' BLOT 'ELEM' ;'FINSI'; 200 : RITOU = RISUP 'ET' BLOTO ; 201 : BLOT = BLOTO; 202 : LISEA=LISEN; 203 : FDEPTOT=FDEPTO; 204 : 'FIN' BOUCL1; 205 : * 206 : * CFBUG = 'CHAINE' ' *** UNILATER convergence à l''''itération '; 207 : * 'MESS' CFBUG I; 208 : 'SI' (NBE 'NEG' 0) ; MATAB.'OK' = FAUX; 'FINSI'; 209 : * 210 : MATAB.5 = RITOU ; 211 : MATAB.6 = LISEA ; 212 : MATAB.7 = BLOTO; 213 : MATAB.13 = nbnegt - nbnegs; 214 : 215 : * 216 : 'SI' NCONV ; 217 : NCONV=FAUX; 218 : MATAB.'OK'=FAUX; 219 : 'FINSI'; 220 : 221 : 'SI' NCONV ; 222 : 'MESS' ' *** UNILATER il n y a pas de solution au système '; 223 : RITOU = RISUP 'ET' BBB ; 224 : LISEA = 'LECT' 0; 225 : MATAB.5 = RITOU ; 226 : MATAB.6 = LISEA ; 227 : MATAB.7 = BLOTO; 228 : 'SINON'; 229 : * 230 : **CFBUG = 'CHAINE' ' *** UNILATER convergence à l''''itération '; 231 : 'SI' ('NON' MATAB.'OK'); 232 : CFBUG = 'CHAINE' ' *** UNILATER non convergence à l''''itération '; 233 : 'MESS' CFBUG I nbe; 234 : MATAB.13 = 1234 ; 235 : 'FINSI'; 236 : MATAB.'NITER' = I; 237 : * 238 : * CALCUL SUR TOUTE LA STRUCTURE 239 : * 240 : 'SI' ISUP; 241 : DE1= 'SUPER' 'DEPL' SUP DE FFF; 242 : DE2 = DE1 'ET' (DE 'ENLE' 'LX'); 243 : 'DETRUIRE' DE1; 'DETR' DE; 'DETR' FA ; 244 : 'SINON'; 245 : DE2= DE; 246 : 'FINSI' ; 247 : 'SI' ('EGA' ('TYPE' FL) 'CHPOINT '); 248 : FL = FL REDU (BBB EXTR 'MAIL' 'MULT'); 249 : DE3 = DE2 - FL ; 'DETR' DE2;DE2 = DE3; 250 : 'FINSI'; 251 : * 252 : 'FINSI' ; 253 : * 254 : 'DETR' F ;'DETR' DEPTOT ;'DETR' FDEPTOT ; 255 : * 256 : 'SI' ( 'EXISTE' MATAB 8 ) ; 257 : rrrr = MATAB.8 ; 258 : DE3 = 'MREM' DE2 rrrr matab.9 bloto matab.12 matab.10 MATAB.11; 259 : matab.10=0; matab.11=0; 260 : * mess ' dans unilater de3 ';list de3; 261 : 'DETR' DE2 ;'RESPRO' DE3; 262 : 'SINON' ; 263 : * mess ' dans unilater de2 ';list de2; 264 : 'RESPRO' DE2 ; 265 : 'FINSI' ; 266 : * 267 : 'SI' ('EGA' 'INIB' MCLE); 268 : 'SI' ('EGA' ('TYPE' FL) 'CHPOINT '); 269 : 'RESPRO' 'bid' 'bid' 'bid' 'bid'; 270 : 'SINON'; 271 : 'RESPRO' 'bid' 'bid' 'bid'; 272 : 'FINSI'; 273 : 'FINSI'; 274 : 'FINPRO' ; 275 : 276 : 277 : 278 : 279 : 280 : 281 : 282 :
© Cast3M 2003 - All rights reserved.
Disclaimer