rtens6
C RTENS6 SOURCE BP208322 15/06/22 21:22:42 8543 & IVARES,IDEFO,IINTE,MELE,NPINT,NVEC,KMOT) IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) *-----------------------------------------------------------------------* * Operateur RTENS : cas de la formulation massive * * * * IPCHE1 (e) pointeur sur un MCHAML de caracteristiques * * = 0 si isotropie * * IFOMEM (e) = IFOUR de CCOPTIO * * IELEME (e) pointeur sur le segment MELEME (actif) * * IVAVEC (e/s) pointeur sur un segment MPTVAL (actif) * * IVACOM (e/s) pointeur sur un segment MPTVAL (actif) * * IVARES (e/s) pointeur sur un segment MPTVAL (actif) * * IDEFO (e) =1 : tenseur de deformations (contraintes sinon) * * IINTE (e) pointeur sur le segment MINTE (actif) * * MELE (e) numero de l'element-fini dans NOMTP * * NPINT (e) nombre de points d'integration (coques) * * NVEC (e) nombre de composantes du MCHAML IPCHE1 * KMOT (e) 1 : transformation RT*A*R * 2 : transformation R*A*RT *-----------------------------------------------------------------------* -INC PPARAM -INC CCOPTIO -INC CCHAMP -INC SMCHAML -INC SMINTE -INC SMCOORD -INC SMELEME * SEGMENT MWRK3 REAL*8 A(NDIM,NDIM),R(NDIM,NDIM),RT(NDIM,NDIM),TRAV(NDIM,NDIM) REAL*8 VALVEC(NV) ENDSEGMENT * * Les MPTVAL recueillent les donnees pour le MCHAML resultat * IVAL contient les pointeurs des MELVAL du nouveau MCHAML * SEGMENT MPTVAL INTEGER IPOS(NS) , NSOF(NS) INTEGER IVAL(NCOSOU) CHARACTER*16 TYVAL(NCOSOU) ENDSEGMENT * DIMENSION VECWRK(3),V1(4),V2(4),W2(3),W3(3) DIMENSION CENTR1(3),CENTR2(3),AXEI1(3),VECX(3),VECY(3) DIMENSION UR(3),UTHETA(3),UPHI(3),UN(3),UT(3),XIGAU(3) * MELEME = IELEME NBNN = NUM(/1) NBELEM = NUM(/2) MINTE = IINTE NBPGAU = POIGAU(/1) * NDIM=IDIM IF (IFOMEM.EQ.1) NDIM=IDIM+1 NV=NVEC NV2=2 IF(NV.EQ.9) NV2=3 SEGINI MWRK3 * * Boucle sur les elements * DO 1010 IB=1,NBELEM * * Boucle sur les points de Gauss * DO 1010 IGAU=1,NBPGAU * MPTVAL=IVAVEC DO 1011 IV=1,NVEC IF (IVAL(IV).NE.0) THEN MELVAL=IVAL(IV) cbp IBMN=MIN(IB,VELCHE(/2)) cbp VALVEC(IV)=VELCHE(1,IBMN) IGMN = MIN(IGAU,VELCHE(/1)) IBMN = MIN(IB, VELCHE(/2)) VALVEC(IV) = VELCHE(IGMN,IBMN) ELSE VALVEC(IV)=0.D0 ENDIF 1011 CONTINUE * * remplissage de la matrice de rotation * IF (IDIM.EQ.2.AND.IFOMEM.NE.1) THEN R(1,1)=VALVEC(1) R(1,2)=VALVEC(2) R(2,1)=VALVEC(NV2+1) R(2,2)=VALVEC(NV2+2) ELSE DO 1012 I=1,NDIM IN=(I-1)*NDIM DO 1012 J=1,NDIM IJ=IN+J R(I,J)=VALVEC(IJ) 1012 CONTINUE ENDIF * * * Sous-zones du MCHAML avant rotation * MPTVAL=IVACOM * * Tenseur avant changement de repere * MELVAL=IVAL(1) IGMN = MIN(IGAU,VELCHE(/1)) IBMN = MIN(IB, VELCHE(/2)) A(1,1) = VELCHE(IGMN,IBMN) * MELVAL=IVAL(2) IGMN = MIN(IGAU,VELCHE(/1)) IBMN = MIN(IB, VELCHE(/2)) A(2,2) = VELCHE(IGMN,IBMN) * MELVAL=IVAL(4) IGMN = MIN(IGAU,VELCHE(/1)) IBMN = MIN(IB, VELCHE(/2)) A(1,2) = VELCHE(IGMN,IBMN) * IF (IDEFO.EQ.1) A(1,2)=A(1,2)/2.D0 A(2,1)=A(1,2) * IF (IFOMEM.LT.1) GOTO 6610 * MELVAL=IVAL(3) IGMN = MIN(IGAU,VELCHE(/1)) IBMN = MIN(IB, VELCHE(/2)) A(3,3) = VELCHE(IGMN,IBMN) * MELVAL=IVAL(5) IGMN = MIN(IGAU,VELCHE(/1)) IBMN = MIN(IB, VELCHE(/2)) A(3,1) = VELCHE(IGMN,IBMN) * MELVAL=IVAL(6) IGMN = MIN(IGAU,VELCHE(/1)) IBMN = MIN(IB, VELCHE(/2)) A(3,2) = VELCHE(IGMN,IBMN) * IF (IDEFO.EQ.1) A(3,1)=A(3,1)/2.D0 IF (IDEFO.EQ.1) A(3,2)=A(3,2)/2.D0 A(1,3)=A(3,1) A(2,3)=A(3,2) * MELVAL=IVAL(3) IGMN = MIN(IGAU,VELCHE(/1)) IBMN = MIN(IB, VELCHE(/2)) A(3,3) = VELCHE(IGMN,IBMN) * 6610 CONTINUE * MELVAL=IVAL(3) IGMN = MIN(IGAU,VELCHE(/1)) IBMN = MIN(IB, VELCHE(/2)) AUX = VELCHE(IGMN,IBMN) * IF(KMOT.EQ.1) THEN * t * >>> Rotation du tenseur : A = R A R <<< * * ELSE * t * >>> Rotation du tenseur : A = R A R <<< * ENDIF * * Tenseur apres changement de repere * Sous-zones du MCHAML resultat * MPTVAL=IVARES * MELVAL=IVAL(1) VELCHE(IGAU,IB) = A(1,1) * MELVAL=IVAL(2) VELCHE(IGAU,IB) = A(2,2) * IF (IDEFO.EQ.1) A(1,2)=A(1,2)*2.D0 * MELVAL=IVAL(4) VELCHE(IGAU,IB) = A(1,2) * IF (IFOMEM.LT.1) THEN * MELVAL=IVAL(3) VELCHE(IGAU,IB)= AUX * ELSE * MELVAL=IVAL(3) VELCHE(IGAU,IB)=A(3,3) * IF (IDEFO.EQ.1) A(3,1)=A(3,1)*2.D0 IF (IDEFO.EQ.1) A(3,2)=A(3,2)*2.D0 * MELVAL=IVAL(5) VELCHE(IGAU,IB)= A(3,1) * MELVAL=IVAL(6) VELCHE(IGAU,IB)=A(3,2) * ENDIF * 1010 CONTINUE SEGSUP MWRK3 * RETURN END
© Cast3M 2003 - Tous droits réservés.
Mentions légales