# 7.23. Contact

This section is referenced in the following other sections

- Simulation Setup: Contact

Table of Contents

- Contact Definition

- Interaction

- Interaction Defaults

- Search Options

- Enforcement

## 7.23.1. Contact Definition

Scope

  Aria Region, Equation System, Explicit Equation System, Root Finder Equation System

Summary

  Contains the commands needed to define contact for an analysis.

Description

  This block command defines a scenario for the contact model. The contact surfaces are defined, the interactions are set, and the type of contact enforcement is defined.

    begin Contact Definition Contact_name

       Contact Surface Surface_name [ Contains List_of_instances...  ]

       Disable Opposed Normal Interaction Culling

       Opposed Normal Threshold Angle {=} Angle

       Output Rule {=} {more verbose | none | summary | verbose}

       Periodicity For surface {=} Rectangular Offset = offset1 offset2[ offset3]

       Periodicity For surface {=} Align_Surface (Destination = destination  | [Invert_Normals = invert_normals])

       Periodicity For surface {=} Cylindrical ([Axis = axis1 axis2[ axis3]]  | [Center = center1 center2[ center3]]  | Angle = angle)

       Periodicity For surface {=} Mapped ([X_Map = x_map]  | [Y_Map = y_map]  | [Z_Map = z_map])

       Restrict Contact To Subdomain Defined By Radius r And Point VecX VecY VecZ

       Skin All Blocks {=} {off | on} [ Exclude Blocks_to_exlude...  ]

       Update Search Every n Steps

       Visualize Contact

       begin Enforcement Enforcement_name
       end

       begin Interaction Interaction_name
       end

       begin Interaction Defaults
       end

       begin Search Options Search_options_name
       end

    end Contact Definition Contact_name

### 7.23.1.1. Line Commands

###### Contact Surface

Syntax

  Contact Surface Surface_name [ Contains List_of_instances… ]

Summary

  Defines a surface made up of a set of surfaces in the mesh file to consider for contact. Specification of an element block implies that block skinning of the element block is to take place. The specific implementation of block skinning depends on the application.

Parameter | Value | Default
--- | --- | ---
Surface_name | string | –

###### Disable Opposed Normal Interaction Culling

Syntax

  Disable Opposed Normal Interaction Culling

Summary

  This line command disables the culling of interactions that do not have opposed normals.

Description

  This is a temporary developer command

###### Opposed Normal Threshold Angle

Syntax

  Opposed Normal Threshold Angle {=} Angle

Summary

  Assign the angle, in degrees, for which surface normals are considered to be opposed.

Description

  Prescribed angle must be greater or equal to 90 degrees.

  Warning

  This option is not recommended for general use but serves as a temporary patch that can be used for some problems.

Parameter | Value | Default
--- | --- | ---
{=} | {= | are | is} | –
Angle | real | –

###### Output Rule

Syntax

  Output Rule {=} {more verbose | none | summary | verbose}

Summary

  Toggle amount of information output from the search.

  NONE

    Nothing will be printed to the screen.

  SUMMARY

    A summary of the calculation will be printed.

  VERBOSE

    A detailed report of the calculation is printed.

  MORE VERBOSE

    A more detailed report of the calculation is printed.

Parameter | Value | Default
--- | --- | ---
{=} | {= | are | is} | –
OutputRule | {more verbose | none | summary | verbose} | –

###### Periodicity

Syntax

  Periodicity For surface {=} Rectangular Offset = offset1 offset2[ offset3]

Summary

  Enables rectangular periodicity where specified surface is translated by {offset_x, offset_y, offset_z} before performing contact search.

Parameter | Value | Default
--- | --- | ---
surface | “string” | –
{=} | {= | are | is} | –
offset | real1 real2[ real3] | –

###### Periodicity

Syntax

  Periodicity For surface {=} Align_Surface (Destination = destination | [Invert_Normals = invert_normals])

Summary

  Enables periodicity where specified surface is translated/rotated so that its centroid/normal align with the destination surface. By default the original face’s normal is aligned to -1*destination normal, but this can be disabled by setting invert_normals to 0.

