1 : C JCBIEN SOURCE CHAT 05/01/13 00:49:21 5004 2 : SUBROUTINE JCBIEN(XREF,ITYP,NDIM,NOEL1,XJAC,DET,IZSH) 3 : ******************************************************************* 4 : *** SP 'JCBIEN' : calcul du jacobien pour le passage entre l'element 5 : *** de reference et l'element reel. 6 : *** 7 : *** APPELES 1 = 'SHAPE' 8 : *** APPELES 2 = aucun 9 : *** 10 : *** E = 'XREF' coordonnees de reference du pt de calcul 11 : *** 'ITYP' entier caracterisant le type de l'element 12 : *** 'NDIM' dimension de l'espace 13 : *** 'NOEL1' nbre de noeuds de l'element 14 : *** 15 : *** S = 'XJAC' matrice Jacobienne au pt de calcul 16 : *** 'DET' valeur du Jacobien au pt de calcul 17 : *** 18 : *** E/S = 'IZSH' segment content parametres utilises suivants : 19 : *** 'XYZL' coord reelles des noeuds de l'element (E) 20 : *** 'SHP(1,I)' fcts forme au pt calcul de reference (S) 21 : *** 'SHP(2,I)' derivee fcts forme / xsi au pt calcul reference (S) 22 : *** 'SHP(3,I)' derivee fcts forme / eta au pt calcul reference (S) 23 : *** 'SHP(4,I)' derivee fcts forme / dzeta au pt calcul reference (S) 24 : *** 25 : *** Auteur Patrick Meyniel 26 : ******************************************************************** 27 : 28 : IMPLICIT INTEGER(I-N) 29 : IMPLICIT REAL*8 (A-H,O-Z) 30 : SEGMENT IZSH 31 : REAL*8 SHP(6,MNO9),SHY(12,MNO9),XYZL(3,MNO9) 32 : ENDSEGMENT 33 : DIMENSION XREF(*),XJAC(3,*) 34 : *** calcul des fonctions de forme et de leur derivees 34 : CALL SHAPE(XREF(1),XREF(2),XREF(3),ITYP,SHP,IRET) 35 : *** initialisation des coefficients de la matrice jacobienne 36 : DET=0.D0 37 : DO 10 I=1,3 38 : DO 20 J=1,3 39 : XJAC(I,J)=0.D0 40 : 20 CONTINUE 41 : 10 CONTINUE 42 : *** calcul des coefficients de derivation de la matrice jacobienne 43 : IF (NDIM.EQ.2) THEN 44 : *** cas 2D 45 : DO 30 I=1,NOEL1 46 : XJAC(1,1)=XJAC(1,1)+SHP(2,I)*XYZL(1,I) 47 : XJAC(1,2)=XJAC(1,2)+SHP(3,I)*XYZL(1,I) 48 : XJAC(2,1)=XJAC(2,1)+SHP(2,I)*XYZL(2,I) 49 : XJAC(2,2)=XJAC(2,2)+SHP(3,I)*XYZL(2,I) 50 : 30 CONTINUE 51 : DET=XJAC(1,1)*XJAC(2,2)-XJAC(1,2)*XJAC(2,1) 52 : ELSE 53 : *** cas 3D 54 : DO 40 I=1,NOEL1 55 : XJAC(1,1)=XJAC(1,1)+SHP(2,I)*XYZL(1,I) 56 : XJAC(1,2)=XJAC(1,2)+SHP(3,I)*XYZL(1,I) 57 : XJAC(1,3)=XJAC(1,3)+SHP(4,I)*XYZL(1,I) 58 : XJAC(2,1)=XJAC(2,1)+SHP(2,I)*XYZL(2,I) 59 : XJAC(2,2)=XJAC(2,2)+SHP(3,I)*XYZL(2,I) 60 : XJAC(2,3)=XJAC(2,3)+SHP(4,I)*XYZL(2,I) 61 : XJAC(3,1)=XJAC(3,1)+SHP(2,I)*XYZL(3,I) 62 : XJAC(3,2)=XJAC(3,2)+SHP(3,I)*XYZL(3,I) 63 : XJAC(3,3)=XJAC(3,3)+SHP(4,I)*XYZL(3,I) 64 : 40 CONTINUE 65 : DET=XJAC(1,1)*(XJAC(2,2)*XJAC(3,3)-XJAC(3,2)*XJAC(2,3)) 66 : $ +XJAC(1,2)*(XJAC(3,1)*XJAC(2,3)-XJAC(2,1)*XJAC(3,3)) 67 : $ +XJAC(1,3)*(XJAC(2,1)*XJAC(3,2)-XJAC(2,2)*XJAC(3,1)) 68 : ENDIF 69 : RETURN 70 : END 71 : 72 : 73 :
© Cast3M 2003 - All rights reserved.
Disclaimer