Next: 1.4 DS BDCL
Up: 1 Description of DS by type
Prev: 1.2 DS ATRI
Index
Contents
This DS stores a coefficient array in the form of a vector (right-hand-side (RHS) of a system, solution, etc.).
In practice, matrix B has the form B(NDSM,NTDL) where NDSM designates, for example, the number of load cases of RHS and NTDL is the number of degrees of freedom.
DS B consists of five arrays of predefined order.
This integer array contains 32 variables, consisting of a general description of the job (title, date, name), of DS B (type, level, ...), and indicates the presence or absence of array B1.
the job title in 20 words of 4 characters,
the data of creation in 2 words of 4 characters,
the creator's name in 6 words of 4 characters,
the DS type,
the DS level,
a reserved parameter,
the number of supplementary arrays associated with the DS (they are described in array B1).
This integer array exists if NTACM (see B0) is non-zero. It contains, for each array to be described, 22 variables. In general, there are no associated arrays, except for certain applications where it is necessary to store values in the DS which do not enter its standard definition.
If array B1 exists, it contains sequentially:
This integer array contains 11 values.
the type of array B4,
the number of indices (fixed to 2),
the maximum value of its first index (for example, NDSM, the number of load cases),
the maximum value of its second index (for example, NTDL if B4 only has one page),
the code for splitting array B4 into blocks, with:
the number of blocks,
the number of nodes,
the number of B4 arrays when the DS is on file,
the number of degrees of freedom per node if it is constant, or 0,
the number of degrees of freedom or the maximum value of the second index of array B4 when the NBLOC blocks are considered,
the storage code for array B4 with:
This integer array contains NBLOC+1 variables indicating the segmentation of array B4.
This NTYP type array contains the NDSM*M2 values of each page.
A DS residing in M.M. is written to S.M. on a sequential or direct access file.
This is a category 2 DS where only the first 4 arrays and any associated arrays (described in array B1)are read (module SDLECT) or written (module SDECRI):
READ(NFB) LE,(M(IAB4-1+I),I=1,LE)or
DOUBLE PRECISION B4(LE)
READ(NFB) NBREMO*LE,(B4(I),I=1,LE)
The contents (total or partial) of a DS B can be printed by using the following modules;
SUBROUTINE IMB(M,NFB,NIB,IMPRE) C AIM : PRINT THE ARRAYS OF DS B, INCREASING WITH IMPRE C --- FILE NFB (OR MC IF 0), LEVEL NIB
SUBROUTINE IMBND0(M,XM,DM,NFMAIL,NIMAIL,NFB,NIB,IMPR) C AIM : PRINT THE CONTENTS OF A DS B (CASE ND = 0) C --- (SEE IMB IF ND NOT 0) (NDSM = 1 !!!)
SUBROUTINE INFOBB(M,IOPT,TYPESD,NIVEAU,TAB2,TAB3,TAB4,DTAB4, + NUMREC) C AIM : OUTPUT INFORMATION ON A DS B
Processors IMAGXX and INFOXX calls IMB, IMBND0 and INFOBB, respectively, in a conversational manner.
SUBROUTINE PRINTB(M,NFB,NIB,NFTYNO,NITYNO,TSIFO,IND1,ITAB,IND2, + NFNDL1,NINDL1,IMPR) C AIM : PRINTS DS B WITH A DESCRIPTION OF THE NODE TYPES
This module uses DS TYNO, which can be created using module COTYNO (see DS TYNO).
DS B is generally the result of computation performed by a specific module (assembly of the RHS, solution of the system, ...); it can also, in certain cases, be constructed manually (for example, to input the initial solution of a time-dependent problem).
SUBROUTINE COSDB(M,NVEC,U,V,LUV,ND,NFB,NIB,NTAB) C AIM : CREATE A DS B FROM ONE OR TWO VECTORS
SUBROUTINE COSNOB(M,XM,NFNOPO,NINOPO,NVEC,U0,U1,DU0,DU1,ND, + NFB,NIB,NTAB,FONINT,VALCLR,VALCLD) C AIM : CREATE A DS B FROM A DS NOPO AND A FUNCTION C --- (SAME AIM AS COSDB) C U(I) ( V(I) ) = FUNCTION(X(I),Y(I),Z(I)) AT POINT I OF DS NOPO
SUBROUTINE COSMCB (M,XM,DM,NFMAIL,NIMAIL,NFCOOR,NICOOR,NVEC, + NFBS,NIBS,NTAB,FONINT,VALCLR,VALCLD,U0,U1,DU0,DU1) C AIM : SEE COSNOB, HERE ND = 0 IS POSSIBLE
Preprocessor COSDXX is employed to perform a conversational call of these modules.
SUBROUTINE ASEMBV(M,NOT,NDSM,NCODSB,NFTAE,NITAE,NFNDL1,NINDL1, + NFB,NIB,NTB) C AIM : ASSEMBLY OF THE RHS C --- REAL SINGLE OR DOUBLE PRECISION COMPLEX SINGLE PRECISION C ALL THE ARRAYS RESIDE SIMULTANEOUSLY IN M.M.
SUBROUTINE ASMBMS(M,NOT,NDSM,NCODBB,NFTAE,NITAE,NFNDL1, + NINDL1,NFB,NIB,NTB) C AIM : ASSEMBLY OF THE RHS C --- REAL SINGLE OR DOUBLE PRECISION C COMPLEX SINGLE PRECISION C THE ODS B RESIDES IN S.M. WITH DIRECT ACCESS
Preprocessor ASSEXX is employed to call these modules in a conversational manner. Furthermore, the solution preprocessors (for example CHOLXX) includes the assembly phase, consequently, the user only performs this operation him- or herself in some special cases (for example, to plot the matrix structure, or to compute the eigenvalues and eigenvectors of a problem).
There are numerous utilities to manipulate the contents of a DS B.
SUBROUTINE BDISEQ(M,INOUT,NFBDI,NIBDI,NFBSEQ,NIBSEQ) C AIM : TRANSFORM A FILE DS B DIRECT INTO SEQUENTIAL OR INVERSE
SUBROUTINE MAXDLB(M,XM,DM,NFB,NIB,MAXI,NIMPR) C AIM : PRINT THE NIMPR NODES OF OPTIMUM RESULT PER LOCAL D.O.F. C --- ACCORDING TO MAXI
SUBROUTINE NORME (M,XM,DM,NFMAIL,NIMAIL,NFCOOR,NICOOR,NFB,NIB, + NFBS,NIBS,INDICB,NSM,FONINT,SOLEX,DSOLEX) C AIM : IPRINT THE EXACT SOLUTION, CALCULATED SOLUTION, C --- THE ABSOLUTE AND RELATVE DIFFERENCES BETWEEN THEM, C THE L1, L2 AND MAX ERRORS
SUBROUTINE ERREUR(M,NFTAE,NITAE,NFB,NIB,NFNDL1,NINDL1,NFBER, + NIBER,NTBER,NOT1,NOT2) C AIM : CALCULATE THE ERROR VECTOR
SUBROUTINE SYMBEL(M,DM,NF1,NI1,NF2,NI2,NDIM,AA,BB,CC,DD) C AIM : SYMMETRY TRIDIM W.R.T. A PLANE OF A DS B C --- SYMMETRY BIDIM W.R.T. A LINE OF A DS B C LIMITS : ELASTIC PROBLEM C ------- THE D.O.F. ARE DISPLACED
SUBROUTINE INTERQ(M,XM,NQ,NFB,NIB,PAS,NPAS,T0,TSAV,NFBS,NIBS) C AIM : INTERPOLATE THE SOLUTIONS OBTAINED FROM EVO*GE(RK) USING AN ORDER NQ
SUBROUTINE UNIONB(M,XM,NFB1,NIB1,NFB2,NIB2,JOPTIO,NFBS,NIBS) C AIM : GLUE TOGETHER 2 IDS B TO FORM A SINGLE ODS B
SUBROUTINE SDB2MC(M,ALFA1D,NDSM1,NFB1,NIB1, + ALFA2D,NDSM2,NFB2,NIB2,NDSMS,NFBS,NIBS) C AIM : CREATE ODS BS BY LINEARLY COMBINING THE TWO IDS, B1 AND B2 C --- BS(J) <= SUM ALFA1D(I,J) * B1(I) + SUM ALFA2D(I,J) * B2(I) C I=1,...,NDSM1 I=1,...,NDSM2 C FOR J=1,...,NDSMS
SUBROUTINE SDB2MS(M,ALFA1D,NDSM1,NFB1,NIB1, + ALFA2D,NDSM2,NFB2,NIB2,NDSMS,NFBS,NIBS) C AIM : CREATE ODS BS BY LINEARLY COMBINING THE TWO IDS, B1 AND B2 C --- BS(J) <= SUM ALFA1D(I,J) * B1(I) + SUM ALFA2D(I,J) * B2(I) C I=1,...,NDSM1 I=1,...,NDSM2 C FOR J=1,...,NDSMS C B1 AND B2 RESIDE ON DIRECT ACCESS FILES => BS ALSO