Parameter | Value | Default
--- | --- | ---
surface | “string” | –
{=} | {= | are | is} | –
destination | “string” | –
invert_normals | integer | –

###### Periodicity

Syntax

  Periodicity For surface {=} Cylindrical ([Axis = axis1 axis2[ axis3]] | [Center = center1 center2[ center3]] | Angle = angle)

Summary

  Enables cylindrical periodicity where specified surface is rotated (angle in degrees) around the given axis before performing contact search.

Parameter | Value | Default
--- | --- | ---
surface | “string” | –
{=} | {= | are | is} | –
axis | real1 real2[ real3] | –
center | real1 real2[ real3] | –
angle | real | –

###### Periodicity

Syntax

  Periodicity For surface {=} Mapped ([X_Map = x_map] | [Y_Map = y_map] | [Z_Map = z_map])

Summary

  Enables arbitrary periodicity where points p on specified surface are mapped via string functions p’=f(p) before performing contact search. Functions that are not specified default to a trivial mapping e.g. y->y

Parameter | Value | Default
--- | --- | ---
surface | “string” | –
{=} | {= | are | is} | –
x_map | “string” | –
y_map | “string” | –
z_map | “string” | –

###### Restrict Contact To Subdomain Defined By Radius

Syntax

  Restrict Contact To Subdomain Defined By Radius r And Point VecX VecY VecZ

Summary

  Restrict contact to the subdomain defined by the radius and the point.

Parameter | Value | Default
--- | --- | ---
r | real | –
VecX | real | –
VecY | real | –
VecZ | real | –

###### Skin All Blocks

Syntax

  Skin All Blocks {=} {off | on} [ Exclude Blocks_to_exlude… ]

Summary

  Informs the contact algorithms to skin all element blocks and then use the resulting surfaces in contact computations.

Parameter | Value | Default
--- | --- | ---
{=} | {= | are | is} | –
Option | {off | on} | –

###### Update Search Every

Syntax

  Update Search Every n Steps

Summary

  Force an updating of the contact search every N steps.

Description

  This command is useful if, for example, Aria is coupled to Adagio and the likelihood is strong that the mesh coordinates have changed significantly. Because contact surfaces may also appear in the definition of boundary conditions the application must selectively apply contact relations and boundary conditions appropriately. These issues are resolved automatically within the application code using the contact surface definitions and internal data masks.

Parameter | Value | Default
--- | --- | ---
n | integer | –

###### Visualize Contact

Syntax

  Visualize Contact

Summary

  Output contact surfaces with facets marked with [0,1] corresponding to what percentage of their IPs where contact is applied.

Description

  Enables output of surfaces where contact is active. Surface facets will be marked by the percentage of their IPs where contact constraints are applied - 0 meaning no IPs and 1 meaning all IPs.

  Note

  Visualization is enabled by default for contact defined using surface sidesets.

  Warning

  Use of this option is primarily for debugging purposes as the Results Output and History file will contain a skinned version of the contact element blocks. This may constitute a a large amount of information for discontiguously meshed models.

  Warning

  Using contact visualization with multiple contact definitions on the same surface can result in duplicating contact contributions. Additionally, toggling each contact definition independently can result in errors in contact visualization.

## 7.23.2. Interaction

Scope

  Contact Definition

Summary

  Contains the commands needed to define a surface-surface interaction.

    begin Interaction Interaction_name

       Normal Tolerance {=} Distance

       Side A {=} Side a...

       Side B {=} Side b...

       Surfaces {=} Surfaces...

    end Interaction Interaction_name

### 7.23.2.1. Line Commands

###### Normal Tolerance

Syntax

  Normal Tolerance {=} Distance

Summary

  Set distance of normal tolerance.

Parameter | Value | Default
--- | --- | ---
{=} | {= | are | is} | –
Distance | real | –

###### Side A

Syntax

  Side A {=} Side a…

Summary

  Defines a list of surfaces that are side a to each surface in the side b list

