tcoq3c
C TCOQ3C SOURCE BP208322 15/06/22 21:23:17 8543 ************************************************************************ * * T C O Q 3 C * ----------- * * FONCTION: * --------- * TRAITEMENT DU CAS DES ELEMENTS-FINIS COQUE TRIANGLE * A INTEGRATION-SEMI ANALYTIQUE (INTEGRATION ANALYTIQUE DANS L' * EPAISSEUR )POUR UN MAILLAGE ELEMENTAIRE * * PARAMETRES: (E)=ENTREE (S)=SORTIE (+ = CONTENU DANS UN COMMUN) * ----------- * * NEF (E) NUMERO DE L'ELEMENT-FINI DANS NOMTP (VOIR CCHAMP) * IPMAIL (E) NUMERO DU MAILLAGE ELEMENTAIRE CONSIDERE,DANS * L'OBJET MODELE * IPCHEM (E) POINTEUR SUR LE CHAMELEM DE CARACTERISTIQUE * IPRIGI (E/S) POINTEUR SUR L'OBJET RESULTAT,DE TYPE RIGIDITE * * AUTEUR, DATE DE CREATION: * ------------------------- * * P. DOWLATYARI JUILLET 1990 * * LANGAGE: * -------- * * ESOPE + FORTRAN77 ************************************************************************ & IPMATR,NLIGR) IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) -INC PPARAM -INC CCOPTIO -INC CCREEL -INC CCHAMP -INC SMCHAML -INC SMCOORD -INC SMELEME -INC SMINTE -INC SMRIGID * SEGMENT,MMAT1 REAL*8 VALMAT(NMATR) REAL*8 XE(3,NBNN),XE1(3,NBNN) REAL*8 CEL1(NBNN,NBNN),CEL2(NBNN,NBNN) REAL*8 COSD1(3),COSD2(3),COSD3(3),YK(2,2) ENDSEGMENT * SEGMENT MPTVAL INTEGER IPOS(NS) ,NSOF(NS) INTEGER IVAL(NCOSOU) CHARACTER*16 TYVAL(NCOSOU) ENDSEGMENT * MAILLAGE ELEMENTAIRE MELEME = IPMAIL C* SEGACT,MELEME NBNN = NUM(/1) NBELEM = NUM(/2) * * INFORMATION SUR L'ELEMENT MINTE = IPINTE C* SEGACT,MINTE NBPGAU = POIGAU(/1) * XMATRI = IPMATR c* SEGACT,XMATRI*MOD * * SEGMENTS MELVAL correspondant aux composantes de la conductivite et * de l'epaisseur des elements (epaisseur toujours placee a la fin !) MPTVAL = IVAMAT c* SEGACT,MPTVAL * Verification de la constance de l'epaisseur : * IPMELV = IVAL(NVAMAT) * CALL QUELCH(IPMELV,ICONS) * IF (ICONS.NE.0) THEN * CALL ERREUR(566) * RETURN * ENDIF * NMATR = NVAMAT NDIM = IDIM-1 SEGINI,MMAT1 NFIN = NDIM+1 * * BOUCLE SUR LES ELEMENTS DU MAILLAGE ELEMENTAIRE IMAIL * DO 10 iel = 1, NBELEM * * MISE A ZERO DES TABLEAUX CEL1 ET CEL2 * * * ON CHERCHE LES COORDONNEES DES NOEUDS DE L'ELEMENT IEL, * DANS LE REPERE GLOBAL * * * CALCUL DES COORDONNEES DES NOEUDS DANS LE REPERE LOCAL DE L' * ELEMENT COQUE * DO 60 I=1,3 COSD1(I) = XE(I,2)-XE(I,1) COSD2(I) = XE(I,3)-XE(I,1) 60 CONTINUE * COSD3(1)=COSD1(2)*COSD2(3)-COSD1(3)*COSD2(2) COSD3(2)=COSD1(3)*COSD2(1)-COSD1(1)*COSD2(3) COSD3(3)=COSD1(1)*COSD2(2)-COSD1(2)*COSD2(1) * COSD1L=SQRT(COSD1(1)*COSD1(1)+COSD1(2)*COSD1(2)+ & COSD1(3)*COSD1(3)) COSD3L=SQRT(COSD3(1)*COSD3(1)+COSD3(2)*COSD3(2)+ & COSD3(3)*COSD3(3)) * DO 70 I=1,3 COSD1(I)=COSD1(I)/COSD1L COSD3(I)=COSD3(I)/COSD3L 70 CONTINUE * COSD2(1)=COSD3(2)*COSD1(3)-COSD3(3)*COSD1(2) COSD2(2)=COSD3(3)*COSD1(1)-COSD3(1)*COSD1(3) COSD2(3)=COSD3(1)*COSD1(2)-COSD3(2)*COSD1(1) * DO 80 NOE=1,NBNN r_z1 = XZERO r_z2 = XZERO DO I = 1, 3 r_z1 = r_z1 + XE(I,NOE)*COSD1(I) r_z2 = r_z2 + XE(I,NOE)*COSD2(I) ENDDO XE1(1,NOE) = r_z1 XE1(2,NOE) = r_z2 80 CONTINUE * * BOUCLE SUR LES POINTS DE GAUSS * IFOIS=0 IFOI2=0 EPAI = XZERO DO 20 IGAU=1,NBPGAU * * CALCUL DE LA MATRCIE GRADIENT DES FONCTIONS DE FORME ET * DU JACOBIEN(DANS LE PLAN), EN UN POINT DE GAUSS * DO 90 NP=1,NBNN DO 90 I=1,NFIN SHP(I,NP)=SHPTOT(I,NP,IGAU) 90 CONTINUE * * DERIVES DES FONCTIONS DE FORME DANS LA GEOMETRIE REELLE * ET LE JACOBIEN IF (DJAC.LT.XZERO) IFOIS=IFOIS+1 IF (ABS(DJAC).LT.XPETIT) IFOI2=IFOI2 +1 DO 100 NP=1,NBNN FORME(NP)=SHP(1,NP) DO 100 I= 1,NDIM 100 CONTINUE * * ON MULTIPLIE LE JACOBIEN PAR LE POIDS D'INTEGRATION,POUR LE * POINT DE GAUSS CONSIDERE * DJAC=ABS(DJAC)*POIGAU(IGAU) * * ON CHERCHE LES VALEURS DE COMPOSANTES DE LA CONDUCTIVITE * ET L'EPAISSEUR DE LA COQUE DO i = 1, NMATR c* IF (IVAL(i).NE.0) THEN MELVAL = IVAL(i) IBMN = MIN(IEL,VELCHE(/2)) IGMN = MIN(IGAU,VELCHE(/1)) VALMAT(i) = VELCHE(IGMN,IBMN) c* ELSE c* VALMAT(i) = XZERO c* ENDIF ENDDO * EP = VALMAT(NMATR) * L'ELEMENT (IEL) AU POINT DE GAUSS (IGAU)DE TYPE (NOMTP(NEF)) A * UNE EPAISSEUR NULLE IF (EP.LE.XPETIT) THEN INTERR(1) = IEL INTERR(2) = IGAU MOTERR(1:4) = NOMTP(NEF) GOTO 999 ENDIF EPAI = EPAI + EP * * MATERIAU ISOTROPE * IF (IMATE.EQ.1) THEN * XK3 = VALMAT(1) * DJAC * * ON AJOUTE LE PRODUIT K3*DJAC*TRANSPOSEE(GRAD)*GRAD * POUR LE POINT DE GAUSS CONSIDERE,A LA MATRICE CEL1 * * ELSE IF (IMATE.EQ.2) THEN * XK1 = VALMAT(1) XK2 = VALMAT(2) XK3 = VALMAT(3) * DJAC * COSA = VALMAT(5) SINA = VALMAT(6) * * CALUL DE LA MATRICE DES COEFFICIENTS DE CONDUCTIVITES DANS LE * PLAN PAR RAPPORT AU REPERE LOCAL DE L'ELEMENT * COS2 = COSA*COSA SIN2 = SINA*SINA YK(1,1) = COS2*XK1 + SIN2*XK2 YK(1,2) = SINA*COSA*(XK1-XK2) YK(2,1) = YK(1,2) YK(2,2) = SIN2*XK1 + COS2*XK2 * * ON AJOUTE LE PRODUIT DJAC*TRANSPOSEE(GRAD)*YK*GRAD * POUR LE POINT DE GAUSS CONSIDERE,A LA MATRICE CEL1 * * ENDIF * * ON AJOUTE LE PRODUIT K3*DJAC*TRANSPOSEE(FORME)*FORME POUR LE * DE GAUSS CONSIDERE A LA MATRICE CEL2 * * 20 CONTINUE * * LE JACOBIEN EST NEGATIF ,MAILLAGE INCORRECT IF (IFOIS.NE.0.AND.IFOIS.NE.NBPGAU) THEN INTERR(1) = iel GOTO 999 ELSE IF (IFOI2.EQ.NBPGAU) THEN * CAS OU LE JACOBIEN EST TRES PETIT INTERR(1) = iel GOTO 999 ENDIF * * REMPLISSAGE DE XMATRI * EN SUPPOSANT UNE EPAISSEUR MOYENNE CONSTANTE ! * EPAI = EPAI / NBPGAU * 10 CONTINUE * * DESACTIVATION DES SEGMENTS 999 CONTINUE SEGSUP,MMAT1 RETURN END
© Cast3M 2003 - Tous droits réservés.
Mentions légales