next up previous contents
Next: Determining the matrix structure Up: Program structure. Previous: Applying concentrated forces to   Contents

Contact

Contact is triggered by the keyword card *CONTACT PAIR. It defines a nodal slave surface and a element face master surface. The master surface is triangulated using standard triangulation schemes for the different kind of faces (3-node, 4-node, 6-node or 8-node). This is done in subroutines allocont.f and triangucont.f. This triangulation is a topological one and does not depend on the concrete coordinates. It is performed at the start of nonlingeo.c. The resulting triangles are stored in field koncont: for triangle i the locations koncont(1..3,i) contain the nodes belonging to the triangle, koncont(4,i) contains the element face to which the triangle belongs. The element face is characterized by a code consisting of 10*(element number)+face number. So the code for face 4 of element 33 is 334.

In each iteration the topological information of the triangle is complemented by geometrical information consisting of the center of gravity (in field cg) and the equations of the triangle plane and the planes perpendicular to the triangle and containing its edges. For triangle i the coordinates of the center of gravity are stored in cg(1..3,i). The coefficients of the equation of the plane orthogonal to the triangle and containing the first edge are stored in straight(1..4,i). The first edge is defined as the edge through nodes koncont(1,i) and koncont(2,i). Similar for edge 2 (straight(5..8,i)) and edge 3 (straight(9..12,i)). The coefficients of the triangle plane are stored in straight(13..16,i). The geometrical information is calculated in routines updatecont.f and straighteq3d.f.

Subsequently, contact spring elements are generated (routine gencontelem.f). To this end, each node belonging to the dependent contact slave surface is treated seperately. To determine the master surface the node interacts with, 10 triangles belonging to the triangulation of the corresponding master surface are identified, such that their centers of gravity are closest to the dependent node. Then, by use of the equations of the planes orthogonal to the triangles (field straight), a check is performed whether the ortogonal projection of the dependent node lies within one of these independent triangles (starting with the one whose center of gravity is closest). If such a triangle is found, a contact spring element is generated consisting of the dependent node and the independent surface the triangle belongs to. If not, no contact spring element is generated for this dependent node and the next node is treated. The sole purpose of the triangulation of the master surface is the fast identification of the independent face a dependent node interacts with.

The stiffness matrix of the contact spring elements is calculated in contactspringstiff.f, called by mafillsm.f. In order to determine the stiffness matrix the local coordinates of the projection of the dependent node onto the independent surface are needed. This is performed in attach.f. Use is made of a cascaded regular grid to determine the location within the independent surface which is closest to the dependent node. The local coordinates are needed to determine the shape functions and their derivatives. The contact force is determined in contactspringforc.f, called by results.f. Here too, routine attach.f is called.

Since the geometrical information is recalculated in every iteration, large deformations are taken into account.

The material properties of the contact spring, defined by means of the *SURFACE INTERACTION and *SURFACE BEHAVIOR card, are stored in the same fields as the *MATERIAL and *ELASTIC,TYPE=ISOTROPIC card.


next up previous contents
Next: Determining the matrix structure Up: Program structure. Previous: Applying concentrated forces to   Contents
guido dhondt 2010-02-21