1.7. Description of the Substructure Matrices File

This section explains the contents of the substructure matrices file (jobname.sub).

1.7.1. Standard Mechanical APDL File Header

See The Standard Header for Mechanical APDL Binary Files for a description of this set. File number (Item 1) is 8.

1.7.2. SUB File Format

*comdeck,fdsub
c
c *** Copyright ANSYS.  All Rights Reserved.
c *** ansys, inc

c     **********  description of substructure matrix file  **********
      character*8  SUBNM
      parameter  (SUBNM='sub    ')

      integer        SUBHDLEN
      parameter     (SUBHDLEN=80)

      LONGINT        subfpL, lenSubL
      integer        subbk, subut
      common /fdsub/ subfpL, lenSubL, subbk, subut

c  write:  matout
c  read:

c   ********** common variable descriptions ***********
co  subfpL      file position on file sub
co  subbk       block number for file sub
co  subut       file unit for file sub
co  lenSubL     length of sub file (saved for slvdta.F)

c   See fddesc for documentation of how binary files are stored.
c
c     **********  file format  **********

c     recid tells the identifier for this record.  Not all records will have
c          identifiers -- they are only indicated for those records whose
c          record pointers are stored in the second file header.

c     type tells what kind of information is stored in this record:
c          i - integer
c          dp - double precision
c          cmp - complex

c     nrec tells how many records of this description are found here

c     lrec tells how long the records are (how many items are stored)

c recid    type    nrec    lrec     contents

c  ---      i       1      100      standard ANSYS file header (see binhed8
c                                   for details of header contents)

c  HED      i       1       80      .SUB FILE HEADER  (FULL MATRICES)
c
c                                     8,  nmrow,  nmatrx,  nedge, numdof,
c                                  maxn,  wfmax,  lenbac,   nnod, kunsym,  10
c                                  kstf,  kmass,   kdamp,    kss,  nvect,
c                                nWorkL,  lenU1,  sesort, lenlst,ptrLodL,  20
c                                ntrans, ptrMtx,  ptrXFM, ptrHED,  name1,
c                                 name2,  ptrCG,       0,  name3,  name4,  30
c                                ptrDOF, ptrDST,  ptrBAC, ptrTIT, ptrNOD,
c                                ptrXYZ, ptrEDG,  ptrGDF, thsubs, ptrPOS,  40
c                                ptrORG, stfmax, ptrLodH, nmodes, keydim,
c                             cmsMethod,  name5,   name6,  name7,  name8,  50
c                               nvnodes,ptrCTXM,  nWorkH,      0,ptrTVAL,
c                              gyroDamp,kstress,nStartVN,ptrEndL,ptrEndH,  60
c                           ptrimsSEdat,ptrdmsSEdat,units,ptrmsSEmap, 0,
c                                     0,      0,       0,      0,      0,  70
c                                     0,      0,       0,      0,      0,
c                                     0,      0,       0,      0,      0   80


c  HED      i       1       80      .SUB FILE HEADER  (SPARSE MATRICES)
c
c                                     9,   nEqn, nmatrx,  ndege, numdof,
c                                  maxn,  wfmax, lenbac,   nnod, kunsym,  10
c                                  kstf,  kmass,  kdamp,       ,  nvect,
c                                nTermL,       ,       , lenlst,ptrLodL,  20
c                                ntrans,ptrMtxL, ptrXFM, ptrHED,  name1,
c                                 name2,  ptrCG,       ,  name3,  name4,  30
c                                ptrDOF,       , ptrBAC, ptrTIT, ptrNOD,
c                                ptrXYZ, ptrEdg, ptrGDF, thsubs,       ,  40
c                                      , stfmax,ptrLodH,       , keydim,
c                                      ,  name5,  name6,  name7,  name8,  50
c                                      ,ptrCTXM, nTermH,ptrMtxH,ptrColL,
c                               ptrColH,ptrCofL,ptrCofH,ptrEndL,ptrEndH,  60
c                           ptrimsSEdat,ptrdmsSEdat,units,ptrmsSEmap, 0,
c                                      ,       ,       ,       ,       ,
c                                      ,       ,       ,       ,       ,  70
c                                      ,       ,       ,       ,       ,
c                                      ,       ,       ,       ,          80

c                               each item in header is described below:

