*Contact()

Creates a 3D graphics-based contact force between two bodies and/or deformable entities.

Syntax

*Contact(varname,label, contact_type, coulomb_friction,
        [BODY, b1, in, ig1, ig2, ign, |DEFCURVE, ig_defcurve, |DEFSURF, ig_defsurface] 
        [BODY, b2, jn, jg1, jg2, jgn, |DEFCURVE, jg_defcurve, |DEFSURF, jg_defsurface]
)

Arguments

varname
The variable name of the contact force definition.
Data type: varname
label
The descriptive label of the contact force.
Data type: string
contact_type
The type of contact. Valid choices are: IMPACT|POISSON|VOLUME|USER.
Data type: keyword
coulomb_friction
Indicates the choice of using coloumb_friction. Valid choices: OFF|ON|DYNAMIC_ONLY|USER.
Data type: keyword
BODY
A keyword to indicate the body to be used for contact definition.
Data type: keyword
b1
The first body in the contact force definition.
Data type: Body
in
The number of graphic entities related to the first body in the contact force definition.
Data type: integer
ig1, ig2,...ign
The varname of graphic entities on the first body to be used for the contact force. The number of entities in this series should match in.
Data type: Graphics
DEFCURVE
A keyword to indicate that deformable curve is to be used for contact definition.
Data type: keyword
ig_defcurve
Varname of the deformable curve graphic as I graphic, when keyword is DEFCURVE.
Data type: Deformable curve graphic
DEFSURFACE
A keyword to indicate that deformable surface is to be used for contact definition.
Data type: keyword
ig_defsurface
Varname of the deformable surface graphic as I graphic, when keyword is DEFSURF.
Data type: Deformable surface graphic
b2
The second body in the contact force definition.
Data type: Body
jn
The number of graphic entities related to the second body in the contact force definition.
Data type: integer
jg_defcurve
Varname of the deformable curve graphic as J graphic, when keyword is DEFCURVE.
Data type: Deformable curve graphic
jg_defsurface
Varname of the deformable surface graphic as J graphic, when keyword is DEFSURF.
Data type: Deformable surface graphic

Example

 *Point( p_sph, "Sphere Center" ) 
 *Body( b_sph, "Sphere", p_sph ) 
 *Graphic( gra_sph, "Sphere_Graphics", SPHERE, b_sph, p_sph, 10 ) 
 *Graphic( gra_box, "Box_Graphics", BOX,  
B_Ground,  
CENTER,  
P_Global_Origin,  
ZX, VECTOR, V_Global_Z,  
VECTOR, V_Global_X, 10, 10, 250.0 ) 
//rigid to rigid contact 
*Contact( con_sph_box, "Sphere to box contact", IMPACT,  
OFF,  
BODY, b_sph, 1,
gra_sph, false,  
BODY, B_Ground, 1,  
gra_box, false )
 
*SetContact( con_sph_box, 1e5, 1.5, 1000, 0.1 ) 

*PolyBeam( pbm_0, "PolyBeam 0", p_0, p_1, p_2, p_3, p_4, p_5, p_6, p_7, p_8, p_9, p_10 ) 
*DeformableCurve( defcrv_0, "DeformableCurve 0", NATURAL, NATURAL, 11, BODYPT, 
pbm_0.body0, p_0, pbm_0.body1, p_1, pbm_0.body2, p_2, pbm_0.body3, p_3, pbm_0.body4, 
p_4, pbm_0.body5, p_5, pbm_0.body6, p_6, pbm_0.body7, p_7, pbm_0.body8, p_8, 
pbm_0.body9, p_9, pbm_0.body10, p_10 ) 
*Graphic( gdefc_0, "DeformableCurveGraphic 0", DEFORMABLE_CURVE, 100, defcrv_0, 10 ) 
// rigid to deformable curve contact 
  *Contact( con_0, "Contact 0", IMPACT, OFF, BODY, Body_1, 1, gcyl_0, DEFCURVE, gdefc_0 ) 
  *SetContact( con_0,                      1000.0, 2.1, 0.1, 0.1, 0.2, 0.1, 1.0, 1.5, false ) 
