ProductsAbaqus/Standard Overpenetration constraintThis routine must determine if a point on the slave surface has penetrated the rigid surface and define the local surface geometry. If the deforming and rigid surfaces are in contact at this point, Abaqus/Standard will impose a constraint at the point to prevent overpenetration. The local surface geometry must be defined to provide the necessary orientation for the constraint equations and friction directions and to allow Abaqus/Standard to compute the rate of change of these equations as the point moves around on the surface—the “tangent stiffness matrix” for the surface in the Newton algorithm. For the purpose of these calculations, it is best to define a smooth surface. If the surface is defined in a discontinuous manner, convergence may be adversely affected. Calculations to be performedEach time RSURFU is called, Abaqus/Standard gives the current position of point A on the surface of the deforming structure, ; the current position of the rigid body reference point, ; the total displacements of both of these points, and ; and the total rotation of the rigid body reference point, . The routine should perform the following calculations:
Defining the local surface geometryThere are two scenarios under which it is mandatory that the routine define the local surface geometry: if A has penetrated the surface— if the surface behavior is truly rigid, or h is greater than the maximum overclosure value specified for modified surface behavior using either contact controls (see Adjusting contact controls in Abaqus/Standard) or a modified pressure-overclosure relationship (see Contact pressure-overclosure relationships)—and if A was in contact at the beginning of the increment, in which case the flag LCLOSE=1 (see the variable list for the definition of LCLOSE). The variable LCLOSE is not relevant for the surface-to-surface contact formulation and is always passed in as 0. The routine can be coded so that local surface geometry definitions are always provided regardless of the scenario. The local surface geometry is specified by two orthogonal tangents to the rigid surface at A′, as well as the rates of change of the outward pointing normal at A′, , with respect to local surface coordinates that are distance measuring along the tangents, and (see Figure 1). Figure 1. Local geometry on a rigid surface.
The tangents to the surface at A′ must be defined so that their positive, right-handed cross product is the outward normal to the surface. For two-dimensional cases Abaqus/Standard assumes that the second tangent is (0, 0, −1), so that when you give the direction cosines of the first tangent as (, , 0), the outward normal will be (, , 0). The rates of change of the normal with respect to and are required to define the local curvature of the surface. User subroutine interfaceSUBROUTINE RSURFU(H,P,TGT,DNDS,X,TIME,U,CINAME,SLNAME, 1 MSNAME,NOEL,NODE,LCLOSE) C INCLUDE 'ABA_PARAM.INC' C CHARACTER*80 CINAME,SLNAME,MSNAME C DIMENSION P(3),TGT(3,2),DNDS(3,2),X(3,3),TIME(2),U(6,2) user coding to define H, P, TGT, and DNDS RETURN END Variables to be defined
Variables passed in for information
Example: Rigid punchThe input files for the following examples can be found in RSURFU. The following discussion pertains only to the node-to-surface contact formulation. Consider the punch shown in Figure 2. Figure 2. Cross-section of a rigid punch.
It consists of a spherical head of radius a, smoothly merging into a conical section with cone angle . The center of the sphere lies on the z-axis at Q. We assume that the punch is being driven down the z-axis by a prescribed displacement at the rigid body reference node defined as a boundary condition. (This same surface could be defined directly as a three-dimensional surface of revolution, as described in Analytical rigid surface definition. We define it here in RSURFU as an illustration.) A point (slave node) on the surface of the deforming body will be associated with the spherical head or with the conical part of the punch, depending on whether it lies above or below the cone that passes through Q and the circle of intersection of the sphere and cone. Thus, define in the three-dimensional case or in the axisymmetric case. Then, if , the point is associated with the spherical surface. Otherwise, it is associated with the cone (both cases are indicated in Figure 2). Consider first the axisymmetric case. Then, for (the sphere) the overclosure is where The position of the point A′ on the rigid surface is (, , 0), where The tangent to the rigid surface at A′ is The positive direction for must be chosen so that the normal satisfies the right-hand rule with respect to and and points out of the rigid body. Also, , so that For (the conical surface) the clearance is and the position of the point A′ on the rigid surface is The surface tangent is and there is no change in with position, so that The routine can then be coded as follows: SUBROUTINE RSURFU(H,P,TGT,DNDS,X,TIME,U,CINAME,SLNAME, 1 MSNAME,NOEL,NODE,LCLOSE) C INCLUDE 'ABA_PARAM.INC' C CHARACTER*80 CINAME,SLNAME,MSNAME DIMENSION P(3),TGT(3,2),DNDS(3,2),X(3,2),TIME(2),U(6,2) C C DEFINE THE FOLLOWING QUANTITIES: C A = RADIUS 'A' OF THE SPHERICAL HEAD C SINA = SINE (CONE ANGLE ALPHA) C COSA = COSINE (CONE ANGLE ALPHA) C Z0 = ORIGINAL 'Z' COORDINATE OF POINT 'Q' C A=5.0 SINA=0.5 COSA=0.86602 Z0=6.0 ZQ=Z0 + U(2,2) C C TEST FOR SEGMENT C IF(X(1,1)*SINA/COSA.LT.ZQ-X(2,1))THEN C C SPHERE C B=SQRT(X(1,1)**2 + (X(2,1)-ZQ)**2) H=A-B COSB=X(1,1)/B SINB=(ZQ-X(2,1))/B P(1)=A*COSB P(2)=ZQ-A*SINB TGT(1,1)=-SINB TGT(2,1)=-COSB DNDS(1,1)=-SINB/A DNDS(2,1)=-COSB/A ELSE C CONE H=-X(1,1)*COSA+(X(2,1)-ZQ)*SINA+A P(1)=X(1,1) + H*COSA P(2)=X(2,1)- H*SINA TGT(1,1)=-SINA TGT(2,1)=-COSA DNDS(1,1)=0. DNDS(2,1)=0. END IF RETURN END The above case can be directly extended to three dimensions. For this purpose we assume that the radial axis, r, is in the global (x–y) plane, so that For (the sphere), the overclosure is , where again The point A′ on the rigid surface is (, , ), where For , is not defined uniquely; in that case we arbitrarily choose . We now need two tangents to the surface. The tangent used in the axisymmetric case is now and the orthogonal tangent is Again, the positive directions of and are chosen so that defines an outward normal to the surface. The distance measures on the surface are so that For the conical surface ( ), the surface separation is The point A′ on the rigid surface is and the surface tangents are There is no change of with respect to , and, in this case , where so that The routine can then be coded as follows: SUBROUTINE RSURFU(H,P,TGT,DNDS,X,TIME,U,CINAME,SLNAME, 1 MSNAME,NOEL,NODE,LCLOSE) C INCLUDE 'ABA_PARAM.INC' C CHARACTER*80 CINAME,SLNAME,MSNAME DIMENSION P(3), TGT(3,2),DNDS(3,2), X(3,2), TIME(2), U(6,2) C C DEFINE THE FOLLOWING QUANTITIES: C A = RADIUS 'A' OF THE SPHERICAL HEAD C SINA = SINE (CONE ANGLE ALPHA) C COSA = COSINE (CONE ANGLE ALPHA) C Z0 = ORIGINAL 'Z' COORDINATE OF POINT 'Q' C A=5.0 SINA=0.5 COSA=0.86603 Z0=5.0 ZQ= Z0 + U(3,2) C C TEST FOR SEGMENT C R = SQRT(X(1,1)*X(1,1)+X(2,1)*X(2,1)) IF(R .GT. 0.0) THEN COSG = X(1,1)/R SING = X(2,1)/R ELSE COSG = 1.0 SING = 0.0 END IF IF(R*SINA/COSA .LT. ZQ -X(3,1)) THEN C C SPHERE C B=SQRT(R*R+(X(3,1)-ZQ)**2) H=A-B COSB=R/B SINB=(ZQ-X(3,1))/B P(1)=A*COSB*COSG P(2)=A*COSB*SING P(3)=ZQ-A*SINB TGT(1,1)=-SINB*COSG TGT(2,1)=-SINB*SING TGT(3,1)=-COSB TGT(1,2)=-SING TGT(2,2)=COSG TGT(3,2)=0.0 DNDS(1,1)=-SINB*COSG/A DNDS(2,1)=-SINB*SING/A DNDS(3,1)=-COSB/A DNDS(1,2)=-SING/A DNDS(2,2)=COSG/A DNDS(3,2)=0.0 ELSE C C CONE C H=-R*COSA+(X(3,1)-ZQ)*SINA+A P(1)=(R+H*COSA)*COSG P(2)=(R+H*COSA)*SING P(3)=X(3,1)-H*SINA TGT(1,1)=-SINA*COSG TGT(2,1)=-SINA*SING TGT(3,1)=-COSA TGT(1,2)=-SING TGT(2,2)=COSG TGT(3,2)=0.0 DNDS(1,1)=0.0 DNDS(2,1)=0.0 DNDS(3,1)=0.0 C=R+H*COSA DNDS(1,2)=-COSA*SING/C DNDS(2,2)=COSA*COSG/C DNDS(3,2)=0.0 END IF C RETURN END |