c                                fun08  - unit number (full sub file is 8)
c                                         (sparse substructure file is 9)
c                                nmrow  - number of rows in matrices (also
c                                         number of dofs in substructure)
c                                nmatrx - number of matrices on file
c                                nedge  - number of edges for outline
c                                numdof - number of dofs per node
c                                maxn   - maximum node number of complete
c                                         model presently in database
c                                wfmax  - maximum wavefront of substruct.
c                                         during generation pass
c                                lenbac - number of nodes defining
c                                         substructure during the
c                                         generation pass
c                                nnod   - number of unique nodes in the
c                                         substructure having DOFs, and
c                                         which define this substructure
c                                         during the use pass.  Also, the
c                                         number of nodes having master
c                                         DOFs.
c                                kunsym - unsymmetric matrix key
c                                         = 0 - symmetric
c                                         = 1 - unsymmetric
c                                kstf   - stiffness matrix present key
c                                         = 0 - matrix is not on file
c                                         = 1 - matrix is on file
c                                kmass  - mass matrix present key
c                                         = 0 - matrix is not on file
c                                         = 1 - matrix is on file
c                                         =-1 - Lumped mass vestor (Sparse only)
c                                kdamp  - damping matrix present key
c                                         = 0 - matrix is not on file
c                                         = 1 - matrix is on file
c                                kss    - stress stiffening matrx present
c                                         = 0 - matrix is not on file
c                                         = 1 - matrix is on file
c                                nvect  - number of load vectors
c                                         (at least 1 is required)
c                                nWorkL,H  - BCS workspace length (only for
c                                            bacsub)
c                                nTermL,H  - Number of terms in sparse matrix
c                                lenU1  - length of intermediate transformation
c                                         vector
c                                sesort - DOF set sort key
c                                         = 0 - numbers are not sorted
c                                         = 1 - numbers are sorted in
c                                               ascending order
c                                lenlst - maximum length of DOF set for
c                                         this substructure (maxn*numdof)
c                                ptrLod - pointer to the start of the load
c                                         vectors (see also ptrLodh)
c                                ntrans - transformed key
c                                         = 0 - substructure has not been
c                                               transformed
c                                         > 0 - substructure copied
c                                               from another substructure,
c                                               via either SESSYM or SETRAN
c                                ptrMtxL,H - pointer to the start of the
c                                            substructure matrices (iDiagL for
c                                            sparse matrices)
c                                ptrXFM - pointer to the substructure
c                                         transformations
c                                ptrHED - pointer to the SUB file header
c                                name1  - first four characters of the
c                                         substructure file name, in
c                                         integer form
c                                name2  - second four characters of the
c                                         substructure file name, in
c                                         integer form
c                                name3  - third four characters of the
c                                         substructure file name, in
c                                         integer form
c                                name4  - fourth four characters of the
c                                         substructure file name, in
c                                         integer form
c                                ptrDOF - pointer to the DOF/node list
c                                ptrDST - pointer to the local DOF set
c                                ptrBAC - pointer to the nodes comprising
c                                         the substructure
c                                ptrTIT - pointer to the title
c                                ptrNOD - pointer to the unique nodes
c                                         defining the substructure
c                                ptrXYZ - pointer to the coordinates of the
c                                         unique nodes
c                                ptrEDG - pointer to the substructure edges
c                                ptrGDF - pointer to the global DOF set
c                                ptrCG  - pointer to the element mass information
c                                thsubs - element type key
c                                         = 0 - structural
c                                         = 1 - 1st order non-structural
c                                               (generally from thermal)
c                                         = 2 - 2nd order non-structural
c                                ptrPOS - pointer to the sorted substructure
c                                         DOF set to the original
c                                ptrORG - pointer to the DOF set of the model
c                                         during the generation pass
c                                stfmax - maximum diagonal stiffness term
c                                         (packed into an integer)
c                                ptrLodh- High 32 bits of 64 bit pointer
c                                nmodes - number of modes used to generate
c                                         CMS s.e.
c                                keydim - dimensionality key
c                                         = 1 - axisymmetric
c                                         = 2 - 2-D
c                                         = 3 - 3-D
c                             cmsMethod - component mode synthesis method
c                                name5  - fifth four characters of the
c                                         substructure file name, in integer
c                                         form
c                                name6  - sixth four characters of the
c                                         substructure file name, in integer
c                                         form
c                                name7  - seventh four characters of the
c                                         substructure file name, in integer
c                                         form
c                                name8  - eighth four characters of the
c                                         substructure file name, in integer
c                                         form
c                               nvnodes - number of virtual nodes that contain
c                                         the modal coordinates
c                              gyroDamp - gyroscopic damping matrix key
c                                         = 0 - damping matrix is
c                                               not skew-symmetric if present
c                                         = 1 - damping matrix is
c                                               skew-symmetric, due to
c                                               gyroscopic effect
c                               kStress - = 1 if modal element results are
c                                         on the .cms file
c                              nStartVN - starting number of the virtual nodes
c                                         if defined with CMSOPT command
c                               ptrCTXM - coordinate transformation
c                             ptrColL,H - pointer to the iCol sparse matrix
c                                           array
c                             ptrCofL,H - pointer to the of the
c                                           sparse matrix Sk(1:nTerm),
c                                           Sm(1:nTermL),Sc(1:nTermL),
c                                           Ss(1:nTermL)  Each matrix is a
c                                           single large record
c                             ptrEndL,H - Next location after end of file
c                           ptrimsSEdat - pointer to integer record for stage data
c                           ptrdmsSEdat - pointer to double precision records for stage data
c                           ptrmsSEmap  - pointer to map of modes for stage data
c                                units  - unit system used
c                                         =-1 - no /UNITS specification
c                                         = 0 - user defined units
c                                         = 1 - SI
c                                         = 2 - CSG
c                                         = 3 - U.S. Customary, using feet
c                                         = 4 - U.S. Customary, using inches
c                                         = 5 - MKS
c                                         = 6 - MPA
c                                         = 7 - uMKS