*DeformableSurface( defsur_1, "DeformableSurface 1", NATURAL, 8, 8, MARKER, m_10000001, 
m_10000002, m_10000003, m_10000004, m_10000005, m_10000006, m_10000007, m_10000008, 
m_10000009, m_10000010, m_10000011, m_10000012, m_10000013, m_10000014, m_10000015, 
m_10000016, m_10000017, m_10000018, m_10000019, m_10000020, m_10000021, m_10000022, 
m_10000023, m_10000024, m_10000025, m_10000026, m_10000027, m_10000028, m_10000029, 
m_10000030, m_10000031, m_10000032, m_10000033, m_10000034, m_10000035, m_10000036, 
m_10000037, m_10000038, m_10000039, m_10000040, m_10000041, m_10000042, m_10000043, 
m_10000044, m_10000045, m_10000046, m_10000047, m_10000048, m_10000049, m_10000050, 
m_10000051, m_10000052, m_10000053, m_10000054, m_10000055, m_10000056, m_10000057, 
m_10000058, m_10000059, m_10000060, m_10000061, m_10000062, m_10000063, m_10000064 ) 
*Graphic( gra_def_surf, "Graphic 1", DEFORMABLE_SURFACE, "30", "30", defsur_1 )  

//rigid to deformable surface contact 
  *Contact( con_sph_defsurf, "Sphere to Deformable Surface contact", IMPACT, OFF, BODY, Body_1, 1, gra_sph, DEFSURF, gra_def_surf ) 

Context

*BeginMdl()

*DefineAnalysis()

*DefineSystem()

*DefineAssembly()

Properties

Table 1.
Property Returns Data Type Description
contact_type keyword Valid values are: IMPACT|POISSON|VOLUME|USER
coulomb_friction keyword ON|OFF|DYNAMICS_ONLY
exponent real Applicable for ^contact_type^ IMPACT. Specifies the value of the exponent for stiffness.
damping Body Applicable for ^contact_type^ IMPACT. Specifies the value of the damping coefficient.
dmax real Applicable for ^contact_type^ IMPACT. Specifies the value of the maximum penetration depth before full damping is applied.
friction_trans_vel real 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.
id integer The numeric ID assigned to the entity.
id_string string The assigned ID in a string format.
itype string I type entity. Values are BODY|DEFCURVE|DEFSURF.
ig1, ...ign Graphic The graphic entities belonging to the first body.
jtype string J type entity. Values are BODY|DEFCURVE|DEFSURF.
jg1, ...jgn Graphic The graphic entities belonging to the second body.
label string The descriptive label.
mu_static real The coefficient of friction when the slip velocity is less than ^stiction_trans_vel^.
mu_dynamic real The coefficient of friction when the slip velocity is greater than ^friction_trans_vel^.
num integer The last digit of the ID.
penalty Point 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.
rest_coeff Point The value represents 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.
state boolean Returns true or false. True if the entity is active, otherwise false.
stiction_trans_vel real 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.
stiffness real Applicable for contact_type IMPACT. Specifies the value of the stiffness associated with the contact force.
type string Returns "Contact".
use_aug_formulation boolean Used for the ADAMS solvermode only, to use the augmented Lagrangian formulation.
varname varname The variable name of the contact definition.

Comments

This statement can be used to define a 3D graphical based contact force between two sets of graphics that belong to different bodies or deformable curve or deformable surface.

At least one graphic should be listed for each body in this definition for arguments ign and jgn.contact_type determines the method used to calculate the normal force. Available methods are IMPACT, POISSON, VOLUME, and USER. VOLUME and USER are available only available for the MotionSolve solver mode. Based on the chosen method, relevant properties in *SetContact should be provided.

When graphic type selected is deformable curve (DEFCURVE) or deformable surface (DEFSURF) only one graphic reference is allowed in the following argument.

All ign graphics must reference the same body, and all jgn graphics must reference the same body, however the body for the ign graphics must be different than the body for the jgn graphics.

Contact between a deformable curve and a deformable surface is not supported.

When exporting to the ADAMS solver, MotionView utilizes a Parasolid file of the same base name as the H3D graphics file and in the same file location. Parasolid's containing only one solid (element) must be used. The reference marker for the Parasolid is implicitly generated based on the location of the H3D graphic in the MDL model.