Download geoli1.eso

Back to the list

   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