Modulefpreviousupnextcontentsindex[BIG][Normal][small]
Suiv.: 1.4 La SD BDCL Sup.: 1 Description des SD par type Préc.: 1.2 La SD ATRI Index Table des matières


1.3 La SD B

 

1.3.1 Contenu

Cette SD est l'organisation choisie pour stocker un tableau de coefficients ayant la structure d'un vecteur (second membre d'un système, solution, etc.).

En pratique, le tableau, noté B, est de la forme B(NDSM,NTDL) où NDSM désigne par exemple le nombre de cas de charge ou de seconds membres et NTDL le nombre de degrés de liberté.

La SD B est composée de cinq tableaux dont l'organisation est prédéfinie.

Tableau B0 : Informations générales.

De type entier, ce tableau possède 32 variables. Il contient une description générale du travail (titre, date, nom), de la SD B (type, niveau, ...) et indique la présence ou non du tableau B1.

1:20 TITRE

le titre du travail en 20 mots de 4 caractères,

21:22 DATE

la date de création en 2 mots de 4 caractères,

23:28 NOMCRE

le nom du créateur en 6 mots de 4 caractères,

29 'B'

le type de la SD,

30 NIVEAU

le paramètre de niveau de la SD,

31 ETAT

un paramètre réservé,

32 NTACM

le nombre de tableaux supplémentaires associés à la SD
(ils seront décrits dans le tableau B1).

Tableau B1 : Descripteur des éventuels tableaux supplémentaires.

Ce tableau de type entier existe si NTACM (cf. B0) est non nul. Il contient, pour chaque tableau à décrire, 22 variables. En règle générale, il n'y a pas de tableaux associés sauf pour certaines applications où l'on a besoin de conserver dans la SD des valeurs n'entrant pas dans le cadre de sa définition standard.

Si le tableau B1 existe, il contient séquentiellement :

Boucle i de 1 à NTACM

Fin de boucle.

Tableau B2 : Description générale du tableau de coefficients.

Ce tableau de type entier contient 11 valeurs.

1 NTYP

le type du tableau B4,

2 NIND

le nombre de ses indices (fixé à 2),

3 M1

la valeur maximale de son premier indice (par exemple NDSM, le nombre de cas de charge),

4 M2

la valeur maximale de son second indice (par exemple NTDL si B4 n'a qu'une page),

5 NCOD

le code de découpage en blocs du tableau B4 avec :

6 NBLOC

le nombre de blocs,

7 NOE

le nombre de noeuds,

8 NBBLOC

le nombre de tableaux B4 lorsque la SD est sur fichier,

9 ND

le nombre de degrés de liberté par noeud s'il est constant, 0 sinon,

10 NTDL

le nombre de degrés de liberté ou la valeur maximale du second indice du tableau B4 lorsque les NBLOC blocs sont considérés,

11 NCODSB

le code de stockage du tableau B4 avec :

Tableau B3 : Pointeur sur les blocs.

Ce tableau de type entier contient NBLOC+1 variables indiquant la segmentation du tableau B4.

Tableau B4 : Les coefficients du(des) tableau(x).

De type NTYP ce tableau contient les NDSM*M2 valeurs de chaque page.

B4(1,l+1) à B4(NDSM,l+1) puis
B4(1,l+2) à B4(NDSM,l+2) puis
....
B4(1,) à B4(NDSM,).

pour l = NDL(B3(i)+1) et = NDL(B3(i+1)+1) où NDL est le nombre de degrés de liberté par noeuds.

Outils associés

Ecriture et lecture d'une SD B

Une SD, résidant en mémoire centrale, est écrite en M.S. sur fichier d'accès séquentiel ou direct.

Cette SD est de catégorie 2, seuls ses 4 premiers tableaux ainsi que les éventuels tableaux associés (décrits dans son tableau B1) sont lus (module SDLECT) ou écrits (module SDECRI) :

Impression d'une SD B

Le contenu (total ou partiel) d'une SD B peut être imprimé en utilisant les modules suivants :

      SUBROUTINE IMB(M,NFB,NIB,IMPRE)
C BUT : IMRESSION DES TABLEAUX DE LA SD B, CROISSANTE AVEC IMPRE
C ---   FICHIER NFB (OU MC SI 0), NIVEAU NIB

      SUBROUTINE IMBND0(M,XM,DM,NFMAIL,NIMAIL,NFB,NIB,IMPR)
C BUT : IMPRIMER LE CONTENU D'UNE SD B (CAS ND = 0)
C ---   (VOIR IMB SI ND DIFFERENT DE 0) (NDSM = 1 !!!)

      SUBROUTINE INFOBB(M,IOPT,TYPESD,NIVEAU,TAB2,TAB3,TAB4,DTAB4,
     +                  NUMREC)
C BUT : DONNER DES INFORMATIONS SUR UNE SD B

Les préprocesseurs IMAGXX et INFOXX permettent l'appel conversationnel de IMB, IMBND0 et INFOBB respectivement.

 
      SUBROUTINE PRINTB(M,NFB,NIB,NFTYNO,NITYNO,TSIFO,IND1,ITAB,IND2,
     +              NFNDL1,NINDL1,IMPR)
C BUT : IMPRESSION DE LA SD B  AVEC DESCRIPTION DES TYPE DE NOEUDS

Ce module utilise la SD TYNO que l'on peut créer en utilisant le module COTYNO (cf. la SD TYNO).

Modules de création et de manipulation d'une SD B

La SD B est généralement le résultat d'un calcul effectué par tel ou tel module (assemblage d'un second membre, solution d'un système, ...) ; elle peut aussi, dans certains cas, être construite à la main (par exemple pour donner la solution initiale d'un problème transitoire).

