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' |
Readonly Properties
Argument | Data Type | Description | Default |
---|---|---|---|
user | Bool | Is True when 'contact_type' is "USER" else False. | False |
friction_user | Bool | Is True when 'coulomb_friction' is "USER" else False. | False |