*SetContact() - RigidToRigidContact

Sets the values associated with the RigidToRigidContact.

Syntax

*SetContact(varname,  force_attrib ,  fric_attrib  [,create_zero_sensor,r_value]  [,create_hmax_sensor,hmax_factor]) force_attrib canbeoneofthefollowingbasedon contact_type chosenin *Contact tocalculatenormalforce: stiffness,damping,exponent,dmax penalty,rest_coeff,[use_aug_formulation] i_bulk_modulus,j_bulk_modulus,i_shear_modulus,j_shear_modulus,i_layer_depth,mat_exponent,mat_damping, usr_type,usr_sub fric_attrib canbeoneofthefollowingbasedon coulomb_friction chosenin *Contact tocalculatethefrictionforce: mu_static,mu_dynamic,stiction_trans_vel,friction_trans_vel friction_usr_type,friction_usr_sub Note :ThefunctionalitiesspecifictoMotionSolveareshownin blue .

Arguments

varname
The variable name of an existing contact entity.
Data type: varname

The following arguments are applicable to the IMPACT model for calculating normal force:

stiffness
Represents the contact stiffness coefficient.
Data type: real
exponent
The exponent applied to the normal force equation that represents contact.
Data type: real
damping
The value of the damping coefficient associated with the contact force.  
Data type: real
dmax
The depth at which the full value of damping is applied.
Data type: real

The following arguments are applicable to the POISSON model for calculating normal force:

penalty
Determines the local stiffness parameter of the spring that represents contact.  Larger values lead to lower penetration between two bodies.
Data type: real
rest_coeff
The value representing the energy loss between the two bodies in contact.  Valid value range is between 0 - 1.  A value of 1 represents no energy loss, and 0 represents a perfectly elastic contact.
Data type: real
use_aug_formulation
Used to refine the accuracy of the normal force between the two bodies.  Applicable in ADAMS solver mode only.
Data type: boolean

The following arguments are applicable to the VOLUME model for calculating normal force:

i_bulk_modulus
Bulk modulous of I Body material.
Data type: real
j_bulk_modulus
Bulk modulous of J Body material.
Data type: real
i_shear_modulus
Shear modulous of I Body material.
Data type: real
j_shear_modulus
Shear modulous of J Body material.
Data type: real
i_layer_depth
Depth of material layer of the I Body to be considered for contact force calculation.
Data type: real
j_layer_depth
Depth of material layer of the J Body to be considered for contact force calculation.
Data type: real
mat_exponent
The exponent of the force deformation characteristic of the contact interface.
Data type: real
mat_damping
The coefficient of damping used to calculate the damping force.
Data type: real

The following arguments are applicable to USER model for calculating normal force in MotionSolve.

usr_type
Keyword USER to specify that the following argument is a call to the user function.
Data type: keyword
usr_sub
USER function that is input to the subroutine.
Data type: string

Note:  Use ^*SetLocalUserFunction^ to set the type of user subroutine and subroutine file.

The following arguments are applicable when ^columb_friction^ is set to ^ON^ or ^DYNAMIC_ONLY^:

mu_static
Static coefficient of friction.
Data type: real
mu_dynamic
Dynamic coefficient of friction.
Data type: real
stiction_trans_vel
Velocity limit above which friction regime transitions from static to dynamic (also referred as stiction).
Data type: real
friction_trans_vel
Velocity limit above which friction regime is considered dynamic. friction_trans_vel > stiction_trans_vel
Data type: real

The following arguments are applicable when ^columb_friction^ is set to ^USER^ (applicable for MotionSolve only):

friction_usr_type,
Keyword USER to specify that the following argument is a call to the user function.
Data type: keyword
friction_usr_sub
USER function that is input into the subroutine.
Data type: string

Note:  Use ^*SetLocalUserFunction^ to set the type of user subroutine and subroutine file.

The following arguments are applicable only when the solver mode is set to MotionSolve:

create_zero_sensor
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.
Data type: boolean
r_value
Specifies the accuracy to which the zero crossing Sensor should detect the contact event.
Data type: real
create_hmax_sensor
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.
Data type: boolean
hmax_factor
Specifies the reduction scale factor for the maximum step size the integrator is allowed.
Data type: real

Example

This example shows two contact entities containing 
IMPACT
 and 
POISSON
 normal force definitions. Friction is turned 
OFF
 for contact entity that uses 
IMPACT
 for normal force (
contact_im
) and for 
contact_ps
 that uses 
POISSON
 definition for normal force, friction is turned 
ON
. Zero crossing sensor is not defined.
*BeginMDL(the_model, "MBD Model")
 *Body(b_1, "Body 1", , , )
 *Body(b_2, "Body 2", , , )
 *Graphic(g_file_1, "File Graphic - 1", File, MODEL.b_1, "file1.h3d", comp1, GLOBAL, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 1.000, 1.000, 1.000)
 *Graphic(g_file_2, "File Graphic - 2", File, MODEL.b_2, "file2.h3d", comp1, GLOBAL, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 1.000, 1.000, 1.000)
 *Contact(contact_im, "Contact Impact", IMPACT, OFF, 1, g_file_1, FALSE, 1, g_file_2, FALSE)
 
*SetContact(contact_im, 1E6, 2.0, 8.0, 0.1)
 *Contact(contact_ps, "Contact Poisson", POISSON, ON, 1, g_file_1, FALSE, 1, g_file_2, FALSE)
 
*SetContact(contact_ps, 1E5, 0.8, FALSE, 0.8, 0.6, 0.5, 1.5)
*EndMDL()
The second example shows a contact entity containing the 
VOLUME
 normal force definition. The standard friction model is used and a zero crossing sensor is defined. The zero crossing action is to reduce the maximum step size by a factor of 100.
*BeginMDL(the_model, "MBD Model")
 *Body(b_1, "Body 1", , , )
 *Body(b_2, "Body 2", , , )
 *Graphic(g_file_1, "File Graphic - 1", File, MODEL.b_1, "file1.h3d", comp1, GLOBAL, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 1.000, 1.000, 1.000)
 *Graphic(g_file_2, "File Graphic - 2", File, MODEL.b_2, "file2.h3d", comp1, GLOBAL, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 1.000, 1.000, 1.000)
 *Contact(contact_vol, "Contact Volume", IMPACT, ON, 1, g_file_1, FALSE, 1, g_file_2, FALSE)
 
*SetContact(contact_vol, 160000.0, 160000.0, 160000.0, 160000.0, 100.0, 100.0, 2.1, 1.0, 0.3, 0.25, 1.0, 1.5, true, 0.01, true, 0.1 ) 
*EndMDL()

Context

*BeginMdl()

*DefineAnalysis()

*DefineSystem()

*DefineAssembly()