# BISTOP

Utility/GeneralEvaluates a BISTOP function (gap element).

## Use

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

## Format

Fortran Calling Syntax
CALL BISTOP (X, XD, X1, X2, K, E, CMAX, D, IORD, VECTOR, ERRFLG)
C/C++ Calling Syntax
c_bistop(x, xd, x1, x2, k, e, cmax, d, iord, vector, errflg)
Python Calling Syntax
[vector, errflg] = py_bistop(x, xd, x1, x2, k, e, cmax, d, iord)
MATLAB Calling Syntax
[vector, errflg] = m_bistop(x, xd, x1, x2, k, e, cmax, d, iord)

## Attributes

X
[double precision]
A variable that specifies the deformation to be used to compute the force.
XD
[double precision]
The first time derivative of X.
X1
[double precision]
The lower bound value of X. If X is less than X1, the BISTOP function returns a positive value. The value of X1 must be less than the value of X2.
X2
[double precision]
The upper bound value of X. If X is greater than X2, the BISTOP function returns a negative value. The value of X2 must be greater than the value of X1.
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]
A variable that specifies the order of the derivative that BISTOP returns. It can be 0, 1 or 2.

## Output

VECTOR
[double precision]
It returns the value calculated by the subroutine.
ERRFLG
[logical]
A logical (true or false) variable that BISTOP returns to the calling subroutine. If BISTOP detects an error while calling the subroutine, it sets the error flag to true.