Download geolf1.eso

Back to the list

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

© Cast3M 2003 - All rights reserved.
Disclaimer