Création à la main :

      SUBROUTINE COSDB(M,NVEC,U,V,LUV,ND,NFB,NIB,NTAB)
C BUT : CREER UNE SD B A PARTIR DE UN OU DEUX VECTEURS

      SUBROUTINE COSNOB(M,XM,NFNOPO,NINOPO,NVEC,U0,U1,DU0,DU1,ND,
     +                  NFB,NIB,NTAB,FONINT,VALCLR,VALCLD)
C BUT : CREER UNE SD B A PARTIR DE NOPO ET D'UNE FONCTION
C ---   (MEME BUT QUE COSDB)
C U(I) ( V(I) ) = FONCTION(X(I),Y(I),Z(I)) AU POINT I DE LA SD NOPO

      SUBROUTINE COSMCB (M,XM,DM,NFMAIL,NIMAIL,NFCOOR,NICOOR,NVEC,
     +   NFBS,NIBS,NTAB,FONINT,VALCLR,VALCLD,U0,U1,DU0,DU1)
C BUT : VOIR COSNOB, ICI ND = 0 EST POSSIBLE

Le préprocesseur COSDXX permet l'appel conversationnel de ces modules.

Assemblage de tableaux élémentaires :

      SUBROUTINE ASEMBV(M,NOT,NDSM,NCODSB,NFTAE,NITAE,NFNDL1,NINDL1,
     +                  NFB,NIB,NTB)
C BUT : ASSEMBLAGE DES SECONDS MEMBRES
C ---   REELS  SIMPLE OU DOUBLE PRECISION COMPLEXE SIMPLE PRECISION
C       TOUS LES TABLEAUX RESIDENT SIMULTANEMENT EN M.C.

      SUBROUTINE ASMBMS(M,NOT,NDSM,NCODBB,NFTAE,NITAE,NFNDL1,NINDL1,
     +                  NFB,NIB,NTB)
C BUT : ASSEMBLAGE  DES SECONDS MEMBRES
C ---               REELS  SIMPLE OU DOUBLE PRECISION
C                   COMPLEXE SIMPLE PRECISION
C       LA SDS B RESIDE SUR MEMOIRE SECONDAIRE A ACCES DIRECT

Le préprocesseur ASSEXX permet l'appel conversationnel de ces modules. Par ailleurs, les préprocesseurs de résolution (par exemple CHOLXX) incluent la phase d'assemblage, par suite, on n'effectuera soi-même cette opération que dans certains cas particuliers (pour dessiner la structure de la matrice ou pour les calculs de valeurs/vecteurs propres d'un problème).

