Download dktgr1.eso

Back to the list

   1 : C DKTGR1    SOURCE    CHAT      09/10/09    21:17:17     6519           
   2 :       SUBROUTINE DKTGR1(XE,RG,IPOIN1,IDISS,IXMATR,iel)
   3 :       IMPLICIT INTEGER(I-N)
   4 :       IMPLICIT REAL*8(A-H,O-Z)
   5 : C=======================================================================
   6 : C
   7 : C      CALCULE LA MATRICE DE RAIDEUR LIEE A LA VARIATION DE PRESSION DUE
   8 : C      AU MOUVEMENT SUIVANT VECZ DANS UN CHAMP DE PESANTEUR
   9 : C
  10 : C      cette matrice est non symetrique mais combinée avec la mattrice kp
  11 : c      donne une matrice symetrique c'est pourquoi on calcule les matrices
  12 : c      symetriques et dissymetriques.
  13 : c
  14 : c      on utilise des fonctions de formes linéaires meme pour les ddl normaux
  15 : c      au plan car c'est ce qu'on fait pour kp et ksig aussi.
  16 : c
  17 : C
  18 : C   ENTREE
  19 : C      XE(3,3)=COODONNEES DE L ELEMENT
  20 : C      RG     =MASSE VOLUMIQUE * ACCELERATION DE GRAVITE
  21 : C      IPOIN1 =VECTEUR(POINT) DEFINISSANT LE SENS DE GRAVITE
  22 : *      IDISS : 0 ---> MATRICE SYMETRIQUE
  23 : *              1 ---> MATRICE DISSYMETRIQUE
  24 : *     IXMATR : pointeur du segment xmatri
  25 : *     iel njumero de l'element
  26 : C   TRAVAIL
  27 : C      XEL(3,3)   =COORDONNEES LOCALES DE L ELEMENT
  28 : C      BPSS(3,3)  =MATRICE DE PASSAGE
  29 : C      VECN(3)    =VECTEUR DEFINISSANT LA NORMALE
  30 : C      VECZ(3)    =VECTEUR DEFINISSANT LE SENS DE GRAVITE
  31 : C   SORTIES
  32 : C      RE(18,18)=MATRICE DE RAIDEUR REPERE GLOBAL (dans le segment xmatri)
  33 : C
  34 : C      JUILLET 95  I. POLITOPOULOS
  35 : C
  36 : C=======================================================================
  37 : -INC CCOPTIO
  38 : -INC SMCOORD
  39 : -INC SMRIGID
  40 : 
  41 :       DIMENSION XE(3,3),XEL(3,3),BPSS(3,3),XRE(18,18)
  42 :       DIMENSION VECZ(3),VECN(3)
  43 :       DATA UNSIX,UN12/.166666666666666666D0,.833333333333333333D-1/
  44 : 
  45 : C
  46 : C     MATRICE DE PASSAGE
  47 : C
  47 :       CALL VPAST(XE,BPSS)
  48 : C
  49 : C     COORDONNEES LOCALES
  50 : C
  50 :       CALL VCORLC(XE,XEL,BPSS)
  51 : C
  52 : C     MISE A 0 DE LA MATRICE
  53 : C
  54 :       XMATRI = IXMATR
  55 : 
  56 :       X21=XEL(1,2)-XEL(1,1)
  57 :       Y31=XEL(2,3)-XEL(2,1)
  58 :       SURF=X21*Y31*.5D0*RG
  59 : 
  60 : C
  61 : C     CONSTRUCTION DE LA NORMALE
  62 : C
  63 :       XG1 = XE(1,2) - XE(1,1)
  64 :       YG1 = XE(2,2) - XE(2,1)
  65 :       ZG1 = XE(3,2) - XE(3,1)
  66 :       XG2 = XE(1,3) - XE(1,1)
  67 :       YG2 = XE(2,3) - XE(2,1)
  68 :       ZG2 = XE(3,3) - XE(3,1)
  69 :       VECN(1) = YG1*ZG2 - ZG1*YG2
  70 :       VECN(2) = ZG1*XG2 - XG1*ZG2
  71 :       VECN(3) = XG1*YG2 - YG1*XG2
  72 :       XNORM = VECN(1)*VECN(1) + VECN(2)*VECN(2) + VECN(3)*VECN(3)
  73 :       XNORM = SQRT(XNORM)
  74 :         DO 10 IA=1,3
  75 :           VECN(IA) = VECN(IA)/XNORM
  76 :   10    CONTINUE
  77 : 
  78 : C
  79 : C    DETERMINATION ET NORMALISATION DE VECZ
  80 : C
  81 :       IF (IPOIN1.NE.0) THEN
  82 :        VECZ(1) = XCOOR((IPOIN1-1)*(IDIM+1) + 1)
  83 :        VECZ(2) = XCOOR((IPOIN1-1)*(IDIM+1) + 2)
  84 :        VECZ(3) = XCOOR((IPOIN1-1)*(IDIM+1) + 3)
  85 :       ELSE
  86 :        VECZ(1) = VECN(1)
  87 :        VECZ(2) = VECN(2)
  88 :        VECZ(3) = VECN(3)
  89 :       ENDIF
  90 :       XNORM = VECZ(1)*VECZ(1) + VECZ(2)*VECZ(2) + VECZ(3)*VECZ(3)
  91 :       XNORM = SQRT(XNORM)
  92 :         DO 20 IA=1,3
  93 :           VECZ(IA) = VECZ(IA)/XNORM
  94 :   20    CONTINUE
  95 : 
  96 : C
  97 : C     TERMES DE LA MATRICE DANS LE REPERE GLOBAL
  98 : C
  99 :       DO 100 IA=1,13,6
 100 :        DO 110 IC= 1,3
 101 :         IAA = IA + IC - 1
 102 :          DO 120 IB=1,13,6
 103 :           DO 130 ID = 1,3
 104 :            IBB = IB + ID -1
 105 :             IF (IA.NE.IB) THEN
 106 :               XRE(IBB  ,IAA)  =UN12*VECN(ID)*VECZ(IC)*SURF
 107 :             ELSE
 108 :               XRE(IBB  ,IAA)  =UNSIX*VECN(ID)*VECZ(IC)*SURF
 109 :             ENDIF
 110 :   130     CONTINUE
 111 :   120   CONTINUE
 112 :   110  CONTINUE
 113 :   100 CONTINUE
 114 : 
 115 : *  symetrisation de la matrice
 116 :       DO 200 IA=1,13,6
 117 :        DO 210 IC= 1,3
 118 :         IAA = IA + IC - 1
 119 :          DO 220 IB=1,13,6
 120 :           DO 230 ID = 1,3
 121 :            IBB = IB + ID -1
 122 :            IF (IDISS.EQ.0) THEN
 123 :             RE(IAA,IBB,iel) = 0.5D0*(XRE(IAA, IBB) + XRE(IBB,IAA))
 124 :            ELSE
 125 :              RE(IAA,IBB,iel) = XRE(IAA,IBB)
 126 :            ENDIF
 127 :   230     CONTINUE
 128 :   220   CONTINUE
 129 :   210  CONTINUE
 130 :   200 CONTINUE
 131 : 
 132 : 
 133 :       RETURN
 134 :       END
 135 : 
 136 :  
 137 :  
 138 :  
 139 :  
 140 :  
 141 :  
 142 :  
 143 :  

© Cast3M 2003 - All rights reserved.
Disclaimer