This section explains the contents of the substructure matrices file (jobname.sub).
See The Standard Header for Mechanical APDL Binary Files for a description of this set. File number (Item 1) is 8.
*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)