1 : C GEOLI1 SOURCE GOUNAND 05/12/21 21:26:46 5281 2 : SUBROUTINE GEOLI1(IESREL,IESREF,NDNOEU,NDPOGO,NDELEM, 3 : $ DFNPG,JCOOR, 4 : $ JMAJAC, 5 : $ IMPR,IRET) 6 : IMPLICIT REAL*8 (A-H,O-Z) 7 : IMPLICIT INTEGER (I-N) 8 : C*********************************************************************** 9 : C NOM : GEOLI1 10 : C PROJET : Noyau linéaire NLIN 11 : C DESCRIPTION : Calcul de la matrice jacobienne d'une transformation 12 : C géométrique aux points de Gauss d'un élément de 13 : C référence pour chaque élément réel. 14 : C On a : 15 : C Fonction f : R^m -> R^n 16 : C a=(a1...am) |-> f(a)=(f1(a)...fn(a) 17 : C => matjac(i,j)(a)=Dj fi (a) = dfi / dxj (a) 18 : C 19 : C Par exemple, pour une surface en 3D, la matrice jacobienne 20 : C s'exprime comme : 21 : C 22 : C 23 : C [] 24 : C [J] = [ ] . [ { dNg/d(ksi) } { dNg/d(eta) } ] 25 : C [ ] 26 : C 27 : C (3x2) (3 x Nnoeuds) (Nnoeuds x 2) 28 : C 29 : C Ici, le nb de ddl est égal aux nbs de noeuds car l'interpolation 30 : C pour la géométrie est de type nodale. 31 : C 32 : C Ceci ressemble à un produit tensoriel (cf. coga1) 33 : C 34 : C 35 : C LANGAGE : Fortran 77 (sauf E/S) 36 : C AUTEUR : Stéphane GOUNAND (CEA/DRN/DMT/SEMT/LTMF) 37 : C mél : gounand@semt2.smts.cea.fr 38 : C*********************************************************************** 39 : C APPELES : - 40 : C APPELE PAR : GEOLIN 41 : C*********************************************************************** 42 : C ENTREES : * IESREL (type entier) : dimension de l'espace 43 : C réel (i.e. géométrique). 44 : C * IESREF (type entier) : dimension de l'espace de 45 : C référence. 46 : C * NDNOEU (type entier) : nombre de ddl (par 47 : C élément) de la transformation géométrique. 48 : C * NDPOGO (type entier) : nombre de points 49 : C d'intégration. 50 : C * NDELEM (type entier) : nombre d'éléments du 51 : C maillage élémentaire courant. 52 : C * DFNPG (type entier) : valeurs des dérivées 53 : C premières des fonctions d'interpolation de la 54 : C transformation géométrique aux points de gauss 55 : C sur l'élément de référence. 56 : C * JCOOR (type réel) : valeurs des ddl de la 57 : C transformation géométrique sur le maillage 58 : C élémentaire courant. 59 : C ENTREES/SORTIES : * JMAJAC (type réel) : valeurs de la matrice 60 : C jacobienne aux points de Gauss sur le maillage 61 : C élémentaire courant. 62 : C SORTIES : - 63 : C CODE RETOUR (IRET) : = 0 si tout s'est bien passé 64 : C*********************************************************************** 65 : C VERSION : v1, 10/08/99, version initiale 66 : C HISTORIQUE : v1, 10/08/99, création 67 : C HISTORIQUE : 68 : C HISTORIQUE : 69 : C*********************************************************************** 70 : C Prière de PRENDRE LE TEMPS de compléter les commentaires 71 : C en cas de modification de ce sous-programme afin de faciliter 72 : C la maintenance ! 73 : C*********************************************************************** 74 : -INC CCOPTIO 75 : INTEGER IESREL,IESREF,NDNOEU,NDPOGO,NDELEM 76 : REAL*8 DFNPG (NDNOEU,IESREF,NDPOGO) 77 : REAL*8 JCOOR (NDNOEU,IESREL,NDELEM) 78 : REAL*8 JMAJAC(IESREL,IESREF,NDPOGO,NDELEM) 79 : * 80 : INTEGER IMPR,IRET 81 : INTEGER IELEM,IPOGO,INOEUD,IREEL,IREFER 82 : * 83 : * Executable statements 84 : * 85 : IF (IMPR.GT.1) WRITE(IOIMP,*) 'Entrée dans geoli1' 86 : DO 1 IELEM=1,NDELEM 87 : DO 12 IPOGO=1,NDPOGO 88 : DO 122 IREFER=1,IESREF 89 : DO 1222 IREEL=1,IESREL 90 : DO 12222 INOEUD=1,NDNOEU 91 : JMAJAC(IREEL,IREFER,IPOGO,IELEM)= 92 : $ JMAJAC(IREEL,IREFER,IPOGO,IELEM) 93 : $ + (JCOOR(INOEUD,IREEL,IELEM) 94 : $ *DFNPG(INOEUD,IREFER,IPOGO)) 95 : 12222 CONTINUE 96 : 1222 CONTINUE 97 : 122 CONTINUE 98 : 12 CONTINUE 99 : 1 CONTINUE 100 : 101 : * 102 : * Normal termination 103 : * 104 : IRET=0 105 : RETURN 106 : * 107 : * Format handling 108 : * 109 : * 110 : * Error handling 111 : * 112 : 9999 CONTINUE 113 : IRET=1 114 : WRITE(IOIMP,*) 'An error was detected in subroutine geoli1' 115 : RETURN 116 : * 117 : * End of subroutine GEOLI1 118 : * 119 : END 120 : 121 :
© Cast3M 2003 - All rights reserved.
Disclaimer