This section explains the contents of the full file (jobname.full).
See The Standard Header for Mechanical APDL Binary Files for a description of this set. File number (Item 1) is 4.
*comdeck,fdfull c *** Copyright ANSYS. All Rights Reserved. c *** ansys, inc. c ********** description of full stiffness-mass file ********** character*8 FULLNM parameter (FULLNM='full ') c *** NOTE: if this variable is changed in the future it should be c *** updated in spdefines.h also for symbolic assembly (jrb) integer FULLHDLEN parameter (FULLHDLEN=160) LONGINT fullfpL, fullfp integer fullbk, fullut, wrLdstep, wrSbstep, wrEqiter, x wrOption common /fdfull/ fullfpL, fullbk, fullut, x wrLdstep,wrSbstep,wrEqiter,wrOption equivalence (fullfp,fullfpL) c ********** common variable descriptions *********** co fullfpL file position on file full co fullbk block number for file full co fullut file unit for file full c ********** file format (except for extopt=3,4) ********** c See fddesc for documentation of how binary files are stored. 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 for c details of header contents) c --- i 1 160 .FULL FILE HEADER c c fun04, neqn, nmrow, nmatrx, kan, c wfmax, lenbac, numdof, ntermKl, ntermKh, (10) c lumpm, nmrow, ntermK, keyuns, extopt, c keyse, sclstf, nxrows, ptrSTFl, ptrSTFh, (20) c ncefull, ntermMh, ptrENDl, ptrENDh, ptrIRHSl, c ptrIRHSh, ptrMASl, ptrMASh, ptrDMPl, ptrDMPh, (30) c ptrCEl, ptrCEh, nNodes, ntermMl, ntermDl, c ptrDOFl, ptrDOFh, ptrRHSl, ptrRHSh, ntermDh, (40) c ngMaxNZ, ptrNGPHl, ptrNGPHh, minKdiag, maxKdiag, c minMdiag, maxMdiag, minDdiag, maxDdiag, ngTerml, (50) c ngTermh, ngTermCl, ngTermCh,ptrDIAGKl,ptrDIAGKh, c ptrDIAGMl,ptrDIAGMh,ptrDIAGCl,ptrDIAGCh, ptrSCLKl, (60) c ptrSCLKh, Glbneqn, distKey, ngTermFl, ngTermFh, c GlbnNodes, GlbnVars, GlbfAcCE, 0, GlbfCE, (70) c ptrGmtl, ptrGmth,nceGprime,numA12A11,GnVirtBCs, c ntermGl, ntermGh,ptrDensel,ptrDenseh, nVirtBCs, (80) c ptrVrtBCl,ptrVrtBCh, ptrMRKl, ptrMRKh, ptrKclxl, c ptrKclxh, ntermKCl, ntermKCh,minKCdiag,maxKCdiag, (90) c ngChg, ptrBCl, ptrBCh, ptrPHYSl, ptrPHYSh, c predKey, neqnDist, ptrGVBCl, ptrGVBCh, 0, (100) c localNonlKey, nMastDOF, ptrMDFl, ptrMDFh, GlbnMast, c ptrGMDFl, ptrGMDFh, cmsMeth, cmsMixF, hrmopt, (110) c ActFlag,InActNKey,IANSndCnt,IANRcvCnt,Glblenbac, c ptrActl, ptrActh,ext_nNods, ext_neqn,ext_nmrow, (120) c EqnMtxFlag, krysub, ext_nce, ptrExtNl, ptrExtNh, c ExtSndCnt,ExtRcvCnt,buildGall,nExtSndCE,nExtRcvCE, (130) c ShaSndCnt,ShaRcvCnt, 0, 0, 0, c 0, 0, 0, 0, 0, (140) c 0, 0, 0, 0, 0, c 0, 0, 0, 0, 0, (150) c 0, 0, 0, 0, 0, c 0, 0, 0, 0, 0 (160) c each item in header is described below: c fun04 - negative of the unit number (-4) c NOTE: if fun04 is > 0 it means that c frontal assembly was used (which c is longer documented here) c neqn - number of equations on file c nmrow - number of active DOF (neqn-BC) c nmatrx - number of matrices on file c kan - analysis type c wfmax - maximum row size c lenbac - number of nodes in ANSYS space (this can be different from nNodes when ActFlag is on) c numdof - number of dofs per node c ntermKl,ntermKh - number of terms in Stiffness c matrix c lumpm - lumped mass key c = 0 - default matrix type c = 1 - lumped c ntermK - pre-8.1 this is the number of terms c in Stiffness matrix (otherwise this c value must be 0 and ntermKl,ntermKh c must be used) c keyuns - unsymmetric key c = 0 - no unsymmetric matrices on c file c = 1 - there is at least one c unsymmetric matrix on file c extopt - mode extraction method c = 0 - reduced c = 1 - lumped c = 3 - unsymmetric Lanczos c = 4 - damped Lanczos c = 6 - block Lanczos c = 7 - QRdamped c = 8 - SuperNode c = 9 - PCG Lanczos c keyse - superelement key; set if at least c one superelement c sclstf - maximum absolute stiffness matrix term c nxrows - the maximum rank for this solution c ptrSTFl,h - pointer to Stiffness matrix c ncefull - number of CE+CP equations including acrossCE and inCpuCE c ptrENDl - low part of 64 bit end of file ptr c ptrENDh - high part of 64 bit end of file ptr c ptrIRHSl,h - pointer to imaginary RHS (F) c ptrMASl,h - pointer to Mass matrix c ptrDMPl,h - pointer to Damping matrix c ptrCEl,h - pointer to Gt and g matrices c nNodes - number of nodes considered by assembly (nNodes can be different from lenbac when ActFlag is on) c ntermMl,h - number of terms in Mass matrix c ntermDl,h - number of terms in Damping matrix c ptrDOFl,h - pointer to DOF info c ptrRHSl,h - pointer to RHS (F) c ngMaxNZ - maximum number of nodes per nodal c block in nodal graph structure c ptrNGPHl,h - pointer to vectors needed for c nodal graph structure c minKdiag - minimum absolute stiffness matrix c diagonal term c maxKdiag - maximum absolute stiffness matrix c diagonal term c minMdiag - minimum absolute mass matrix c diagonal term c maxMdiag - maximum absolute mass matrix c diagonal term c minDdiag - minimum absolute damping matrix c diagonal term c maxDdiag - maximum absolute damping matrix c diagonal term c ngTerml,h - total number of nonzeroes in nodal graph c (expanded graph based value, no BC applied) c ngTermCl,h - total number of nonzeroes in nodal graph c (compressed graph based value) c ptrDIAGKl,h - pointer to stiffness matrix DIAGONAL vector c (NOTE: this is a copy of the diagonal c values stored in the full matrix) c ptrDIAGMl,h - pointer to mass matrix DIAGONAL vector c (NOTE: this is a copy of the diagonal c values stored in the full matrix) c ptrDIAGCl,h - pointer to damping matrix DIAGONAL vector c (NOTE: this is a copy of the diagonal c values stored in the full matrix) c ptrSCLKl,h - pointer to stiffness matrix diagonal scaling c vector (may contain all 1.0's when not scaling) c Glbneqn - global number of active DOF (this will match nmrow c unless we are writing distributed "local" FULL files c in Distributed ANSYS c distKey - key denoting whether the FULL file is a single, c global FULL file (0) or multiple, local FULL file (1) c ngTermFl,h - total number of nonzeroes in nodal graph c as passed to the solver (after BC applied) c GlbnNodes - global number of nodes considered by assembly c GlbnVars - global number of equations (will match neqn c unless we are writing distributed "local" FULL files c in Distributed ANSYS c GlbfAcCE - total number of acrossCpu CE (GlbfinalAcCE) c GlbfCE - total number of all the CE (GlbfinalCE) c ptrGmtl,h - pointer to G prime matrix for local nonlinearity c nceGprime - number of CE (or equations) in G prime local nonlinearity c numA12A11 - number of equations in local nonlinear matrix: excluding c equations from G prime c GnVirtBCs - global number of virtual constraints c ntermGl,ntermGh - total number of terms in total local nonlinear c matrix including A12,A11 and G: total sum c ptrDensel,ptrDenseh - dense matrix information in local nonlinear c matrix c nVirtBCs - number of virtual constraints c ptrVrtBCl,ptrVrtBCh - pointer to the virtual constraint DOF data c ptrMRKl,h - pointer to the DOF marker array c ptrKclxl,h - pointer to K complex (the 4th matrix) matrix c full case is: K, M, C, Kcplx: existing at same time c ntermKCl,h - number of terms in Complex Stiffness matrix c minKCdiag - minimum absolute complex stiffness matrix c diagonal term c maxKCdiag - maximum absolute complex stiffness matrix c diagonal term c ngChg - key denoting whether or not the nodal graph written c to this FULL file differs from the previous FULL file c ptrBCl,h - pointer to boundary condition data c ptrPHYSl,h- pointer to the physics marker array c predKey - nonlinear analysis predictor key c neqnDist - number of distributed equations being solved in current domain (DDSP) c ptrGVBCl,h- pointer to the global virtual constraint DOF data c localNonlKey - local nonlinearity speedup key c nMastDOF - number of master DOF for substructuring c ptrMDFl,h - pointer to the master DOF data for substructuring c GlbnMast - global number of master DOF for substructuring c ptrGMDFl,h- pointer to the global master DOF data for substructuring c cmsMeth - CMS method key c = 0 - fixed interface method c = 1 - free interface method c = 3 - residual-flexible free interface method c = 4 - user defined method c cmsMixF - flags mixed interface method derived from c = 1 - free interface method c = 3 - Residual-flexible free interface method c = 0 - default c hrmopt - harmonic analysis type c = 0 Not a harmonic analysis c > 0 Harmonic analysis type c ActFlag - active element logic flag for the two-step method (only assemble and solve active nodes) c - equivalent to actSymbFlag defined in soptcm.inc c - currently, it is used for AM and target element trimming c = 2 - mark active nodes in casiInitialize before assembly due to targets trimming c = 1 - mark active nodes in casiInitialize before assembly due to additive manufacturing c = 0 - default c InActNKey - sum of number of inactive nodes across all domain. c - it is only useful when ActFlag = 2 c = 0 - number of active nodes (nNodes) is equal to original ANSYS nodes (lenbac) c - there is no need to do AllToAll communication for the inactive nodes located on the interfaces between domains c > 0 - number of active nodes (nNodes) is smaller than original ANSYS nodes (lenbac) c - if distributed full file is used, AllToAll communication are required to recover solution from FULL dof space c - back to ANSYS dof space c IANSndCnt - total number of inactive nodes that need to be sent to other domains c - it is only usefull when InActNKey > 0 and distributed full file is used c = 0 - no inactive nodes information in current domain that need to be sent to other domains c > 0 - length of InActNodesSnd array c IANRcvCnt - total number of inactive nodes that need to be received from other domains c - it is only usefull when InActNKey > 0 and distributed full file is used c = 0 - no inactive nodes information in current domain that need to be received to other domains c > 0 - length of InActNodesRcv array c Glblenbac - Global number of nodes in ANSYS space c ptrActl,h - pointer to act nodes to ANSYS nodes mapping array and other supporting mapping vectors. c ext_nNods - nNodes + extra number of nodes needed by local equation based matrix c ext_neqn - neqn on file + extra number of equations needed by local equation based matrix c ext_nmrow - ext_neqn - nBC - number of BC in extra number of equations needed by local equation based matrix c EqnMtxFlag - unused c krysub - key signaling that this .full file was created during the stage of buildling c the subspace for the KRYLOV method in a harmonic or transient analysis c ext_nce - ncefull + extra number of CE/CP from extra number of equations needed by local equation based matrix c ptrExtNl,h - pointer to extra dof mapping array c ExtSndCnt - total number of extra equation that need to be sent to other domains c ExtRcvCnt - total number of extra equation that need to be received from other domains c buildGall - key indicates whether Gbc is saved in full file or not (Gall needs to be built or not): c = 0 - no need to save Gbc in full file since G == Gall c = 1 - need to save Gbc in full file to build Gall, Gall = G + Gbc c nExtSndCE - total number of extra equation (due to acrossCE) that need to be sent to other domains c nExtRcvCE - total number of extra equation (due to acrossCE) that need to be received from other domains c ShaSndCnt - total number of shared equation (interface dof) that need to be sent to other domains c ShaRcvCnt - total number of shared equation (interface dof) that need to be received from other domains c --- i 1 numdof Degrees of freedom per node 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 --- i 1 lenbac Nodal equivalence table. This table equates c the number used for storage to the actual c node number c --- i 1 Glblenbac Global nodal equivalence table. This record c EXISTS ONLY in the full file of the master c domain and ONLY for distributed .full files c c Stiffness Matrix. The next two records are repeated as a group neqn times. c STF i 1 varies Matrix row indices. The last item c corresponds to the diagonal. The c length of this record will vary (actual c length is returned from routine BINRD8) c --- dp/cmp 1 varies Matrix terms c If keyuns=0, this record will contain the c terms before the diagonal. c If keyuns=1, this record will contain the c entire row. c c Load Vector c RHS dp/cmp 1 neqn Load vector terms. c Imaginary part of Load Vector c IRHS dp 1 neqn Imaginary load vector terms. c This record EXISTS ONLY if its pointer in the header c is not zero. c Stiffness matrix diagonal vector c DIAGK dp/cmp 1 neqn diagonal vector data for stiffness matrix. c Stiffness matrix diagonal scaling vector c SCLK dp/cmp 1 ext_neqn diagonal scaling vector for stiffness matrix. c DOF marker array c MRK i 1 neqn marker array flagging various types of DOF c (1=U_EQN, 2=P_EQN, 3=E_EQN, 4=A_EQN). Positive c values mean the DOF belongs to a user-defined node, c negative values mean the DOF belongs to an internal node. c NOTE: if this array does not exist then it is assumed that c all DOFs are U_EQNs for user-defined nodes. c PHYSICS marker array c PHYS i 1 neqn marker array flagging the various types of physics c (1=STRUCTURAL_EQN, 2=THERMAL_EQN, 3=ELECTRICAL_EQN, c 4=MAGNETIC_EQN, 5=FLUID_EQN, 6=DIFFUSION_EQN) c NOTE: if this array does not exist then it is assumed that c all DOFs are STRUCTURAL_EQNs. c DOF information c DOF i 1 ext_nNods Nodal extent vector. Number of DOFs at each node c --- i 1 ext_neqn DOF vector. If negative, this DOF is constrained. c --- i 1 ext_nNods A vector mapping local node number to global node number. c This record EXISTS ONLY for distributed .full files c --- i 1 ext_nNods A vector mapping local node number to the domain who owns it. c This record EXISTS ONLY for distributed .full files c --- i 1 ext_neqn-neqn A vector mapping extended local dof (equation number) to global dof. c This record EXISTS ONLY for distributed .full files. c --- i 1 ext_nNods A vector mapping active node number used in assembly to global active node number. c This record EXISTS ONLY for distributed .full files and actSymbFlag > 1. c act nodes to ANSYS nodes mapping array (this record only exist when actSymbFlag > 1) c --- i 1 ext_nNods A vector mapping active local node number used in assembly to ANSYS local node number. c This record EXISTS ONLY when distKey = 1 or numCPU = 1 c --- i 1 GlbnNodes A vector mapping active global node number used in assembly to ANSYS global node number. c This record EXISTS ONLY when distKey = 0 and numCPU > 1 c --- i 1 numCPU A vector (InActNumNodesSnd) giving the number of inactive nodes c that needs to be sent to each domain c This record EXISTS ONLY for distributed .full files and InActNKey > 0 c --- i 1 numCPU A vector (InActNumNodesRcv) giving the number of inactive nodes c that needs to be received from each domain c This record EXISTS ONLY for distributed .full files and InActNKey > 0 c --- i 1 IANSndCnt A vector (InActNodesSnd) giving local internal node number that needs to be c sent to other domains. c This record EXISTS ONLY when IANSndCnt > 0 c --- i 1 IANRcvCnt A vector (InActNodesRcv) giving local internal node number that needs to be c received from other domains. c This record EXISTS ONLY when IANRcvdCnt > 0 c extended equations mapping array (this record only exist when distKey == 1) c --- i 1 numCPU A vector (extend_neqns_snd) giving the number of equations (dofs) c that needs to be sent to each domain as these domains' extended nodal information. c This record EXISTS ONLY for distributed .full files. c --- i 1 numCPU A vector (extend_neqns_rcv) giving the number of equations (dofs) c that needs to be received from each domain c This record EXISTS ONLY for distributed .full files. c --- i 1 ExtSndCnt A vector (extend_eqn_snd) giving local equation number that needs to be c sent to other domains. c This record EXISTS ONLY when ExtSndCnt > 0 c --- i 1 ExtRcvCnt A vector (extend_eqn_rcv) giving local equation number that needs to be c received from other domains. c This record EXISTS ONLY when ExtRcvCnt > 0 c extended equations (due to acrossCE) mapping array (this record only exist when distKey == 1 && GlbfinalAcCE > 0) c --- i 1 numCPU A vector (extend_neqns_fromCE_snd) giving the number of equations (dofs) c that needs to be sent to each domain as these domains' extended nodal information. c This record EXISTS ONLY for distributed .full files and GlbfinalAcCE > 0. c --- i 1 numCPU A vector (extend_neqns_fromCE_rcv) giving the number of equations (dofs) c that needs to be received from each domain c This record EXISTS ONLY for distributed .full files and GlbfinalAcCE > 0. c --- i 1 nExtSndCE A vector (extend_eqn_fromCE_snd) giving local equation number that needs to be c sent to other domains. c This record EXISTS ONLY when nExtSndCE > 0 c --- i 1 nExtRcvCE A vector (extend_eqn_fromCE_rcv) giving local equation number that needs to be c received from other domains. c This record EXISTS ONLY when nExtRcvCE > 0 c shared equations (interface dof) mapping array (this record only exist when distKey == 1) c --- i 1 numCPU A vector (shared_neqns_snd) giving the number of equations (dofs) c that needs to be sent to each domain as these domains' shared nodal information. c This record EXISTS ONLY for distributed .full files. c --- i 1 numCPU A vector (shared_neqns_rcv) giving the number of equations (dofs) c that needs to be received from each domain c This record EXISTS ONLY for distributed .full files. c --- i 1 ShaSndCnt A vector (shared_eqn_snd) giving local equation number that needs to be c sent to other domains. c This record EXISTS ONLY when ExtSndCnt > 0 c --- i 1 ShaRcvCnt A vector (shared_eqn_rcv) giving local equation number that needs to be c received from other domains. c This record EXISTS ONLY when ExtRcvCnt > 0 c BC information c BC i 1 neqn DOFs with imposed values. c --- dp/cmp 1 varies Imposed values. c Mass Matrix. c if lumpm = 0: c The next two records are repeated as a group neqn times. c MAS i 1 varies Matrix row indices. The last item c corresponds to the diagonal. The c length of this record will vary (actual c length is returned from routine BINRD8) c --- dp 1 varies Matrix terms. c if lumpm = 1: c --- dp 1 neqn Matrix diagonals. c Mass matrix diagonal vector c DIAGM dp 1 neqn diagonal vector data for mass matrix. c Damping Matrix. The next two records are repeated as a group neqn times. c DMP i 1 varies Matrix row indices. The last item c corresponds to the diagonal. The c length of this record will vary (actual c length is returned from routine BINRD8) c --- dp 1 varies Matrix terms. c Damping matrix diagonal vector c DIAGC dp 1 neqn diagonal vector data for damping matrix. c K complex Matrix. The next two records are repeated as a group neqn times. c KC i 1 varies Matrix row indices. The last item c corresponds to the diagonal. The c length of this record will vary (actual c length is returned from routine BINRD8) c --- dp 1 varies Matrix terms. c Nodal graph vectors c NGPH i 1 nNodes number of nonzeroes for each node. c Repeat for each node c i 1 varies Index vector. Node number in the vector is global when c model has across CE c G matrix if ncefull > 0. c CE i 1 ext_nce List of dependent DOFs of all CEs. c It EXISTS ONLY if ext_nce>0. The dependent DOF is local c --- dp 1 ncefull g vector (constant terms) of local CEs. This record c EXISTS ONLY if ncefull>0 c --- dp 1 ncefull imaginary g vector (constant terms) of local CEs. This c vector only exists for FULL harmonic analyses (kan=3). c This record EXISTS ONLY if ncefull>0 c --- dp 1 ncefull g vector (constant terms) of local CEs for nonlinear c analysis predictor logic. c This record EXISTS ONLY if ncefull>0 & predKey=1. c Following CE data (G) records EXIST ONLY in the full file of the domain with CEs: c --- i 1 4 Header for local CEs; 1=nRows, 2=nRows, 3=1, 4=0 c --- i 1 nRows Vector of 1's c --- i 1 nRows Number of non-zero terms in each row for one CE c Repeat for each row: c --- i 1 varies Column indices in local equation numbers c --- dp 1 varies Column values c Following CE data (Gbc) records EXIST ONLY if buildGall == 1 in the full file of the domain with CEs: c NOTE: this matrix includes boundary d.o.f. which touch the CEs (for cnvfor.F) c --- i 1 4 Header for Gbc CEs; 1=nRows, 2=nRows, 3=1, 4=0 c --- i 1 nRows Vector of 1's c --- i 1 nRows Number of non-zero terms in each row for a CE from Gbc c Repeat for each row: c --- i 1 varies Column indices in local equation numbers c --- dp 1 varies Column values c Following CE data records EXIST ONLY if n>0 in the full file, where n == ncefull with c SMP and n == GlbfCE with DMP. NOTE: for DMP these records only exist in the .full file c of master domain c --- i 1 n List of dependent DOFs of all CEs. This record EXISTS ONLY c if n>0. And it is ONLY in the full file of the master c domain c Virtual constraint vector c VBC i 1 nVirtBCs marker array (bit 1 set -> constrained DOF for residual vector) c (bit 2 set -> constrained DOF for enforced motion) c (bit 3 set -> eliminated DOF for substructure master DOF) c i 1 nVirtBCs virtual constraint DOFs c GVBC i 1 GnVirtBCs marker array (bit 1 set -> constrained DOF for residual vector) c (bit 2 set -> constrained DOF for enforced motion) c (bit 3 set -> eliminated DOF for substructure master DOF) c this record EXISTS ONLY for models using DMP with across CE c i 1 GnVirtBCs virtual constraint DOFs c this record EXISTS ONLY for models using DMP with across CE c Substructuring master DOF vector c MDF i 1 nMastDOF list of master DOFs for substructuring c GMDF i 1 GlbnMast list of master DOFs for substructuring c this record EXISTS ONLY for models using DMP with across CE c Meaning of K11, K12, and G matrices: c Given c [K]{x} = {F} c subject to the constraints c {x1} = [G]{x2} + {g} c where {x1} are the dependent DOFs, {x2} the independent DOFs c This results in c [K*]{x2} = {F*} c where c [K*] = [G]'[K11][G] + [G]'[K12] + [K21][G] + [K22] c {F*} = [G]'{f1} + {f2} - [G]'[K11]{g} - [K21]{g} c for the complex version of {F*} and {x1}: c [G] is always real c [K11] is complex and we denote it as [K11*] == [K11r,K11i] c [K21] is complex and we denote it as [K21*] == [K21r,K21i] c {g} is complex and we denote it as {g*} == {gr,gi} c [G]'[K11*]{g*} = [G]'[K11r,K11i]*{gr,gi} c = [G]'[K11r*gr - K11i*gi, K11i*gr + K11r*gi] c [K21*]{g*} = [K21r,K21i]*{gr,gi} c = [K21r*gr - K21i*gi, K21i*gr + K21r*gi] c for the complex version of {x1}: c [G] is always real c {x2} is complex and we denote it as {x2*} == {x2r,x2i} c {g} is complex and we denote it as {g*} == {gr,gi} c [G]{x2*} + {g*} = [G]{x2r,x2i} + {gr,gi} c = [G*x2r + gr, G*x2i + gi]