7.23. Contact

This section is referenced in the following other sections

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.

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.