Download SMMATRIK.INC

Back to the list

C*******************************************************************            
C                                                                               
C    REPERAGE ET STOKAGE DES MATRICES ELEMENTAIRES  puis assemblees
C    (description par sous-zone associees a un operateur)
C                                                                               
C   COEMTK(I)     : Flottant , coefficient multiplicateur de la matrice
C                                                                               
C   IRIGEL(1,I)   : POINTEUR SUR L'OBJET GEOMETRIE (Inconnues primales)
C   IRIGEL(2,I)   : POINTEUR SUR L'OBJET GEOMETRIE (Inconnues duales)
C   IRIGEL(3,I)   : Non utilise (POINTEUR SUR LE SEGMENT DESCRIPTIF D'UNE
C                                MATRICE ELEMENTAIRE.(SEGMENT DESCR)
C   IRIGEL(4,I)   : POINTEUR SUR LE SEGMENT CONTENANT LES POINTEURS
C                        DES MATRICES DE MRIGIDITE DE CHAQUE ELEMENTS.
C                        (SEGMENT IMATRI)
C   IRIGEL(5,I)   : Non utilise
C   IRIGEL(6,I)   : Non utilise
C   IRIGEL(7,1)   : 0   LA MATRICE EST SYMETRIQUE
C                 : 1   LA MATRICE EST ANTISYMETRIQUE
C                 : 2   LA MATRICE EST NON SYMETRIQUE
C                 : 3   LA MATRICE EST RECTANGULAIRE avec SPGP # SPGD
C                 : 4   LA MATRICE EST type 3 et CCt (on ne stoke que C)
C                 : 5   LA MATRICE EST diagonale
C                 : 6   LA MATRICE EST deja assemblee en morse

      SEGMENT MATRIK
      REAL*8  COEMTK(NMATRI)
      INTEGER IRIGEL(NRIGE,NMATRI)

C KSIM  =0 matrice symetrique  =2 matrice non symetrique
C KMINC , KMINCP , KMINCD : pointeur sur MINC repartition des inconnues
C totales primales et duales                            PROFKS PKINC
C KIZM  : pointeur sur les connectivites globales
C KISPGT KISPGP KISPGD ; SPG assemble pour inc totales,prim et dua
C KNTTT  KNTTP  KNTTD  ; nb d'inconnues total

      INTEGER KSYM,KMINC,KMINCP,KMINCD,KIZM
      INTEGER KISPGT,KISPGP,KISPGD
      INTEGER KNTTT,KNTTP,KNTTD

C KIDMAT: pointeur sur stokage bloc IDMAT (Cholevski)    TRIAKS
C KS2B  : pointeur sur second membre(IZA)cree ds PROFKS calcule ds KASMBR
C KMORS : pointeur sur profil Morse(PMORS)               ASSMT (KALMOR)
C KISA  : pointeur sur stokage Morse(IZA)                ASSMT (KALMOR)
C KMRST : pointeur sur profil Morse(PMORS)de AAt         PROFKS(KALMOR)
C KIST  : pointeur sur stokage Morse(IZA) de AAt         PROFKS(KALMOR)
C KCLIM : pointeur sur stokage C lim (CHPT)
C KTRING: 0 pas triangulée 1 triangulée

C  nkid=9 :  IDMATP,IDMATD,KS2B,KMORS,KISA,KMRST,KIST,KCLIM,KTRING
      INTEGER KIDMAT(NKID)
C  nkmt=7 :  KMMT,MATRIU,MATRIP,IZDU,IZDP,IZFU,IZFP
C                               (IZA)(IZA)(IZA)(IZA)
      INTEGER KKMMT(NKMT)
      ENDSEGMENT

C LIZAFM(NBSOUS,.) description par sous-objet geometrique -> IZAFM
C KSPGP , KSPGD : SPG pour les inconnues primales et duales
      SEGMENT IMATRI
      CHARACTER*8 LISPRI(NBME),LISDUA(NBME)
      INTEGER LIZAFM(NBSOUS,NBME)
      INTEGER KSPGP,KSPGD
      ENDSEGMENT

C Stokage matrices elementaires non assemblees (valeurs)
      SEGMENT IZAFM                                                             
      REAL*8  AM(NBEL,NP,MP)
      ENDSEGMENT                                                                
      POINTEUR IPM1.IZAFM,IPM2.IZAFM,IPM3.IZAFM,IPM4.IZAFM
      POINTEUR IPM5.IZAFM,IPM6.IZAFM,IPM7.IZAFM,IPM8.IZAFM
      POINTEUR IPM9.IZAFM

C Reperage des inconnues
*  NPT nb de noeud  NBI nb de composantes total  NTT nb total de DDL
*  MPOS(NPT,NBI+1) = 0 si l'inconnue j n est pas defini au noeud i
*            sinon = k rang de cette inconnue pour le noeud i
*  MPOS(i,NBI+1) nb d'inconnues au noeud i
*  NPOS(NPT)     Position de la 1ere inconnue du noeud i
*  NPOS et MPOS  sont donnes ds la numerotation optimisee

      SEGMENT MINC
      CHARACTER*8 LISINC(NBI)
      INTEGER     NPOS(NPT+1)
      INTEGER     MPOS(NPT,NBI+1)
      ENDSEGMENT
      POINTEUR MINCP.MINC,MINCD.MINC

      SEGMENT PMORS
      INTEGER IA (NTT+1)
      INTEGER JA (NJA)
      ENDSEGMENT
      POINTEUR PMS1.PMORS,PMS2.PMORS

C Segment de stokage
      SEGMENT IZA
      REAL*8  A(NBVA)
      ENDSEGMENT
      POINTEUR IZA1.IZA,IZA2.IZA,IZAU.IZA,IZAL.IZA,ISA.IZA

      SEGMENT IDMAT
*  KZA(NTT)    Longueur de chaque ligne de la matrice (diag comprise)
*  NUIA(NTT,2) 1/ numero du bloc dans lequel se trouve la ligne i de la
*                 matrice
*              2/ position du debut de la ligne dans le segment IZA - 1
      INTEGER KZA(NTT),NUIA(NTT,2)
      INTEGER NUAN(NPT),NUNA(NPT)
      INTEGER IDIAG
      INTEGER IDESCL(NBLK)
      INTEGER IDESCU(NBLK)
      INTEGER NLDBLK(NBLK+1)
      ENDSEGMENT

C*******************************************************************            

© Cast3M 2003 - All rights reserved.
Disclaimer