coq8ma
C COQ8MA SOURCE PV 20/03/26 21:15:11 10563 C C |--------------------------------------------------------------| C | NOUVELLE PROCEDURE DE CALCUL DE LA MATRICE DE MASSE | C | AVEC UN ELEMENT DE COQUE A 6 ou 8 NOEUDS | C | | C | INSPIRE D'UNE ROUTINE PREEXISTANT DANS BILBO | C |--------------------------------------------------------------| C | ENTREES | C | NBPGAU : NOMBRE DE POINTS DE GAUSS. | C | MINTE : FONCTIONS DE FORME AUX POINTS DE GAUSS | C | MINTE2 : FONCTIONS DE FORME AUX NOEUDS | C | RHOK : MASSE VOLUMIQUE. | C | ESP : EPAISSEUR. | C | EXCEN : EXCENTREMENT. | C | NBNO : NOMBRE DE NOEUDS | C |--------------------------------------------------------------| C C C IMPLICIT INTEGER(I-N) IMPLICIT REAL*8 (A-H,O-Z) -INC SMINTE SEGMENT WRK7 c REAL*8 XJI(3,3),TXR(3,3,NBNO),FINT(3,LRE),XJ(3,3),B(3,3) ENDSEGMENT SEGACT MINTE SEGACT WRK1*MOD SEGINI WRK7 C EXCENTRICITE ET EPAISSEUR CONSTANTES EN ENTREE !?! EXC(I)=EXCEN TH(I) = ESP 5 CONTINUE C C INITIALISATION DE LA MATRICE MASSE M=[0] REL(I,J) = 0.D0 11 CONTINUE 10 CONTINUE * C CALCUL DU REPERE LOCAL AUX NOEUDS : c TXR(i,j,k) = [V1,V2,V3] calcules aux NBNO noeuds (x_k) SEGACT MINTE2 * SEGDES MINTE2 * * *===> BOUCLE SUR LES POINTS DE GAUSS xGauss DO 80 LX = 1,NBPGAU c coordonnees hors plan \dze, poids w et fonctiond forme Ni(xGauss) E3 = DZEGAU(LX) WT = POIGAU (LX) H(I)=SHPTOT(1,I,LX) 20 CONTINUE c calcul du Jacobien |J| c UX UY UZ RX RY RZ c remplissage de [N] = [ Ni 0 0 | 0 +Ni*ti*\dze*V3Z -Ni*ti*\dze*V3Y ] c [ 0 Ni 0 | . 0 +Ni*ti*\dze*V3X ] c [ 0 0 Ni | antisym. 0. ] DO 30 I = 1,3 XN(I,J) = 0.D0 31 CONTINUE 30 CONTINUE c DO 40 I = 1,3 c XJI(I,I) = 0.D0 c 40 CONTINUE c XJI(1,2) = TXR(1,1,J)*TXR(2,2,J) - TXR(2,1,J)*TXR(1,2,J) c XJI(1,3) = TXR(1,1,J)*TXR(3,2,J) - TXR(1,2,J)*TXR(3,1,J) c XJI(2,3) = TXR(2,1,J)*TXR(3,2,J) - TXR(2,2,J)*TXR(3,1,J) c DO 50 IK = 1,3 c DO 51 JK = IK,3 c XJI(JK,IK) = -XJI(IK,JK) c 51 CONTINUE c 50 CONTINUE Cbp,2020 : on fait + simple car V3 deja calcule ! V3X=TXR(1,3,J) V3Y=TXR(2,3,J) V3Z=TXR(3,3,J) J1 = (J-1)*6 + 1 J4 = J3 + 1 J5 = J4 + 1 J6 = J5 + 1 A1 = H(J)*(0.5*E3*ESP+EXCEN) XN(1,J1) = H(J) cbp,2020 XN(1,J5) = A1*XJI(1,2) cbp,2020 XN(1,J6) = A1*XJI(1,3) XN(1,J5) = A1*V3Z XN(1,J6) = -1.*A1*V3Y XN(2,J4) = -XN(1,J5) cbp,2020 XN(2,J6) = A1*XJI(2,3) XN(2,J6) = A1*V3X XN(3,J3) = XN(1,J1) XN(3,J4) = -XN(1,J6) XN(3,J5) = -XN(2,J6) 60 CONTINUE c calcul de M = \sum_ptdeGauss N^T * N \rho |J| w DO 72 K = 1,3 REL(I,J) = REL(I,J) + XN(K,I)*XN(K,J)*FACT 72 CONTINUE REL(J,I) = REL(I,J) 71 CONTINUE 70 CONTINUE 80 CONTINUE *===> FIN DE BOUCLE SUR LES POINTS DE GAUSS * SEGDES MINTE SEGSUP WRK7 RETURN END
© Cast3M 2003 - Tous droits réservés.
Mentions légales