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.