# Contact

## Class Contact()

Contact(parent='MODEL', name='Contact_n', label='Contact_n', active=True, contact_type='IMPACT',
coulomb_friction='OFF', force_loc='ELEM_CENTER', create_zero_sensor=False, r_value=0.01, create_hmax_sensor=False,
contact_hmax=0.0001, stiffness=1000, exponent=2.1, damping=0.1, dmax=0.1, penalty=5000, rest_coeff=0.8,
normal_trans_vel=1, use_aug_formulation=True, i_bulk_modulus=160000, j_bulk_modulus=160000,
i_shear_modulus=160000, j_shear_modulus=160000, i_layer_depth=1000, j_layer_depth=1000, mat_exponent=2.1,
mat_damping=1, b1=None, b2=None, ig=None, jg=None, ig_material_inside=[False], jg_material_inside=[False],
mu_static=0.2, mu_dynamic=0.1, stiction_trans_vel=1, friction_trans_vel=1.5)

Contacts add a contact force between multiple graphics where the graphics represent the bodies' outer surfaces.

## Keyword Arguments

Argument Data Type Description Default
name String The variable name. Contact_n, for next available integer n.
label String The descriptive label. Contact_n, for next available integer n.
parent Object The parent. MODEL
active Boolean Used to activate or deactivate this entity. True
contact_type Enum The contact type. One of "IMPACT", "POISSON", "USER" or "VOLUME". "IMPACT"
coulomb_friction Enum The type of coulomb friction. One of OFF, ON, DYNAMIC_ONLY or USER. "OFF"
force_loc Enum The location at which force is computed. One of ELEM_CENTER or NODE. "ELEM_CENTER"
create_zero_sensor Bool When TRUE, it creates a zero crossing Sensor to accurately capture the time of first contact for a model containing contact elements. This is useful in getting realistic contact forces without having to run the entire simulation at a small step size. To do this, the sensor monitors the contact force for a contact pair in the model. As soon as contact is first detected, the zero crossing action is triggered. False
r_value Double Max step size scale factor. Defaults to 0.01. * create_hmax_sensor (Bool) : When TRUE, specifies the action that the zero crossing Sensor is to undertake when it detects contact (in other words, a zero crossing). The action, in this case, is to reduce the maximum step size the integrator can take. False
contact_hmax Double New maximum step size. Defaults to 0.0001. * stiffness (Double) : Applicable for contact_type IMPACT. Specifies the value of the stiffness associated with the contact force. 1000
exponent Double Applicable for contact_type IMPACT. Specifies the value of the exponent for stiffness. 2.1
damping Double Applicable for contact_type IMPACT. Specifies the value of the damping coefficient. 0.1
dmax Double Applicable for contact_type IMPACT. Specifies the value of the maximum penetration depth before full damping is applied. 0.1
penalty Double Determines the local stiffness properties between materials. Larger values lead to reduced penetration between two bodies. Used with the Poisson method of normal force calculation. 5000
rest_coeff Double The value representing the energy loss between the two bodies in contact. A value of one represents no energy loss and a perfectly elastic contact. Used with the Poisson method of normal force calculation. 0.8
normal_trans_vel Double The normal transition velocity. 1
use_aug_formulation Bool Used for the ADAMS solvermode only, to use the augmented Lagrangian formulation. True
i_bulk_modulus Double Bulk modulous of I Body material. 160000
j_bulk_modulus Double Bulk modulous of JBody material. 160000
i_shear_modulus Double Shear modulous of I Body material. 160000
j_shear_modulus Double Shear modulous of J Body material. 160000
i_layer_depth Double Depth of material layer of the I Body to be considered for contact force. 1000
j_layer_depth Double Depth of material layer of the J Body to be considered for contact force. 1000
mat_exponent Double The exponent of the force deformation characteristic of the contact interface. Defaults to 2.1 * mat_damping (Double) : The coefficient of damping used to calculate the damping force. 1
b1 Body The first body in the contact force definition. None
b2 Body The second body in the contact force definition. None
ig Graphic The python handles of graphic entities on the first body to be used for the contact force. Defaults to None. * jg (Graphic) : The varname of graphic entities on the second body to be used for the contact force. None
ig_material_inside Bool List of booleans which indicate whether there is material inside for every graphic associated with body 1. [False]
jg_material_inside Bool List of booleans which indicate whether there is material inside for every graphic associated with body 2. [False]
mu_static Double The coefficient of friction when the slip velocity is less than stiction_trans_vel. 0.2
mu_dynamic Double The coefficient of friction when the slip velocity is greater than friction_trans_vel. Defaults to 0.1 * stiction_trans_vel (Double) : The value where the coefficient of friction becomes ^mu_dynamic^. When the slip velocity is between stiction_trans_vel and friction_trans_vel, the coefficient of friction is in transition between the two. 1
friction_trans_vel Double The value where the coefficient of friction becomes mu_dynamic. When the slip velocity is between stiction_trans_vel and friction_trans_vel, the coefficient of friction is in transition between the two. 1.5
usr_sub Function The expression passed to the user dll for normal force value. When using solver expressions, Templex syntax (within ) is used and all variables are enclosed in braces {} and the rest is treated as literal. 'USER()'
local_funcname String The function/subroutine name for normal force value. 'CNFSUB'
use_local_dll Bool Uses a local function instead of default for normal force if True. False
local_dll File The path of the local dll for normal force which has the local_funcname. ''
local_func_type Enum The type of the user subroutine of normal force. One of DLL, PYTHON or MATLAB. 'DLL'
friction_usr_sub Function The expression passed to the user dll for friction force value. When using solver expressions, Templex syntax (within ) is used and all variables are enclosed in braces {} and the rest is treated as literal. 'USER()'
friction_local_funcname String The function/subroutine name for friction force value. 'CFFSUB'
friction_use_local_dll Bool Uses a local function instead of default for friction force if True. False
friction_local_dll File The path of the local dll for normal force which has the local_funcname. ''
friction_local_func_type Enum The type of the user subroutine of friction force. One of DLL, PYTHON or MATLAB. 'DLL'