ProductsAbaqus/Explicit TerminologyThe use of user subroutine VUINTERACTION requires familiarity with the following terminology. Tracking thicknessFor efficiency, user subroutine VUINTERACTION considers only regions of two surfaces that are likely to be in contact or come into contact in a given increment. This likelihood is defined by a tracking thickness: only portions of surfaces separated by less than the tracking thickness in a given increment are passed into the subroutine; portions of the surfaces with a separation larger than the tracking thickness are ignored for the current increment. Surface thicknesses are accounted for in the separation calculations. Abaqus/Explicit provides an internal default value for the tracking thickness, but a nondefault value can be specified; see Tracking thickness when VUINTER or VUINTERACTION is used. The tracking thickness is passed into VUINTERACTION using the variable rData(4). Proximity pointsA proximity point is a potential point of interaction for you to consider in user subroutine VUINTERACTION. Each proximity point is primarily associated with a slave node or a point along a slave edge; the proximity point also references a corresponding, locally nearest point on the master surface within the tracking thickness. A proximity point exists for each pairing of slave node and proximal master surface point. Therefore, more than one proximity point may reference the same node on the slave surface but different points on the master surface if multiple local minimum distances to the slave node exist on the master surface; this phenomenon commonly occurs near the corners of a master surface. No proximity points exist for a slave node that is separated from the master surface by more than the tracking thickness. A two-dimensional representation for contact between portions of shell surfaces is shown in Figure 1. Figure 1. Four proximity points are associated with three slave nodes in this
surface pairing.
![]() The number of proximity points currently being passed into user subroutine VUINTERACTION is nBlock. The array jSlvUid(nNodSlv,nBlock) gives the slave surface node numbers associated with the proximity points. The variable nNodSlv indicates whether a single slave node (for node-to-face contact) or two slave nodes of an edge (for edge-to-edge contact) are associated with each proximity point. Similarly, the array jMstUid(nNodMst,nBlockAnal) gives the master surface node numbers associated with the proximity points; the nodes can belong to a facet, an edge, or an analytical surface. The variable nNodMst indicates the number of master nodes associated with each proximity point. An Abaqus/Explicit model can be defined in terms of an assembly of part instances (see Assembly definition). In such models a node number is an internally generated node number. If the original node number and part instance name are required, call the utility routine VGETPARTINFO (see Obtaining part information). Local coordinate systemThe array dircos defines the direction cosines of a local coordinate system for each proximity point. The first local direction corresponds to the contact normal direction from the perspective of the slave node. The second and third local directions correspond to two orthogonal tangent directions t1 and t2, which are set as follows:
For the two cases listed above involving analytical surfaces, the local tangential directions will reflect a rotation of the master surface. For the last case (element-based master surface) the tangential directions follow the rotation of the master surface only approximately. The second tangential direction is constructed such that it is perpendicular to the slave normal and the line going from the first to the third node on the master facet. The slave normal, the first tangent, and the second tangent form a right-handed system. Conventions for stress and heat fluxA positive normal stress denotes a pressure directed into the surface (opposite the local normal direction). Positive shear stresses denote shear tractions in the direction of the local surface tangents. A positive flux indicates heat flowing into a surface, and a negative flux denotes heat leaving the surface. Flux must be specified for both surfaces, and they need not be equal and opposite so that effects such as frictional dissipation and differential surface heating can be modeled. User subroutine interfacesubroutine vuinteraction ( C Read/Write - * stress, fluxSlv, fluxMst, * state, sed, C Write only - * sfd, scd, spd, svd, C Read only - * nBlock, nBlockAnal, nBlockEdge, * nNodState, nNodSlv, nNodMst, nDir, * nStates, nProps, nTemp, nFields, * jFlags, rData, * surfInt, surfSlv, surfMst, * jSlvUid, jMstUid, props, * penetration, drDisp, dRot, dircos, stiffDef, conductDef, * coordSlv, coordMst, areaProx, shapeSlv, shapeMst, * tempSlv, tempMst, dTempSlv, dTempMst, * fieldSlv, fieldMst, dFieldSlv, dFieldMst ) C include `vaba_param.inc' C dimension stress(nDir,nBlock), * fluxSlv(nBlock), * fluxMst(nBlock), * state(nStates,nNodState,nBlock), * sed(nBlock), * sfd(nBlock), * scd(nBlock), * spd(nBlock), * svd(nBlock), * jSlvUid(nNodSlv,nBlock), * jMstUid(nNodMst,nBlockAnal), * props(nProps), * penetration(nBlock), * drDisp(nDir,nBlock), * dRot(2,2,nBlock), * stiffDef(nBlock), * conductDef(nBlock), * dircos(nDir,nDir,nBlock), * coordSlv(nDir,nNodSlv,nBlock), * coordMst(nDir,nNodMst,nBlockAnal), * areaProx(nBlock), * shapeSlv(nNodSlv,nBlockEdge), * shapeMst(nNodMst,nBlockAnal), * tempSlv(nBlock), * tempMst(nBlockAnal), * dTempSlv(nBlock), * dTempMst(nBlockAnal), * fieldSlv(nFields,nBlock), * fieldMst(nFields,nBlockAnal) * dFieldSlv(nFields,nBlock), * dFieldMst(nFields,nBlockAnal) C parameter( iKStep = 1, * iKInc = 2, * iLConType = 3, * nFlags = 3 ) C parameter( iTimStep = 1, * iTimGlb = 2, * iDTimCur = 3, * iTrackThic = 4, * nData = 4 ) C dimension jFlags(nFlags), rData(nData) C character*80 surfInt, surfSlv, surfMst C user coding to define stress, and, optionally, fluxSlv, fluxMst, state, sed, sfd, scd, spd, and svd C return end Variables to be defined
Variables that can be updated
Variables passed in for information
|