kcent3
C KCENT3 SOURCE CB215821 24/04/12 21:16:30 11897 &MELE,MFR,IVAMAT,IVACAR,NMATT,IPMATR,VROT,IIPDPG) *---------------------------------------------------------------------* * _______________________________________________ * * | | * * | calcul de la matrice de raideur centrifuge | * * |_____________________________________________| * * * * massif * * * *---------------------------------------------------------------------* * * * entrees : * * ________ * * * * ipmail pointeur sur un segment meleme * * nddl nombre de degre de liberte /noeud * * lre nombre de ddl dans la matrice de masse * * nbpgau nombre de point d'integration pour la masse * * ipmint pointeur sur un segment minte * * ipmin1 pointeur sur un segment minte (aux noeuds) * * mele numero de l'element fini * * mfr numero de la formulation * * * ivamat pointeur sur un segment mptval pour le materiau ou * * pour une matrice de hooke * * ivacar pointeur sur un segment mptval pour les * * caracteristiques * * nmatt nombre de composante de materiau (imat=1) * * iprota pointeur sur un point (vecteur vitesse de rotation) * * * * sorties : * * ________ * * * * ipmatr pointeur sur la matrice de masse de la sous-zone * * * * Didier COMBESCURE mars 2003 * *---------------------------------------------------------------------* IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) -INC PPARAM -INC CCOPTIO -INC CCHAMP -INC CCREEL -INC SMRIGID -INC SMCHAML -INC SMELEME -INC SMCOORD -INC SMINTE -INC SMMODEL c SEGMENT WRK1 REAL*8 REL(LRE,LRE),XE(3,NBBB) ENDSEGMENT c SEGMENT WRK2 ENDSEGMENT c SEGMENT WRK5 REAL*8 BLX(NDDL,LRE),BLY(NDDL,LRE),BLZ(NDDL,LRE) REAL*8 BLT(NDDL,LRE) ENDSEGMENT c c SEGMENT MVELCH REAL*8 VALMAT(NV1) ENDSEGMENT c c SEGMENT MPTVAL INTEGER IPOS(NS),NSOF(NS) INTEGER IVAL(NCOSOU) CHARACTER*16 TYVAL(NCOSOU) ENDSEGMENT c DIMENSION VROT(*) DIMENSION ROME(3,3) C ,RELB(LRE,LRE) * MELEME=IPMAIL NBNN=NUM(/1) NBELEM=NUM(/2) * NV1=NMATT SEGINI,MVELCH * xMATRI=IPMATR LVAL = (LRE*(LRE+1))/2 NLIGRP=LRE NLIGRD=LRE XDPGE=0.D0 YDPGE=0.D0 * NHRM=NIFOUR * MINTE=IPMINT * * Remplissage de ROME depuis VROT qui est constant dans tout le modele ROME(1,1) = (-1.D0)*((VROT(2)**2) + (VROT(3)**2)) ROME(2,2) = (-1.D0)*((VROT(1)**2) + (VROT(3)**2)) ROME(3,3) = (-1.D0)*((VROT(1)**2) + (VROT(2)**2)) ROME(1,2) = VROT(1)*VROT(2) ROME(1,3) = VROT(1)*VROT(3) ROME(2,3) = VROT(2)*VROT(3) ROME(2,1) = ROME(1,2) ROME(3,1) = ROME(1,3) ROME(3,2) = ROME(2,3) c_______________________________________________________________________ c c numero des etiquettes : c etiquettes de 1 a 98 pour traitement specifique a l element c dans la zone specifique a chaque element commencant par : c 5 continue c element 5 etiquettes 1005 2005 3005 4005 ... c 44 continue c element 44 etiquettes 1044 2044 3044 4044 ... c_______________________________________________________________________ c * CABL SEG2 SEG3 TRI3 TRI4 TRI6 TRI7 QUA4 QUA5 QUA8 QUA9 GOTO ( 99, 99, 99, 11, 99, 11, 99, 11, 99, 11, 99 * RAC2 RAC3 CUB8 CU20 PRI6 PR15 LIA3 LIA4 LIA6 LIA8 MULT & , 99, 99, 11, 11, 11, 11, 99, 99, 99, 99, 99 * TET4 TE10 PYR5 PY13 COQ3 DKT POUT LISP FAC3 FAC4 FAC6 & , 11, 11, 11, 11, 99, 99, 99, 99, 99, 99, 99 * FAC8 LTR3 LQU4 LCU8 LPR6 LTE4 LPY5 COQ8 TUYA TUFI COQ2 & , 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99 * POI1 BARR RACO LSU2 COQ4 LISM COF3 RES2 LSU3 LSU4 LICO & , 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99 * COQ6 CVS2 CVS3 CVT3 CVT6 CVQ4 CVQ8 THP5 TH13 THP6 TH15 & , 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99 * THC8 TH20 ICT3 ICQ4 ICT6 ICQ8 ICC8 ICT4 ICP6 IC20 IC10 & , 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99 * IC15 TRIP QUAP CUBP TETP PRIP TIMO JOI2 JOI3 JOT3 JOI4 & , 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99 * JOI6 JOI8 LISC TRIH DST LIC4 CERC TUYO LSE2 LITU HYT3 & , 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99 * HYQ4 HYT4 HYP6 HYC8 TRIS QUAS POIS FOR3 JOP3 JOP6 JOP8 & , 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99 * POL3 POL4 POL5 POL6 POL7 POL8 POL9 PO10 PO11 PO12 PO13 & , 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99 * PO14 BAR3 BAEX LIA2 QUAH CUBH ROT3 SEF2 TRF3 QUF4 CUF8 & , 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99 * PRF6 TEF4 PYF5 MSE3 MTR6 MQU9 MC27 MP18 MT10 MP14 SEF3 & , 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99 * TRF7 QUF9 CF27 PF21 TF15 PF19 SEG6 TR21 QU36 C216 P126 & , 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99 * TE56 PY91 TRH6 & , 99, 99, 99),MELE c_______________________________________________________________________ c_______________________________________________________________________ c c secteur de calcul pour les elements massifs c_______________________________________________________________________ c 11 CONTINUE DIM3=1.D0 NBNO=NBNN NBBB=NBNN SEGINI WRK1,WRK2 I195=0 I259=0 DO 3004 IB=1,NBELEM c c on cherche les coordonnees des noeuds de l element ib c C CALL ZERO (RELB,LRE,LRE) c c boucle sur les points de gauss c ISDJC=0 DO 4004 IGAU=1,NBPGAU * 1 DIM3,XE,SHPTOT,SHPWRK,BGENE,DJAC,XDPGE,YDPGE) IF(DJAC.LT.0.) ISDJC=ISDJC+1 IF(DJAC.EQ.0.) I259=IB DJAC=ABS(DJAC)*POIGAU(IGAU) MPTVAL=IVAMAT IF (IVAL(1).NE.0) THEN MELVAL=IVAL(1) IGMN=MIN(IGAU,VELCHE(/1)) IBMN=MIN(IB,VELCHE(/2)) VALMAT(1)=VELCHE(IGMN,IBMN) ELSE VALMAT(1)=0.D0 ENDIF DJAC=DJAC*VALMAT(1) C 4004 CONTINUE C IF(ISDJC.NE.0.AND.ISDJC.NE.NBPGAU) I195=IB * SEGINI XMATRI * IMATTT(IB)=XMATRI C C On bouscule la matrice de masse C c CALL MTOKCE(LRE,NDDL,REL,VROT,RE(1,1,ib)) C CALL REMPMT(REL,LRE,RE) C * SEGDES XMATRI 3004 CONTINUE IF(I195.NE.0) INTERR(1)=I195 IF(I259.NE.0) INTERR(1)=I259 SEGDES xMATRI SEGSUP WRK1,WRK2,MVELCH GOTO 510 C c_______________________________________________________________________ * 99 CONTINUE MOTERR(1:4)=NOMTP(MELE) MOTERR(5:12)='KCENT3' * 510 CONTINUE RETURN END c
© Cast3M 2003 - Tous droits réservés.
Mentions légales