masse2
C MASSE2 SOURCE OF166741 24/10/21 21:15:16 12042 & MELE,MFR,IVAMAT,IVACAR,NMATT,IPMATR,ILUMP,IIPDPG) *---------------------------------------------------------------------* * _________________________________ * * | | * * | calcul de la matrice de masse | * * |________________________________| * * * * massif, liquide, 'surface libre ,incompressible * * * *---------------------------------------------------------------------* * * * 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) * * * ilump =1 si l'opérateur LUMP est appelé * * * sorties : * * ________ * * * * ipmatr pointeur sur la matrice de masse de la sous-zone * * * *---------------------------------------------------------------------* IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) -INC PPARAM -INC CCOPTIO -INC CCHAMP -INC CCREEL -INC SMCOORD -INC SMRIGID -INC SMCHAML -INC SMELEME -INC SMINTE -INC SMMODEL SEGMENT WRK1 REAL*8 REL(LRE,LRE),XE(3,NBBB) ENDSEGMENT SEGMENT WRK2 ENDSEGMENT SEGMENT WRK5 REAL*8 BLX(NDDL,LRE),BLY(NDDL,LRE),BLZ(NDDL,LRE) REAL*8 BLT(NDDL,LRE) ENDSEGMENT SEGMENT WRK6 REAL*8 PROPEL(1) REAL*8 OUT(5) REAL*8 WORK1(24*24) ENDSEGMENT SEGMENT MVELCH REAL*8 VALMAT(NV1) ENDSEGMENT SEGMENT MPTVAL INTEGER IPOS(NS),NSOF(NS) INTEGER IVAL(NCOSOU) CHARACTER*16 TYVAL(NCOSOU) ENDSEGMENT dimension ddhook(3) MELEME=IPMAIL NBNN=NUM(/1) NBELEM=NUM(/2) xMATRI=IPMATR NLIGRP=LRE NLIGRD=LRE * introduction du point autour duquel se fait le mouvement * de la section en defo plane generalisee * En 1D : pas de rotation IF (IFOUR.EQ.-3) THEN IREF=(IIPDPG-1)*(IDIM+1) XDPGE=XCOOR(IREF+1) YDPGE=XCOOR(IREF+2) ELSE XDPGE=0.D0 YDPGE=0.D0 ENDIF NHRM=NIFOUR MINTE=IPMINT I195=0 I259=0 DIM3=1.D0 NBNO=NBNN NBBB=NBNN NV1=NMATT SEGINI,MVELCH 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 GOTO (99,99,99,4,99, 4,99, 4,99, 4,99,99,99, 4, 4, 4, 4,99,99,99, 199,99, 4, 4, 4, 4,99,99,99,99,99,99,99,99,35,35,35,35,35,35, 299,99,99,99,99,99,99,48,99,99,99,99,48,48,99,99,99,99,99,99, 399,99,99,99,99,99,99,99, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,99,99, 499,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99, 599,99,99,99,99,99,99,99,99,99, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 64, 4),MELE * BCN IF ((MELE.eq.183).or.(MELE.eq.184)) GOTO 4 * BCN C= Elements MECANIQUE 1D : M1Dx IF (MELE.EQ.193.OR.MELE.EQ.194) GOTO 4 IF (MELE.EQ.260) GOTO 5 * Elements pyramides incompressibles BBAR : IF (MELE.EQ.273.OR.MELE.EQ.274) GOTO 4 99 CONTINUE MOTERR(1:4)=NOMTP(MELE) MOTERR(5:12)='MASSE2' GOTO 510 c_______________________________________________________________________ c c secteur de calcul pour les elements massifs et elements incompressibles c_______________________________________________________________________ c 4 CONTINUE SEGINI WRK1,WRK2 DO 3004 IB=1,NBELEM c c on cherche les coordonnees des noeuds de l element ib c c c boucle sur les points de gauss c ISDJC=0 DO 4004 IGAU=1,NBPGAU c c recuperation de l'epaisseur c IF (IFOUR.EQ.-2)THEN IF (IVACAR.NE.0) THEN MPTVAL=IVACAR MELVAL=IVAL(1) IF (MELVAL.NE.0) THEN IGMN=MIN(IGAU,VELCHE(/1)) IBMN=MIN(IB,VELCHE(/2)) DIM3=VELCHE(IGMN,IBMN) ELSE DIM3=1.D0 ENDIF ENDIF ENDIF * 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 MELVAL=IVAL(1) IF (MELVAL.NE.0) THEN 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) 4004 CONTINUE IF(ISDJC.NE.0.AND.ISDJC.NE.NBPGAU) I195=IB c c remplissage de xmatri c IF ( ILUMP .EQ. 0 ) THEN ELSE c c cas de l'opérateur LUMP c IF (MELE.EQ.4) THEN * lumping par la méthode physique ELSE * lumping par la méthode HRZ ENDIF ENDIF 3004 CONTINUE SEGSUP WRK1,WRK2 GOTO 510 c_______________________________________________________________________ c c secteur de calcul pour element SHB8 c_______________________________________________________________________ c 5 CONTINUE NBNO=NBNN NBBB=NBNN SEGINI WRK1,WRK2,WRK6 VALMAT(1)=0.D0 MPTVAL=IVAMAT MELVAL=IVAL(1) IF (MELVAL.NE.0) THEN NIBM = VELCHE(/2) ENDIF DO 3005 IB=1,NBELEM c c on cherche les coordonnees des noeuds de l element ib c c IF (MELVAL.NE.0) THEN VALMAT(1) = melval.VELCHE(1,MIN(IB,NIBM)) ENDIF * PROPEL(1)=VALMAT(1) C C CALCUL DE LA MATRICE DE MASSE C C c remplissage de xmatri c 3005 CONTINUE SEGSUP WRK1,WRK2,WRK6 GOTO 510 c_______________________________________________________________________ c c secteur de calcul pour les elements liquides c_______________________________________________________________________ c 35 CONTINUE c c ces éléments n'ont pas été testé pour l'opérateur LUMP c IF ( ILUMP .EQ. 1 ) GOTO 99 c DIM3=1.D0 NBNO=NBNN NBBB=NBNN SEGINI WRK1,WRK2,WRK5 DO 3035 IB=1,NBELEM c c on cherche les coordonnees des noeuds de l element ib c c c calcul des termes en p*pi ISDJC=0 DO 4035 IGAU=1,NBPGAU c calcul des coefficients de normalisation et proprietes materielles MPTVAL=IVAMAT DO 6035 IM=1,NMATT IF (IVAL(IM).NE.0) THEN MELVAL=IVAL(IM) IGMN=MIN(IGAU,VELCHE(/1)) IBMN=MIN(IB,VELCHE(/2)) VALMAT(IM)=VELCHE(IGMN,IBMN) ELSE VALMAT(IM)=0.D0 ENDIF 6035 CONTINUE RHO = VALMAT(1) C = VALMAT(2) RHOREF= VALMAT(3) CREF = VALMAT(4) RLCAR = VALMAT(5) COEFPR= (RHOREF*CREF**2)/RLCAR COEFPI= RHOREF*RLCAR VML12 =-(COEFPR*COEFPI)/(RHO*C**2) VML22 =-(COEFPI**2)/RHO c c recuperation de l'epaisseur c IF (IFOUR.EQ.-2)THEN MPTVAL=IVACAR IF (IVACAR.NE.0) THEN MELVAL=IVAL(1) IF (MELVAL.NE.0) THEN IGMN=MIN(IGAU,VELCHE(/1)) IBMN=MIN(IB,VELCHE(/2)) DIM3=VELCHE(IGMN,IBMN) ELSE DIM3=1.D0 ENDIF ENDIF ENDIF 1 DIM3,XE,SHPTOT,SHPWRK,BGENE,DJAC,XDPGE,YDPGE) IF(DJAC.LT.0.) ISDJC=ISDJC+1 DJAC=ABS(DJAC)*POIGAU(IGAU) c c calcul des termes en pi*pi c 1 XE,SHPTOT,SHPWRK,BLX,BLY,BLZ,BLT,DJAC) DJAC=ABS(DJAC)*POIGAU(IGAU) 4035 CONTINUE IF(ISDJC.NE.0.AND.ISDJC.NE.NBPGAU) I195=IB c c remplissage de xmatri c 3035 CONTINUE SEGSUP WRK1,WRK2,WRK5 GOTO 510 c_______________________________________________________________________ c c secteur de calcul pour les elements de surface libre c_______________________________________________________________________ c 48 CONTINUE c c ces éléments n'ont pas été testé pour l'opérateur LUMP c IF ( ILUMP .EQ. 1 ) GOTO 99 c NBNO=NBNN NBBB=NBNN SEGINI WRK1,WRK2 DO 3048 IB=1,NBELEM c c on cherche les coordonnees des noeuds de l element ib c c c calcul du coefficient de normalisation sur pi c MPTVAL=IVAMAT DO 5048 IM=1,NMATT MELVAL=IVAL(IM) IBMN=MIN(IB,VELCHE(/2)) VALMAT(IM)=VELCHE(1,IBMN) 5048 CONTINUE RHOREF= VALMAT(1) RLCAR = VALMAT(2) COEFPI= RHOREF*RLCAR VMS =-COEFPI c c boucle sur les points de gauss c ISDJC=0 DO 4048 IGAU=1,NBPGAU 1 1.D0,XE,SHPTOT,SHPWRK,BGENE,DJAC,XDPGE,YDPGE) IF(DJAC.LT.0.) ISDJC=ISDJC+1 DJAC=ABS(DJAC)*POIGAU(IGAU) 4048 CONTINUE IF(ISDJC.NE.0.AND.ISDJC.NE.NBPGAU) I195=IB c c remplissage de xmatri c 3048 CONTINUE SEGSUP,WRK1,WRK2 GOTO 510 c_______________________________________________________________________ 510 CONTINUE IF (I195.NE.0) THEN INTERR(1) = I195 ENDIF IF (I259.NE.0) THEN INTERR(1) = I259 ENDIF SEGSUP,MVELCH c RETURN END
© Cast3M 2003 - Tous droits réservés.
Mentions légales