c                              note: name1/2/3/4/5/6/7/8 are the
c                                    inexc4 representation of the
c                                    32 character filename.
c                                    name1/2/5/6/7/8 will be "0"
c                                    for pre rev 5.2 files - cwa

c   Note: If ntrans > 0, records from position ptrDOF to ptrGDF will be
c         identical to the data for the copied substructure.


c  XFM      dp      1      125   Substructure transformations (5*25 double
c                                precisions). This record has meaning only
c                                if ntrans > 0. You can define up to five
c                                levels of transformations, with 25 variables
c                                in each level.  Up to the first seven
c                                variables are used as follows:
c
c                                If the substructure was transferred (via the
c                                 SETRAN command):
c                                1st variable - 1.0
c                                2nd variable - nodal increment
c                                3rd variable - reference number of
c                                 coordinate system where substructure will
c                                 be transferred
c                                4th variable - reference number of
c                                 coordinate system where substructure is
c                                 presently defined
c                                5th variable - x coordinate increment
c                                6th variable - y coordinate increment
c                                7th variable - z coordinate increment

c                                If the substructure used symmetry (via the
c                                 SESYMM command):
c                                1st variable - 2.0
c                                2nd variable - nodal increment
c                                3rd variable - number of coordinate
c                                 component to be used in operation
c                                 = 1 - x coordinate
c                                 = 2 - y coordinate
c                                 = 3 - z coordinate
c                                4th variable - reference number of
c                                 coordinate system to be used for symmetry
c                                 operation
c  CTXM     dp      1      250   Substructure transformations

c  DOF      i       1     numdof    Degrees of freedom per node  (Global)
c                                    (curdof(i),i=1,numdof)
c                                   DOF reference numbers are:
c    UX  = 1, UY  = 2, UZ  = 3, ROTX= 4, ROTY= 5, ROTZ= 6, AX  = 7, AY  = 8
c    AZ  = 9, VX  =10, VY  =11, VZ  =12, GFV1=13, GFV2=14, GFV3=15, WARP=16
c    CONC=17, HDSP=18, PRES=19, TEMP=20, VOLT=21, MAG =22, ENKE=23, ENDS=24
c    EMF =25, CURR=26, SP01=27, SP02=28, SP03=29, SP04=30, SP05=31, SP06=32

c  DST      i       1     nmrow  This record contains degrees of freedom for
c                                this substructure of the unique nodes, as
c                                used with this substructure, in ascending
c                                order. This index is calculated as
c                                (N-1)*numdof+DOF, where N is the node number
c                                and DOF is the DOF reference number given
c                                above
c                                 (lsort(i),i=1,nmrow)

c  POS      i       1     nmrow  This record stores the positions of the
c                                local DOF set in relation to the generated
c                                DOF set. (lposit(i),i=1,nmrow)

