# IMPACT

Utility/GeneralModels a contact force or collision phenomena.

## Use

This function can be called by any user-defined subroutine.

## Format

Fortran Calling Syntax
CALL IMPACT(X, XD, X1, K, E, CMAX, D, IORD, VALUE, ERRFLG)
C/C++ Calling Syntax
c_impact(x, xd, x1, k, e, cmax, d, iord, value, errflg)
Python Calling Syntax
[value, errflg] = py_impact(x, xd, x1, k, e, cmax, d, irod)
MATLAB Calling Syntax
[value, errflg] = m_impact(x, xd, x1, k, e, cmax, d, irod)

## Attributes

X
[double precision]
The independent variable. For example, to specify time as the independent variable, specify X as TIME.
XD
[double precision]
The time derivative of the independent variable.
X1
[double precision]
The lower bound of X. If X is less than X1, the IMPACT function returns a positive value; otherwise it returns zero.
K
[double precision]
The stiffness of the boundary surface interaction. It must be non-negative.
E
[double precision]
The exponent of the force deformation characteristic. For a stiffening spring characteristic, E must be greater than 1.0. For a softening spring characteristic, E must be less than 1.0. It must always be positive.
CMAX
[double precision]
The maximum damping coefficient. It must be non-negative.
D
[double precision]
The penetration at which the full damping coefficient is applied. It must be positive.
IORD
[integer]
The order of the derivative that IMPACT has to return. Order can be 0, 1 or 2.

## Output

Value
[integer]
A value that the subroutine returns.
Errflg
[logical]
A logical (true or false) variable that IMPACT returns to the calling subroutine. If IMPACT detects an error while calling the subroutine, it sets the error flag to true.