* UNILATER PROCEDUR MB234859 24/11/20 21:15:23 12080 * MODIF JUILLET 1987 POUR PERMETTRE DES JEUX DANS LES LES 2 DIRECTIONS * * CETTE PROCEDURE EST APPELER PAR RESOU * LES ARGUMENTS SONT : MATAB TABLE CONTENANT LES INFORMATIONS UTILES * C'EST A DIRE RRR BBB STAT SUP RITOU ET LISEA * FFF FORCE A METTRE AU SECOND MEMBRE * * RRR MATRICE DE RIGIDITE SANS LES APPUIS * BBB MATRICE DE RIGIDITE DES APPUIS * STAT LOGIQUE INDIQUANT SI C'EST LE PREMIER PASSAGE * SUP SUPER ELEMENT EQUIVALENT * RITOU DERNIERE RAIDEUR UTILISEE DANS LA RESOLUTION * LISEA DESCRIPTEUR DES APPUIS COURAMMENT ACTIFS * FL CHAMPS DE FORCES LIMITES DE FROTTEMENT * * Si il y a lieu,nbnegs est le nombre de multiplicateurs de lagrange contenus da ** nbnegs = 0; ** nbnegt = 0; 'SI' ('EGA' 'INIB' MCLE); MATAB.'OK' = VRAI ; 'FINSI'; * * en cas de frottement on lit le champs de force limite de frottement, et eventuellement * la partie non symetrique de la matrice de frottement * et la matrice de transfert du multiplicateur de contact au multiplicateur de frottement * pour avoir les bonnes reactions * LOG_RF = FAUX; 'SI' LOG_FL; 'SI' LOG_RF; ** 'MESS' 'rfrot vide dans unilater'; 'FINSI'; 'FINSI'; 'FINSI'; RRR = MATAB.1 ; BBB = MATAB.2 ; 'SI' LOG_FL ; chp2 = BBB * FADZ ; FFF = FFF + chp2; 'DETR' chp2 ; *1 'SI' LOG_RF; *1 'SINON'; chp_z = BBB * FL ; FFF = FFF + chp_z ; 'DETR' chp_z ; *1 'FINSI'; 'FINSI'; STAT = MATAB.3 ; 'SI' STAT ; 'SI' MATAB.'VRAISUP'; SUP = MATAB.4 ; 'SINON'; RISUP= MATAB.4 ; 'FINSI'; 'SINON' ; ************************************************************************ * CALCUL DU SUPER ELEMENT (SI BESOIN) ************************************************************************ ** MMU = MMM 'ELEM' 'APPU' 'LARG' MMB; ** MESS ' unilater napp ntot' ' ' NAPP ' ' NTOT ; ** MESS ' comparaison' ' ' (NAPP ** 2.) ' ' (2 * 6 * NTOT ** 1.333333333) ; * Le super element est suppose etre en n^2 alors que la matrice est en n ^4/3 * test reporte dans supri 'SI' (((NAPP ** 2.) > ((30 *NTOT) ** 1.333333)) 'OU' MATAB.'NSYM' 'OU' LOG_ITER 'ET' FAUX); ** MESS ' unilater pas de super element' napp ntot; RISUP = MATAB.1 ; MATAB.4 = MATAB.1 ; MATAB.'VRAISUP'= FAUX ; 'SINON'; ** mess ' on calcule le super element'; * je remets l'option NOMU car il y a un problème de normalisation avec les mults * A voir si elle ne pose pas des problèmes de surcontraintes. MATAB.4 = SUP ; MATAB.'VRAISUP'= VRAI ; 'FINSI'; 'FINSI' ; ** ** sauver le souci courant pour le reinjecter au dernier resou ** ISUP = MATAB.'VRAISUP' ; MATAB.3= VRAI; ************************************************************************ * AU CAS OU IL N'Y AURAIT PAS DE DEPIMP ************************************************************************ 'SI' ISUP ; MASUP= 'EXTRAI' RISUP 'MAIL' ; ** DEPTOT = DEPTOT - (DEPTOT REDU MASUP); 'SINON'; RISUP = MATAB.1 * 1; 'FINSI'; FDEPTO=F + DEPTOT ; ************************************************************************ * INITIALISATION ************************************************************************ conva1 = vrai; 'SI' ('NON' STAT); MATAB.'OK' = VRAI; 'FINSI'; 'SI' (STAT 'ET' MATAB.'OK' 'ET' ('NON' LOG_RF)) ; RITOU = MATAB.5 ; LISEA = MATAB.6 ; FDEPTOT=FDEPTO; 'SINON' ; 'SI' ('EXISTE' MATAB 7) ; BLOINI = MATAB.7; 'DETR' RITOU; RITOU = RISUP 'ET' MATAB.7 ; FDEPTOT=FDEPTO; 'SINON'; BLOINI = BBB ; 'DETR' RITOU; RITOU = RISUP 'ET' BLOINI ; * INITIALISER LISEA A UNE VALEUR IMPOSSIBLE FDEPTOT= F ; conva1 = faux; 'FINSI'; 'FINSI' ; * MATAB.'OK' = VRAI; matab.5 = 1 ; matab.6 = 1 ; BLOTOT = BBB ; nbe = 0; ************************************************************************ * RECHERCHE DES BLOQUAGES ACTIFS ************************************************************************ 'SINON'; 'FINSI'; I = 0 ; NCONV = VRAI ; 'SI' LOG_RF ; BLOTOT = BLOTOT et rfrot; 'FINSI'; 'REPETER' BOUCL1 ; I = I + 1 ; * oublier les soucis des iterations precedentes 'SOUC' souc_co; 'SI' LOG_ITER; NBE = 0; 'SINON'; 'FINSI'; 'FINSI'; 'SI' LOG_FL; BLOTO LISEN LOG1 = BLOTOT 'EXCITER' DEPTOT DE CHFREIN OPTION FL ; 'SINON'; BLOTO LISEN LOG1 = BLOTOT 'EXCITER' DEPTOT DE CHFREIN OPTION ; 'FINSI'; ** list lisen; 'QUIT' boucl1; 'FINSI'; * 'SI' ((I 'EGA' 5) 'ET' ('EGA' OPTION 'RAPIDE')); 'FINSI'; * 'SI' (('NEG' 'INIB' MCLE) 'OU' (I 'NEG' 1)); 'SI' ((LISEN 'EGA' LISEA) 'OU' LOG1) ; 'SI' conva1 ; 'SI' (NBE 'EGA' 0) ; NCONV= FAUX ; 'QUIT' BOUCL1; 'SINON'; 'SI' ('NEG' OPTION 'RAPIDE') ; NCONV= FAUX ; 'QUIT' BOUCL1 ; 'FINSI'; 'FINSI'; 'FINSI'; 'FINSI'; 'FINSI'; conva1 = vrai; 'SI' ('EGA' OPTION 'LENT'); BLOTO=BBB; LISEN=LISEN * -3; I=0; 'SINON'; 'QUIT' BOUCL1; 'FINSI'; 'SINON'; 'FINSI'; 'FINSI'; 'FINSI'; LITAN=LITOT; LITOT=LITOT 'ET' LISEN; 'DETR' LITAN; 'DETR' DE ; **'SI' (I 'NEG' 1); 'DETR' RITOU; **'FINSI'; RITOU = RISUP 'ET' BLOTO ; BLOT = BLOTO ; LISEA = LISEN ; FDEPTOT= FDEPTO; 'FIN' BOUCL1; * CFBUG = 'CHAINE' ' *** UNILATER convergence a l''iteration '; * 'MESS' CFBUG ' ' I; 'SI' (NBE 'NEG' 0) ; MATAB.'OK' = FAUX; 'FINSI'; MATAB.5 = RITOU ; MATAB.6 = LISEA ; MATAB.7 = BLOTO ; ** MATAB.13 = nbnegt - nbnegs; 'SI' NCONV ; NCONV =FAUX; MATAB.'OK'=FAUX; 'FINSI'; 'SI' NCONV ; RITOU = RISUP 'ET' BBB ; MATAB.5 = RITOU ; MATAB.6 = LISEA ; MATAB.7 = BLOTO; 'SOUCI' 2345; 'SINON'; * CFBUG = 'CHAINE' ' *** UNILATER convergence a l''iteration '; 'SI' ('NON' MATAB.'OK'); 'MESS' CFBUG ' ' I ' ' nbe; MATAB.13 = 1119 ; 'SOUCI' 1119; 'FINSI'; MATAB.'NITER' = I; ************************************************************************ * CALCUL SUR TOUTE LA STRUCTURE ************************************************************************ 'SI' ISUP; 'DETR' DE1; 'DETR' DE ; 'DETR' FA ; 'SINON'; DE2 = DE ; 'FINSI' ; 'SI' LOG_FL; DE3 = DE2 - FADZ ; 'DETR' DE2; DE2 = DE3; 'SI' LOG_RF; * transfert de la reaction de contact sur la reaction de frottement DE3 = RTRSF * DE2 ; ****** DE3 = DE3 'REDU' (BBB 'EXTR' 'MAIL' 'MULT'); DE2 = DE2 + DE3; 'DETR' DE3; DE3 = DE2; 'FINSI'; *1 'SINON'; DE2 = DE3 - FL; 'DETR' DE3 ; *1 'FINSI'; 'FINSI'; 'FINSI' ; 'DETR' F ; 'DETR' DEPTOT ; 'DETR' FDEPTOT ; 'SI' ( 'EXISTE' MATAB 50) ; 'RESPRO' DE3; 'SINON' ; * mess ' dans unilater de2 ';list de2; 'RESPRO' DE2 ; 'FINSI' ; 'SI' ('EGA' 'INIB' MCLE); 'SI' LOG_FL ; 'RESP' 'bid' 'bid' 'bid' 'bid'; 'SINON'; 'RESP' 'bid' 'bid' 'bid' ; 'FINSI'; 'FINSI'; 'FINP' ;
© Cast3M 2003 - Tous droits réservés.
Mentions légales