c  ORG      i       1     nmrow  DOF set of the model as defined during the
c                                generation pass. This index is calculated as
c                                (N-1)*NUMDOF+DOF, where N is the position
c                                number of the node in the nodal equivalence
c                                table and DOF is the DOF reference number
c                                given above
c                                 (lorig(i),i=1,nmrow)

c  BAC      i       1     lenbac This group describes nodes that defined the
c                                substructure during the generation pass of
c                                the analysis. Nodal data is stored in arrays
c                                equal to the number of used or referenced
c                                nodes. This table equates the number used
c                                for storage to the actual node number.
c                                 (Back(i),i=1,lenbac)

c  TIT      i       1       20   Substructure title (converted to integers -
c                                see inexc4)

c  NOD      i       1      nnod  This record describes unique nodes defining
c                                the substructure for the use pass of the
c                                analysis.  These are also the nodes having
c                                master degrees of freedom.
c                                 (node(i),i=1,nnod)

c  XYZ     dp     nnod      6    This record describes the coordinates of a
c                                unique node, in the order X, Y, Z, THXY,
c                                THYZ, and THZX.  Nodal order corresponds to
c                                that of the node list given above
c                                 (xyzang(j,i),j=1,6)

c  EDG     dp     nedge     6    This record contains beginning and ending
c                                locations (X1,Y1,Z1,X2,Y2,Z2 coordinates) of
c                                a straight line comprising an edge of the
c                                substructure.

c  GDF    LONG      1     nmrow  This record describes global degrees of
c                                freedom of the unique nodes in ascending
c                                order, as used during the analysis use pass.
c                                This index is calculated as (N-1)*32+DOF,
c                                where N is the node number and DOF is the
c                                DOF reference number given above
c                                 (l(i),i=1,nmrow) (sorted)
c                                (Made LONGINT in rev 14.0)

c  CG      dp       1      49    Are stored consecutively:
c                                - Totmass: total mass
c                                - CGx,CGy,CGz: center of mass (X,Y,Z) with lumped calculation
c                                - mm11,mm22,mm33,mm12,mm23,mm13:
c                                  components of upper triangular inertia matrix (rotational mass) about origin
c                                - MASSTR: translational mass matrix (3*3, row by row) about origin
c                                - MASSROSP: inertia matrix (3*3) about point defined with SPOINT command
c                                - MASSTRRO: coupled translational/rotational mass matrix (3*3) about origin
c                                - CG'x,CG'y,CG'z: center of mass (X,Y,Z) with precise calculation
c                                - MASSROCG': inertia matrix (3*3) about center of mass with precise calculation

c  TVAL    dp       1      31    current time value corresponds to each load step
c                                (substructuring analysis only).
c                                lrec=31 is the default,
c                                but lrec=VAL if /CONFIG,NUMSUBLV,VAL has been issued

c  IMSSE    i       1      17    integer record for stage data (see multiStage.inc):
c                                msNsector,msHindex,msNumoff,
c                                msCECYC(i)(i=1,2),msNodElm(i)(i=1,12)
      
c  DMSSE   dp       1       6    double precision record for stage data (see multiStage.inc):
c                                msBox(i)(i=1,6)

c  MSSEMAP  i       1   nmodes   integer record for stage map of paired modes,
c                                each mode is associated with base or duplicate sector:
c                                   mssemap(i)= 1 ith mode is associated to the base sector
c                                   mssemap(i)=-1 ith mode is associated to the dupl sector

c The substructure matrices are written at this position in the file.  One row
c  of each matrix is written to the file at a time. i.e. the first row of each
c  matrix is written, then the second row of each matrix, etc. this pattern
c  continues until all nmrow rows of each matrix have been written to the file.

c  MAT      dp      1     nmrow   Row of the stiffness matrix, if nmatrx > 0.
c                                  (ak(i,j),i=1,nmrow)
c  ---      dp      1     nmrow   Row of the mass matrix, if nmatrx > 1.
c                                  (am(i,j),i=1,nmrow)
c  ---      dp      1     nmrow   Row of the damping matrix, if nmatrx > 2.
c                                  (ac(i,j),i=1,nmrow)
c  ---      dp      1     nmrow   Row of the stress stiffening matrix, if
c                                 nmatrx > 3.
c                                  (gs(i,j),i=1,nmrow)

c  LOD      dp   nvect    nmrow   This record contains the load vectors.
c                                  (f(i),i=1,nmrow)