Settings for General Contact Nodes
The General Contact Node
The General Contact node identifies the boundaries of the physics interface that are included in the contact problem. It can control some fundamental settings of its subnodes.
Quadrature Settings
The General Contact node can control the quadrature setting used by all its subnodes. See Quadrature Settings.
Jacobian Contribution
The General Contact node can control the Jacobian contribution for all its subnodes. See Jacobian Contribution.
The Contact Model Node
The Contact Model node is responsible for implementing the contact condition on its selected boundaries using the penalty method. This includes the definition of the contact pressure.
Penalty factor
The penalty factor is one of the most important settings for a contact analysis. See the general discussion on selecting a penalty factor for the penalty method in Penalty Factor. General contact provides many settings to control the magnitude of the penalty factor. If different controls are required for different parts of the model, add multiple Contact Model nodes.
The penalty factor can either be defined using estimates based on the stiffness or mass from the domain material adjacent to the contact boundary. In most cases the stiffness estimate results in a good penalty factor, but for structural dynamics problems that include soft materials, the mass estimate can result in a better penalty factor. In both cases the final value can be tuned by a user defined multiplier.
General contact can add forces on both sides of a mapping. Hence it is important to consider the material properties on both source and destination of the mapping. By default, a harmonic mean is used such that the final penalty stiffness k equals
where ksrc and kdst are stiffness estimates on source and destination sides of the map, respectively. Each estimate can be either from mass of from stiffness. The harmonic mean skews the penalty stiffness toward the softer material if there is a high contrast between source and destination. This is important to avoid instabilities due to for example ill-conditioned matrices. It is also possible to set k equal to the minimum of ksrc and kdst, or to use k = kdst. For a contact mapping between a destination and a source without physics, k = kdst.
Penalty Function
See Penalty Function.
The Damping Node
Contact damping can be added to the contact pressure by adding a Damping (General Contact) node. In structural dynamics in general, and impact in particular, the contact state is not always stable an may shift for a given point between time steps or even iterations. This can cause high-frequency noise in the contact pressure that propagates in to adjacent domains. Adding a damping force can help to stabilize the contact state and thus alleviate some of this noise. However, adding to much damping can have negative effect on the solution and significantly alter the dynamics properties of the contact.
The Friction Node
When adding a Friction (General Contact) node, you can specify a constitutive model (friction model) for the behavior of the tangential contact. This model includes conditions for switching between sticking and sliding, as well as computation of the current friction forces. See Friction Parameters for a discussion o the relevant settings.
A general contact problem can involve the interaction between many different materials where each interaction might require different friction parameters. For such situations, the friction parameters can defined conditionally on the contact mapping using the src2dst operator and relevant information about the mapped boundaries. Some examples include:
The dom variable returns the entity index of the boundary where it is evaluated. Similarly, mean(dom) returns the entity index of the adjacent domain to the boundary where it is evaluated.
The concompid variable returns a unique index for the geometric object to which the boundary belongs.
Create a user defined a variable using Variables nodes under Definitions with a unique definition on different boundaries.
Any of these variables can then be used to create the conditional definition of the interaction property. Examples for the friction coefficient:
if(src2dst_p1(dom)==2 && dom==3 || src2dst_p1(dom)==3 && dom==2, 0.7, 0.3)
if(src2dst_p1(p1.deformable), 0.7, 0.3)
if(src2dst_p1(fricidx)==1 && fricidx==2 || src2dst_p1(fricidx)==2 && fricidx==1, 0.7, 0.3)
where in the last example fricidx is a user defined variable. More elaborate definitions can be set-up by using the nif-operator, or using functions.
The Offset Node
Adding an Offset node makes it possible to assign offset to the selected contact boundaries. The offset is considered on both source and destination of a contact mapping that includes the selected boundaries. See further details in Contact Surface Offset and Adjustment.
The Offset node also allows to modify the search distance defined by a general contact pair on its boundaries. A typical where this might be useful is if the model includes coarsely meshed thin domains stacked on each other in the initial or current configuration. The contact search can for such cases sometimes find unwanted mappings even with the built-on intersection checks of the general contact pair. A remedy that often works is then to use a smaller search distance.