Parameter | Value | Default
--- | --- | ---
{=} | {= | are | is} | –
Side a | string… | –

###### Side B

Syntax

  Side B {=} Side b…

Summary

  Defines a list of surfaces that are side b to each surface in the side a list

Parameter | Value | Default
--- | --- | ---
{=} | {= | are | is} | –
Side b | string… | –

###### Surfaces

Syntax

  Surfaces {=} Surfaces…

Summary

  Defines a pairwise set of surfaces for which to turn on interactions

Parameter | Value | Default
--- | --- | ---
{=} | {= | are | is} | –
Surfaces | string… | –

## 7.23.3. Interaction Defaults

Scope

  Contact Definition

Summary

  Contains the interaction default commands

    begin Interaction Defaults

       General Contact {=} {off | on}

       Self Contact {=} {off | on}

       Surfaces {=} Surfaces...

    end Interaction Defaults

### 7.23.3.1. Line Commands

###### General Contact

Syntax

  General Contact {=} {off | on}

Summary

  Sets all contact that is not self contact to either what is defined in interaction behavior

Parameter | Value | Default
--- | --- | ---
{=} | {= | are | is} | –
Option | {off | on} | –

###### Self Contact

Syntax

  Self Contact {=} {off | on}

Summary

  Specifies whether self contact is on or off

Parameter | Value | Default
--- | --- | ---
{=} | {= | are | is} | –
Option | {off | on} | –

###### Surfaces

Syntax

  Surfaces {=} Surfaces…

Summary

  Defines a pairwise set of surfaces for which to turn on interactions

Parameter | Value | Default
--- | --- | ---
{=} | {= | are | is} | –
Surfaces | string… | –

## 7.23.4. Search Options

Scope

  Contact Definition

Summary

  Contains the commands to set the search options

    begin Search Options Search_options_name

       Normal Tolerance {=} Distance

    end Search Options Search_options_name

### 7.23.4.1. Line Commands

###### Normal Tolerance

Syntax

  Normal Tolerance {=} Distance

Summary

  Set distance of normal tolerance.

Parameter | Value | Default
--- | --- | ---
{=} | {= | are | is} | –
Distance | real | –

## 7.23.5. Enforcement

Scope

  Contact Definition

Summary

  Contains the commands needed to define contact enforcement for an analysis in Aria.

Description

  This block command is used to define the type of contact between the surfaces. The name of the enforcement is specified by the user. When the contact includes some contact resistance, the conductance coefficient for the contact between the two surfaces must be specified.

    begin Enforcement Enforcement_name

       Dash Penalty Factor {=} value

       Enforcement For EquationName {=} EnforcementModel [ ModelParams...  ]

       Integer Data Values...

       Real Data Values...

       Side B Variable b_field To a_field

       Slave Variable Slave_field To Master_field

       Use Toggle Block ToggleName [ {on} ElementBlockList...  ]

    end Enforcement Enforcement_name

### 7.23.5.1. Line Commands

###### Dash Penalty Factor

Syntax

  Dash Penalty Factor {=} value

Summary

  Defines a penalty factor to use for the dash constraints

Parameter | Value | Default
--- | --- | ---
{=} | {= | are | is} | –
value | real | –

###### Enforcement For

Syntax

  Enforcement For EquationName {=} EnforcementModel [ ModelParams… ]

Summary

  Defines the model for enforcement for the command block interactions, either tied or resistance/conductance contact. Tied contact can be of type generalized or Lagrange multiplier/MPC, where generalized contact is the preferred contact algorithm.

Description

  This command line sets the type of contact problem for interactions defined in the current CONTACT DEFINITION command block and the equation to which the enforcement applies.

  The Generalized contact enforcement model can be either GAP_CONDUCTANCE, CONDUCTANCE or TIED_DOF. In the case of resistance contact one must define a CONDUCTANCE COEFFICIENT model. To specify that TIED contact will be enforced for DOF my_DOF_name, the enforcement model will be TIED_my_DOF_name, where the solution DOF for EquationName is defined in the EQ command line.

  Lagrange multiplier enforcement is specified simply as model TIED and must be accompanied by a SIDE B VARIABLE command line within the ENFORCEMENT command block.

  DASH contact enforcement will be enforced only in a TIED sense.