Utilitaires de manipulation d'une SD B

Il existe de nombreux utilitaires permettant de manipuler le contenu d'une SD B.

      SUBROUTINE  BDISEQ(M,INOUT,NFBDI,NIBDI,NFBSEQ,NIBSEQ)
C BUT : TRANSFORMER UN FICHIER SD B DIRECT EN SEQUENTIEL OU INVERSE

      SUBROUTINE MAXDLB(M,XM,DM,NFB,NIB,MAXI,NIMPR)
C BUT : IMPRIMER PAR D.L. LOCAL LES NIMPR NOEUDS DE RESULTAT OPTIMUM
C ---   SELON MAXI

      SUBROUTINE NORME (M,XM,DM,NFMAIL,NIMAIL,NFCOOR,NICOOR,NFB,NIB,
     +   NFBS,NIBS,INDICB,NSM,FONINT,SOLEX,DSOLEX)
C BUT : IMPRIMER LA SOLUTION EXACTE, LA SOLUTION CALCULEE,
C ---   LES DIFFERENCES ABSOLUES ET RELATIVES ENTRE ELLES,
C       LES ERREURS L1,L2 ET MAX

      SUBROUTINE ERREUR(M,NFTAE,NITAE,NFB,NIB,NFNDL1,NINDL1,NFBER,
     +                  NIBER,NTBER,NOT1,NOT2)
C BUT : CALCUL DU VECTEUR ERREUR.

      SUBROUTINE SYMBEL(M,DM,NF1,NI1,NF2,NI2,NDIM,AA,BB,CC,DD)
C BUT :  SYMETRIE TRIDIM PAR RAPPORT A UN PLAN D UNE SD B
C ---    SYMETRIE BIDIM  PAR RAPPORT A UNE DROITE D UNE SD B
C LIMITES :   PROBLEME ELASTIQUE
C -------     LES D.L. SONT DES DEPLACEMENTS

      SUBROUTINE INTERQ(M,XM,NQ,NFB,NIB,PAS,NPAS,T0,TSAV,NFBS,NIBS)
C BUT  : INTERPOLER A L ORDRE NQ LES SOLUTIONS ISSUES DE EVO*GE(RK)

      SUBROUTINE UNIONB(M,XM,NFB1,NIB1,NFB2,NIB2,JOPTIO,NFBS,NIBS)
C BUT  : RECOLLER 2  SDE B EN UNE SEULE SDS B

       SUBROUTINE SDB2MC(M,ALFA1D,NDSM1,NFB1,NIB1,
     +                     ALFA2D,NDSM2,NFB2,NIB2,NDSMS,NFBS,NIBS)
C BUT : FORMER LA SDS BS COMBINAISON LINEAIRE DES SDE B1 ET B2
C ---   BS(J) <= SOMME ALFA1D(I,J) * B1(I) + SOMME ALFA2D(I,J) * B2(I)
C                I=1,...,NDSM1              I=1,...,NDSM2
C       POUR J=1,...,NDSMS

       SUBROUTINE SDB2MS(M,ALFA1D,NDSM1,NFB1,NIB1,
     +                     ALFA2D,NDSM2,NFB2,NIB2,NDSMS,NFBS,NIBS)
C BUT : FORMER LA SDS BS COMBINAISON LINEAIRE DES SDE B1 ET B2
C ---   BS(J) <= SOMME ALFA1D(I,J) * B1(I) + SOMME ALFA2D(I,J) * B2(I)
C                I=1,...,NDSM1              I=1,...,NDSM2
C       POUR J=1,...,NDSMS
C       B1 ET B2 RESIDENT SUR DES FICHIERS A ACCES DIRECT => BS AUSSI


Modulefpreviousupnextcontentsindex[BIG][Normal][small]
Suiv.: 1.4 La SD BDCL Sup.: 1 Description des SD par type Préc.: 1.2 La SD ATRI Index Table des matières