Parameter | Value | Default
--- | --- | ---
EquationName | string | –
{=} | {= | are | is} | –
EnforcementModel | string | –

###### Integer Data

Syntax

  Integer Data Values…

Summary

  List of integer data values to be used by the FORTRAN user subroutine. Copies of these values are provided to the subroutine hence changes to these values within the subroutine are not saved.

Parameter | Value | Default
--- | --- | ---
Values | integer… | –

###### Real Data

Syntax

  Real Data Values…

Summary

  List of real data values to be used by the FORTRAN user subroutine. Copies of these values are provided to the subroutine hence changes to these values within the subroutine are not saved.

Parameter | Value | Default
--- | --- | ---
Values | real… | –

###### Side B Variable

Syntax

  Side B Variable b_field To a_field

Summary

  Defines the variables involved in enforcement for this interaction.

Description

  This line command sets maps side b to side a variables involved in the current tied contact definition.

Parameter | Value | Default
--- | --- | ---
b_field | string | –
a_field | string | –

###### Slave Variable

Syntax

  Slave Variable Slave_field To Master_field

Summary

  Defines the variables involved in enforcement for this interaction.

Description

  DEPRECATED COMMAND: This line command sets the master and slave variables involved in the current tied contact definition.

Parameter | Value | Default
--- | --- | ---
Slave_field | string | –
Master_field | string | –

###### Use Toggle Block

Syntax

  Use Toggle Block ToggleName [ {on} ElementBlockList… ]

Summary

  Specification for toggling entities in the computational model based on Toggle Block parameters. When used at the region level, the list of element blocks to be toggled must be provided. Otherwise a listing of entities is not needed as the Toggle Block will be associated with the command line or the enclosing command block.

Parameter | Value | Default
--- | --- | ---
ToggleName | string | –

Along with the lines listed above, enforcements can be specified in the Enforcement block with the syntax

    Enforcement for [EQ] = [MODEL] [MODEL ARGS...]

See the list below for all possible Enforcement options.

- 7.23.5.1.1. Continuity
- 7.23.5.1.2. Current
- 7.23.5.1.3. Cvfem_Continuity
- 7.23.5.1.4. Cvfem_Energy
- 7.23.5.1.5. Cvfem_Lumped_Projection
- 7.23.5.1.6. Cvfem_Momentum
- 7.23.5.1.7. Cvfem_Projection
- 7.23.5.1.8. Cvfem_Specific_Dissipation_Rate
- 7.23.5.1.9. Cvfem_Turbulent_Kinetic_Energy
- 7.23.5.1.10. Energy
- 7.23.5.1.11. Mass_Balance
- 7.23.5.1.12. Mesh
- 7.23.5.1.13. Momentum
- 7.23.5.1.14. Porous_Enthalpy
- 7.23.5.1.15. Porous_Species
- 7.23.5.1.16. Species
- 7.23.5.1.17. Voltage

Similarly, contact material models can be specified in the Enforcement block with the syntax

    [MATERIAL PROPERTY] = [MODEL] [MODEL ARGS...]

See the list below for all possible Material Model options.

- 7.23.5.1.18. Contact Gap Temperature
- 7.23.5.1.19. Contact Gap Voltage
- 7.23.5.1.20. Contact Surface Pressure
- 7.23.5.1.21. Gap Conductance Coefficient
- 7.23.5.1.22. Offset Darcy Potential
- 7.23.5.1.23. Offset Mesh Displacements
- 7.23.5.1.24. Offset Pressure
- 7.23.5.1.25. Offset Solid Displacements
- 7.23.5.1.26. Offset Species
- 7.23.5.1.27. Offset Temperature
- 7.23.5.1.28. Offset Velocity
- 7.23.5.1.29. Offset Voltage
- 7.23.5.1.30. User Expression