solver fortran functions
TRANSCRIPT
-
8/22/2019 Solver Fortran Functions
1/148
1Adams/Solver (FORTRAN) Functions
Adams/Solver (FORTRAN) Functions
You use function expressions to define a wide variety of nonstandard phenomena in your model. Acomprehensive set of symbolic variables operators and functions are provided for this purpose. These can
be used to create complex expressions.
Below are the Adams/Solver (FORTRAN) function expressions grouped according to their function.
Detailed information on each function expression can be found by following the links.
Type of Function: Function Name:
FORTRAN 77 ABSACOSAINTANINTASINATANATAN2COS
COSHEXPLOG
MAXMINMODSIGNSINSINHSQRT
TAN
TANH
Simulation constants and variables TIMEMODEPIDTORRTOD
Displacement AXAYAZDMDXDYDZ
INCANGPHIPITCHPSIROLL
THETAYAW
Velocity VM
VRVXVYVZ
WM
WXWYWZ
Acceleration ACCMACCXACCYACCZ
WDTMWDTXWDTYWDTZ
Generic force FMFXFYFZ
TMTXTYTZ
-
8/22/2019 Solver Fortran Functions
2/148
Adams/SolverAdams/Solver (FORTRAN) Functions
2
Element-specific applied force BEAM
BUSHFIELDFRICTIONGFORCE
NFORCE
SFORCESPDPVFORCEVTORQ
Element-specific reaction force CVCVJ OINTJ PRIMMOTION
PTCV
System element ARYVALDIFDIF1PINVALPOUVALSENVALVARVAL
Arithmetic IF IF
Interpolation AKISPLCUBSPLCURVEINTERP
General BISTOPCHEBYFORCOS
FORSINHAVSINIMPACT
INVPSDPOLYSHF
STEPSTEP5SWEEP
Flexible body constants FXFREQFXMODE
Type of Function: Function Name:
-
8/22/2019 Solver Fortran Functions
3/148
3ABSAdams/Solver (FORTRAN) Functions
ABS
The ABS function returns the absolute value of the expression a.
Format
ABS(a)
Arguments
Examples
Var i abl e/ 1, FUNCTI ON= ABS( DX( 21, 11) *VX( 21, 11) +DY( 21, 11) *VY( 21, 11)+ DZ( 21, 11) *VZ( 21, 11) )
This variable statement defines a new state variable. Its value is the absolute value of the radial velocity
between Markers 21 and 11.
See otherFORTRAN 77 available.
a Any valid function expression.
Number of Arguments: 1
-
8/22/2019 Solver Fortran Functions
4/148
Adams/SolverAdams/Solver (FORTRAN) Functions
4
ACCM
The ACCM function calculates the magnitude of the second time derivative of the displacement vector
of marker i from marker j. The time derivatives are taken in the reference frame of marker l. Markers jand l default to the global coordinate system and the global reference frame if they are not specified.
Format
ACCM(i[,j][,l])
Arguments
Extended Definition
Mathematically, ACCM is calculated as follows:
where is the displacement of marker i in ground and is the displacement of marker j in ground.
Note that for any vector quantity :
Examples
REQUEST/ 10, F2=ACCM( 21, 11)
This statement defines the second component of a user-defined request as the magnitude of translational
acceleration of Marker 21 with respect to Marker 11. Since the l marker is not specified, the derivatives
are taken in the inertial reference frame.
REQUEST/ 10, F2=ACCM( 21, 11)
This statement defines the second component of a user-defined request as the magnitude of the
translational acceleration of Marker 21 with respect to Marker 11. Vector time derivatives taken in
reference to Marker 32. See otherAccelerationavailable.
i The marker whose acceleration is being measured.
j The marker with respect to which the acceleration is being measured. Set j = 0, while still
specifying l, if you want j to default to the global coordinate system.
l The reference frame in which the second time derivative of the displacement vector is taken.
Set l = 0 or omit the argument if you want the time derivatives to be calculated in the ground
coordinate system (GCS).
ACCM i j, l, t2
2
d
dRi
l
t2
2
d
dRj
l
t2
2
d
dRi
l
t2
2
d
dRj
l
=
Ri Rj
p
td
dA
ptd
dB
p
-
8/22/2019 Solver Fortran Functions
5/148
5ACCXAdams/Solver (FORTRAN) Functions
ACCX
The ACCX function returns the x-component of the difference between the acceleration vector of marker
i and the acceleration vector of marker j as computed in the coordinate system of marker k. All vectortime derivatives are taken in the reference frame of marker l. Marker j defaults to the global coordinate
system if it is not specified. Similarly, markers k and l default to the global coordinate system and the
global reference frame if they are not specified.
Format
ACCX(i[,j][,k][,l])
Arguments
Extended Definition
Mathematically, ACCX is calculated as follows:
where is the displacement of marker i in ground, is the displacement of marker j in ground, and
is the unit vector along the x-axis of marker k.
Examples
DI FF/ 1, I C=0, FUNCTI ON=ACCX( 21, 11)
This statement defines a user-specified differential equation. The time derivative of the state is specified
to be the x-component of the acceleration of Marker 21 with respect to Marker 11. The coordinate system
for calculating the component, and for referencing the frame that takes time derivatives, defaults to
ground.
DI FF/ 2, I C=1, FUNCTI ON=ACCX( 21, 0, 31)
i The marker whose acceleration is being measured.
j The marker with respect to which the acceleration is being measured. Set j = 0, while still
specifying l, if you want j to default to the global coordinate system.
k The marker in whose coordinate system the acceleration vector is being expressed. Set k = 0,
while still specifying l, if you want the results to be calculated along the x-axis of the globalcoordinate system.
l The reference frame in which the second time derivative of the displacement vector is taken.
Set l = 0 or omit the argument if you want the time derivatives to be taken in the ground
coordinate system (GCS).
ACCX i j, k, l, t2
2
d
dRi
l
t2
2
d
dRj
l
x
k=
Ri Rj
xk
-
8/22/2019 Solver Fortran Functions
6/148
Adams/SolverAdams/Solver (FORTRAN) Functions
6
This statement defines a user-specified differential equation. The time derivative of the state is specified
to be the x-component of the acceleration vector of Marker 21 with respect to the global origin. The
vector is expressed in the coordinate system of Marker 31. All time derivatives are taken in the inertialreference frame since the l marker is not specified.
See otherAccelerationavailable.
-
8/22/2019 Solver Fortran Functions
7/148
7ACCYAdams/Solver (FORTRAN) Functions
ACCY
The ACCY function returns the y-component of the difference between the acceleration vector of marker
i and the acceleration vector of marker j as computed in the coordinate system of marker k. All vectortime derivatives are taken in the reference frame of marker l. Marker j defaults to the global coordinate
system if it is not specified. Similarly, markers k and l default to the global coordinate system and the
global reference frame if they are not specified.
Format
ACCY(i[,j][,k][,l])
Arguments
Extended Definition
Mathematically, ACCY is calculated as follows:
where is the displacement of marker i in ground, is the displacement of marker j in ground, and
is the unit vector along the y-axis of marker k.
Examples
DI FF/ 1, I C=0, FUNCTI ON=ACCX( 21, 11)
This statement defines a user-specified differential equation. The time derivative of the state is specified
to be the x-component of the acceleration of Marker 21 with respect to Marker 11. The coordinate system
for calculating the component, and for referencing the frame that takes time derivatives, defaults to
ground.
DI FF/ 2, I C=1, FUNCTI ON=ACCX( 21, 0, 31)
i The marker whose acceleration is being measured.
j The marker with respect to which the acceleration is being measured. Set j = 0, while still
specifying l, if you want j to default to the global coordinate system.
k The marker in whose coordinate system the acceleration vector is being expressed. Set k = 0,
while still specifying l, if you want the results to be calculated along the y-axis of the globalcoordinate system.
l The reference frame in which the second time derivative of the displacement vector is taken.
Set l = 0 or omit the argument if you want the time derivatives to be taken in the ground
coordinate system (GCS).
ACCY i j, k, l, t2
2
d
dRi
l
t2
2
d
dRj
l
y
k=
Ri Rj
yk
-
8/22/2019 Solver Fortran Functions
8/148
Adams/SolverAdams/Solver (FORTRAN) Functions
8
This statement defines a user-specified differential equation. The time derivative of the state is specified
to be the x-component of the acceleration vector of Marker 21 with respect to the global origin. The
vector is expressed in the coordinate system of Marker 31. All time derivatives are taken in the inertial
reference frame since the l marker is not specified.
See otherAccelerationavailable.
-
8/22/2019 Solver Fortran Functions
9/148
9ACCZAdams/Solver (FORTRAN) Functions
ACCZ
The ACCZ function returns the z-component of the difference between the acceleration vector of marker
i and the acceleration vector of marker j as computed in the coordinate system of marker k. All vectortime derivatives are taken in the reference frame of marker l. Marker j defaults to the global coordinate
system if it is not specified. Similarly, markers k and l default to the global coordinate system and the
global reference frame if they are not specified.
Format
ACCZ(i[,j][,k][,l])
Arguments
Extended Definition
Mathematically, ACCZ is calculated as follows:
where is the displacement of marker i in ground, is the displacement of marker j in ground, and
is the unit vector along the z-axis of marker k.
Examples
DI FF/ 1, I C=0, FUNCTI ON=ACCX( 21, 11)
This statement defines a user-specified differential equation. The time derivative of the state is specified
to be the x-component of the acceleration of Marker 21 with respect to Marker 11. The coordinate system
for calculating the component, and for referencing the frame that takes time derivatives, defaults to
ground.
DI FF/ 2, I C=1, FUNCTI ON=ACCX( 21, 0, 31)
i The marker whose acceleration is being measured.
j The marker with respect to which the acceleration is being measured. Set j = 0, while still
specifying l, if you want j to default to the global coordinate system.
k The marker in whose coordinate system the acceleration vector is being expressed. Set k = 0,
while still specifying l, if you want the results to be calculated along the z-axis of the globalcoordinate system.
l The reference frame in which the second-time derivative of the displacement vector is taken.
Set l = 0 or omit the argument if you want the time derivatives to be taken in the ground
coordinate system (GCS).
ACCZ i j, k, l, t2
2
d
dRi
l
t2
2
d
dRj
l
z
k=
Ri Rj
zk
-
8/22/2019 Solver Fortran Functions
10/148
Adams/SolverAdams/Solver (FORTRAN) Functions
10
This statement defines a user-specified differential equation. The time derivative of the state is specified
to be the x-component of the acceleration vector of Marker 21 with respect to the global origin. The
vector is expressed in the coordinate system of Marker 31. All time derivatives are taken in the inertial
reference frame since the l marker is not specified.
See otherAccelerationavailable.
-
8/22/2019 Solver Fortran Functions
11/148
11ACOSAdams/Solver (FORTRAN) Functions
ACOS
The ACOS function calculates the arc cosine of an expression a. Expression a must evaluate to a value
whose absolute value is less than or equal to 1. The value returned by ACOS lies in the range [0, ] (i.e.,
0 < ACOS(a) < ).
Format
ACOS(a)
Arguments
Examples
VARI ABLE/ 1, FU=ACOS( ( DX( 21, 11) *DX( 31, 41) +DY( 21, 11) *DY( 31, 41)
+ DZ( 21, 11) *DZ( 31, 41) ) / ( DM( 21, 11) *DM( 31, 41) )
This statement specifies a new user-defined state variable. Its value is the included angle of the lines
joining Markers 11 and 21 and Markers 41 and 31. The result is in radians.
See otherFORTRAN 77 available.
a Any valid function expression.
Number of Arguments: 1
Ad /S l12
-
8/22/2019 Solver Fortran Functions
12/148
Adams/SolverAdams/Solver (FORTRAN) Functions
12
AINT
The AINT function returns the nearest integer whose magnitude is not larger than the integer value of the
expression a.
AINT(a) = 0 if ABS(a) < 1
AINT(a) = int(a) if ABS(a) > 1
The value of the mathematical function int of a variable x is equal to x if x is an integer. If x is not an
integer, then int(x) is equal to the nearest integer to x whose magnitude is not greater than the magnitude
of x. Thus int(-7.0) = -7, int(-4.8) = -4, and int(4.8) = 4.
Format
AINT(a)
Arguments
Examples
AI NT( - 6. 5) = - 6AI NT(4. 6 ) = 4
See otherFORTRAN 77 available.
a Any valid function expression.
Number of Arguments: 1
Caution: Note that AINT is not a differentiable function. Be careful when using this function in an
expression that defines a force or motion input to the system.
13AKISPL
-
8/22/2019 Solver Fortran Functions
13/148
13AKISPLAdams/Solver (FORTRAN) Functions
AKISPL
The AKISPL function returns the iord derivative of the interpolated value of SPLINE/id at X=x and Z=z.
Format
AKISPL (x, z, id)
or
AKISPL (x,0,id [,iord])
Arguments
Extended Definition
The AKISPL function uses the Akima method of interpolation to create a spline function across a set of
data points. The data points to be interpolated are defined by a SPLINE statement in the Adams/Solver
dataset. The SPLINE that you define in the dataset may represent a curve (x-y points) or a surface (x-y-
z points). Interpolation in the y direction is cubic, and interpolation in the z direction is linear. To
interpolate the values specified in a curve, set z = 0.
iord specifies the order of the derivative and may be used only when interpolating a curve (that is, whenz = 0).
AKISPL is very fast, since it uses local methods. It always produces good results for the value of the
function being approximated. AKISPL returns good estimates for the first derivative of the approximated
function when the data points are evenly spaced. In instances where the data points are unevenly spaced,
the estimate of the first derivative may be in error.In all cases, the second derivative of the function being
approximated is unreliable.
x A real variable that specifies the independent variable value along the x-axis of the
AKISPL.
z A real variable that specifies the second independent variable value along the z-axis of the
surface being interpolated. Specify z = 0 if the SPLINE statement defines only one curve.
id An integer variable that specifies the identifier of a SPLINE statement that you define in theAdams/Solver dataset.
iord An integer variable that specifies the order of the derivative to be taken at the interpolated
point. iord may not be specified when interpolating on a surface (for example, when ).
Default: 0
Range: 0 < iord < 2
z 0
Adams/Solver14
-
8/22/2019 Solver Fortran Functions
14/148
Adams/SolverAdams/Solver (FORTRAN) Functions
14
For more information on the Akima method of interpolation, see the references listed in Additional
Publications.
Examples
SFORCE/ 1, I =409, J =109, TRANSLATI ON, FUNCTI ON=AKI SPL( TI ME, 0, 1, 1)
This SFORCE statement defines a translational force that acts between Markers 409 and 109. The
SPLINE statement provides the discrete data used to generate the interpolation function using the Akima
spline. Since this SPLINE statement defines only one curve, the value of z is defined to be 0. AKISPL
returns the first derivative of the spline at the interpolated point since iord = 1.
See otherInterpolationavailable.
Tip: If you want to force a particular region of a spline function to be linear, you should know
that four consecutive points on a straight line will yield a linear section in the region
between the central two points, and, similarly, four consecutive points on a straight line at
the end of a spline will yield a linear fit from the second point onward.
15ANINT
http://solver_about.pdf/http://solver_about.pdf/http://solver_about.pdf/http://solver_about.pdf/ -
8/22/2019 Solver Fortran Functions
15/148
15ANINTAdams/Solver (FORTRAN) Functions
ANINT
The ANINT function calculates the nearest integer to a.
ANINT(a) = int(a + .5) if a > 0
ANINT(a) = int(a - .5) if a < 0
The value of the mathematical function int of a variable x is equal to x if x is an integer. If x is not an
integer, then int(x) is equal to the nearest integer to x whose magnitude is not greater than the magnitude
of x.Thus:
int(-7.0) = -7, int(-4.8) = -4, and int(4.8) = 4.
Format
ANINT(a)
Arguments
Examples
ANI NT( - 4. 6) = - 5ANI NT( 4. 6) = 5
See otherFORTRAN 77 available.
a Any valid function expression.
Number of arguments: 1
Adams/Solver16
-
8/22/2019 Solver Fortran Functions
16/148
Adams/Solver (FORTRAN) Functions
ARYVAL
The ARYVAL function returns component comp of ARRAY/id. Depending on the definition of
ARRAY/id, this may be a constant that you defined in the Adams/Solver (FORTRAN) dataset, an inputto an LSE, GSE, or TFSISO, a state variable defined by an LSE, GSE, or TFSISO, or an output from an
LSE, GSE, or TFSISO.
Format
ARYVAL (id, comp)
Arguments
Examples
ARRAY/ 17, NUM=11. 465, 2. 321
SFORCE/ 19, ROT, I =23, J =11, FUNCTI ON=- ARYVAL( 17, 1) *( AZ( 23, 11) - ARYVAL( 17, 2) )
This example illustrates how a value defined in an ARRAY statement can be accessed using the
ARYVAL function.
LSE/ 1, X=1, U=2, Y=3, A=11, B=12, C=13, D=14
This statement defines a set of linear state equations. The A, B, C, and D matrices for this LSE are defined
by matrices 11-14.
SFORCE/ 6, ROT, I =23, J =11, FUNCTI ON=ARYVAL( 3, 2)
The second output of the LSE is used to define a torque acting on the system.
See otherSystem element available.
id The identifier of the array whose data is being requested.
comp An integer that specifies the component of the array to be returned.
17ASIN
-
8/22/2019 Solver Fortran Functions
17/148
Adams/Solver (FORTRAN) Functions
ASIN
The ASIN function computes the arc sine of an expression a. ASIN is defined only when the absolute
value of a is less than or equal to 1. The range of ASIN is [- /2, /2] (that is, - /2 < ASIN(a) < /2).
Format
ASIN(a)
Arguments
Examples
DI FF/ 1, I C=1. 05, FUNCTI ON=ASI N( DX( 21, 11) / DM( 21, 11) )
This statement defines a user-specified differential equation. The initial value of the state variable is 1.05.
The time derivative of the state variable is the expression:
ASI N( DX( 21, 11) / DM( 21, 11) )
See otherFORTRAN 77 available.
a Any valid function expression.
Number of arguments: 1
Adams/SolverAd /S l (FORTRAN) F ti
18
-
8/22/2019 Solver Fortran Functions
18/148
Adams/Solver (FORTRAN) Functions
ATAN
The ATAN function returns the arc tangent of an expression a. The range of ATAN is [- /2, /2] (that
is, - /2 < ATAN(a)< /2).
Format
ATAN(a)
Arguments
Examples
SFORCE/ 1, ROTATI ONAL, I =21, J =11, FUNCTI ON=- 10*ATAN( DY( 42, 33) / DX( 42, 33) )
This SFORCE statement defines a torque acting between Markers 21 and 11. The value of the torque is
the spring constant (10) multiplied by the angle between the line joining Markers 33 and 42 and the global
x-axis as shown in the figure below.
Example Illustrating the Use of the ATAN Function
See otherFORTRAN 77 available.
a Any valid function expression.
Number of arguments: 1
19ATAN2Ad /S l (FORTRAN) F ti
-
8/22/2019 Solver Fortran Functions
19/148
Adams/Solver (FORTRAN) Functions
ATAN2
The ATAN2 function expression returns the arc tangent of the expression a1/a2. a1 and a2 themselves
may be expressions.
- < ATAN2(a1,a2) 0 if a1 > 0
ATAN2(a1,a2) = 0 if a1 = 0, a2 > 0
ATAN2(a1,a2) = if a1 = 0, a2 < 0
ATAN2(a1,a2) < 0 if a1 < 0
ABS(ATAN2(a1,a2))= /2 if a2 = 0ATAN2(a1,a2) undefined if a1 = 0, and a2 = 0
Format
ATAN2(a1,a2)
Arguments
Examples
VARI ABLE/ 1,, FUNCTI ON=ATAN2(DY( 21, 31, 41) , DX( 21, 31, 41) )
This VARIABLE statement defines an algebraically-determined, user-defined state variable inAdams/Solver (FORTRAN). Its value is specified by the expression containing ATAN2.
See otherFORTRAN 77 available.
a1 Any valid function expression.
a2 Any valid function expression.
Adams/SolverAdams/Solver (FORTRAN) Functions
20
-
8/22/2019 Solver Fortran Functions
20/148
Adams/Solver (FORTRAN) Functions
AX
The AX function returns the rotational displacement (in radians) of marker i about the x-axis of marker
j, and accounts for angle wrapping.
Marker j defaults to the global coordinate system if it is not specified. This value is computed as follows:
assume that rotations about the other two axes (y- and z-axes) of marker j are zero. Then, AX is the angle
between the two y-axes (or the two z-axes). AX is measured in a counter-clockwise sense from the y-axis
of marker J to the y-axis of marker I (see the figure below).
Measurement of AX
Format
AX(i[,j])
Arguments
Extended Definition
Mathematically, AX is calculated as:
where:
is the z-axis of marker i
is the y-azis of marker j
i The marker whose rotations are being sought.
j The marker whose coordinate system is used as a reference to calculate the rotations of marker i.
When j is not specified, Adams/Solver (FORTRAN) defaults to the global coordinate system.
AX ATAN2 zi yj zi zj =
zi
yj
21AXAdams/Solver (FORTRAN) Functions
-
8/22/2019 Solver Fortran Functions
21/148
Adams/Solver (FORTRAN) Functions
is the z-axis of marker j
Examples
GFORCE/ 1, I =21, J FLOAT=31, RM=41, FX=- 20*AX( 43, 32)
This GFORCE statement applies a force at the origin of Marker 21 along the x-axis of Marker 41. The
reaction force is on floating Marker 31. The floating Marker 31 can belong to another part but its location
is always the same as Marker 21.
The value of the force is -20 times the angle between the y axes of Markers 43 and 32. The angle is
measured in a counterclockwise sense from the y-axis of Marker 32 to the y-axis of Marker 43.
See otherDisplacement available.
zj
Tip: If you want to change the AX function so it does not account for angle wrapping, use the
MOD function. For example, use the function:
(MOD(AX(2,1) + PI, 2 * PI) - PI
The MOD function achieves the cyclic effect and the +PI and -PI shift the curve
accordingly.
Caution: For large rotations (greater than 10 degrees) about the y-axis or z-axis on Marker j, the AX
function becomes increasingly non-physical. Moreover, AX is undefined when both
arguments to ATAN2 are zero. This occurs when the z-axis of marker i is orthogonal to the
plane defined by the y and z-axis of the j marker.
Adams/SolverAdams/Solver (FORTRAN) Functions
22
-
8/22/2019 Solver Fortran Functions
22/148
AY
The AY function returns the rotational displacement (in radians) of marker i about the y-axis of marker
j, and accounts for angle wrapping.
Marker j defaults to the global coordinate system if it is not specified. The values are computed as
follows: assume rotations about the other two axes (x-, z-axes) of marker j are zero. Then AY is the angle
between the two x-axes (or the two z-axes). AY is measured counter-clockwise from the z-axis of the J
marker to the z-axis of the I marker (see the figure below).
Measurement of AY
Format
AY(i[,j])
Arguments
Extended Defint ion
Mathematically, AY is calculated as:
where:
is the z-axis of marker i
is the x-azis of marker j
i The marker whose rotations are being sought.
j The marker with respect to which the rotations are being measured.
AY ATAN2 zi xj zi zj =
zi
xj
23AYAdams/Solver (FORTRAN) Functions
-
8/22/2019 Solver Fortran Functions
23/148
/ ( )
is the z-axis of marker j
Examples
SFORCE/ 10, ROTATI ON, I =23, J =34, FUNCTI ON=- 4*( AY( 46, 57) ** 2)
This SFORCE statement applies a moment about the common z-axes of Markers 23 and 34. The torque
acts on Marker 23; the reaction torque acts on Marker 34.
The value of the torque being applied is -4 times the square of the angle between the z axes of Markers
46 and 57. The angle is measured in a counterclockwise sense from the z-axis of Marker 57 to the z-axis
of Marker 46.
See otherDisplacement available.
zj
Tip: If you want to change the AY function so it does not account for angle wrapping, use the
MOD function. For example, use the function:
(MOD(AY(2,1)+PI,2*PI)-PI)
The MOD function achieves the cyclic effect and the +PI and -PI shift the curve
accordingly.
Caution: For large rotations (greater than 10 degrees) about the x-axis or z-axis of marker j, the AY
function becomes increasingly non-physical. Moreover, AY is undefined when both
arguments to ATAN2 are zero. This occurs when the z-axis of marker i is orthogonal to the
plane defined by the x and z-axis of the j marker.
Adams/SolverAdams/Solver (FORTRAN) Functions
24
-
8/22/2019 Solver Fortran Functions
24/148
AZ
The AZ function returns the rotational displacement (in radians) of marker i about the z-axis of marker
j, and accounts for angle wrapping.
Marker j defaults to the global coordinate system if it is not specified. This value is computed as follows:
assume that rotations about the other two axes (x-, y-axes) of marker j are zero. Then AZ is the angle
between the two x-axes (or the two y-axes). AZ is measured in a counter- clockwise sense from the x-
axis of the J marker to the x-axis of the I marker (see the figure below).
Measurement of AZ
Format
AZ(i [,j ])
Arguments
Extended Definition
Mathematically, AZ is calculated as:
where:
is the x-axis of marker i
is the x-azis of marker j
i The marker whose rotations are being sought.
j The marker with respect to which the rotations are being measured.
AZ ATAN2 xi yj xi xj =
xi
xj
25AZAdams/Solver (FORTRAN) Functions
-
8/22/2019 Solver Fortran Functions
25/148
is the y-axis of marker j
Examples
VTORQUE/ 1, I =21, J FLOAT=31, RM=41, TX=- 10*( AX( 21, 32) - 10D) /, TY=- 15*( AY(21, 32) - 15D) /, TZ=- 30*( AZ( 21, 32) - 25D)
This VTORQUE statement applies a moment at Marker 21. The reaction moment is at the floating
Marker 31. The torques are expressed in the coordinate system of Marker 41.
See otherDisplacement available.
yj
Tip: If you want to change the AZ function so it does not account for angle wrapping, use the
MOD function. For example, use the function:
(MOD(AZ(.model_1.PART_1.MAR_2, .model_1.ground.MAR_1)+PI,2*PI)-PI)
The MOD function achieves the cyclic effect and the +PI and -PI shift the curve
accordingly.
Caution: For large rotations (greater than 10 degrees) about the x-axis or y-axis of marker j, the AZ
function becomes increasingly non-physical. Moreover, AZ is undefined when both
arguments to ATAN2 are zero. This occurs when the x-axis of marker i is orthogonal to the
plane defined by the x and y-axis of the j marker.
Adams/SolverAdams/Solver (FORTRAN) Functions
26
-
8/22/2019 Solver Fortran Functions
26/148
BEAM
The BEAM function returns component comp of a force due to BEAM/id as calculated in the coordinate
system of marker rm. If jflag is set to zero, the value returned is the force/torque acting on the I markerof the BEAM. If jflag is set to 1, the value returned is that acting on the J marker. rm may be specified as
zero if the results are desired in the global coordinate system.
Format
BEAM (id, jflag, comp, rm)
Arguments
Examples
REQUEST/ 1, F2=BEAM( 1001, 0, 2, 0) /, F3=BEAM( 1001, 0, 3, 0) /, F4=BEAM( 1001, 0, 4, 0)
This REQUEST statement stores the x-, y-, and z-component of the forces in BEAM/1001 in columns 2,
3, and 4, respectively. The forces are calculated at the I marker. The results are computed in the global
coordinate system.
See otherElement-specific applied force available.
id An integer specifying the identification number of the beam.
jflag An integer flag specifying the beam connectivity marker at which the forces and torques are
computed.
0 = forces and moments at the I marker
1 = forces and moment at the J marker
comp An integer value that specifies the component of the beam force to be returned.
1 = Magnitude of the force
2 = x component of the force
3 = y component of the force
4 = z component of the force
5 = Magnitude of the torque
6 = x component of the torque
7 = y component of the torque
8 = z component of the torque
rm The coordinate system in which the results are expressed. To return the results in the global
coordinate system, set rm = 0.
27BISTOPAdams/Solver (FORTRAN) Functions
-
8/22/2019 Solver Fortran Functions
27/148
BISTOP
The BISTOP function models a gap element (see Figure 1).
Format
BISTOP (x, ,x1, x2, k, e, cmax, d)
Arguments
Extended Definition
The BISTOP function models a gap element. Figure1 below illustrates the BISTOP force. The gap
element consists of a slot which defines the domain of motion of a Part I located in the slot. As long as
Part I is inside the slot and has no interference with the ends of the slot, it is free to move without forces
acting on it. When Part I tries to move beyond the physical definition of the slot, impact forces
representing contact are created by the BISTOP function. The created force tends to move Part I back
into the slot.
The BISTOP force has two components: A stiffness component dependent on the penetration of Part I
into the restricting Part J and a damping or viscous component that may be used to model energy loss.
x The distance variable you want to use to compute the force. For example, if you want to use
the x displacement of Marker 0201 with respect to 0301, then x is DX(0201,0301,0301).
The time derivative of x to BISTOP. For example, if x is DX(0201,0301,301) then is
VX(0201,0301,0301,0301).
x1 The lower bound of x. If x is less than x1 Adams/Solver (FORTRAN) calculates a positive
value for the force. The value of x1 must be less than the value of x2.
x2 The upper bound of x. If x is greater than x2 Adams/Solver (FORTRAN) calculates a
negative value for the force. The value of x2 must be greater than the value of x1.k A non-negative value that specifies the stiffness of the boundary surface interaction.
e A positive value that specifies the exponent of the force deformation characteristic. For a
stiffening spring characteristic, e > 1.0. For a softening spring characteristic, 0 < e < 1.0.
cmax A non-negative variable that specifies the maximum damping coefficient.
d A positive real variable that specifies the penetration at which the full damping coefficient
is applied.
x
x
Adams/SolverAdams/Solver (FORTRAN) Functions
28
-
8/22/2019 Solver Fortran Functions
28/148
Figure 1 Example of the BISTOP Function
To prevent a discontinuity in the damping force at zero penetration, the damping coefficient is defined as
a cubic step function of the penetration. Thus at zero penetration, the damping coefficient is always zero.
The damping coefficient achieves a maximum, cmax, at a user-defined penetration, d. Even though the
points of contact between the floating part and the restricting part may change as the system moves,
Adams/Solver (FORTRAN) always exerts the force between the I and the J markers.
Figure 2 Damping Coeffic ient versus Penetration
Examples
You may model a slider in a slot with a BISTOP function as depicted in Figure1. Assume a translational
joint constrains the slider to move in a slot. The line of translation is along the colinear z-axes of the I
and the J markers, I belonging to the slider and J to the part containing the slot. You can use an SFORCE
statement together with the BISTOP function to restrict the movement of the slider in the slot and modelthe gap.
Caution: When e is < 1, the defined force contains a slope discontinuity that may casue difficulty forthe integrator.
29BISTOPAdams/Solver (FORTRAN) Functions
-
8/22/2019 Solver Fortran Functions
29/148
In Figure1:
x is the instantaneous distance between the I and the J markers.
N is the distance between the J marker and the left end of the slot.
M1 is the distance between the I marker and the left edge of the floating part.
L is the length of the slot.
M2 is the distance between the I marker and the right edge of the floating part.
x1 is the instantaneous distance between the I and the J markers when the floating part first
comes into contact with the left end of the slot.
x2 is the instantaneous distance between the I and the J markers when the floating part firstcomes into contact with the right end of the slot.
Therefore, the parameters for BISTOP for this example are:
x = DZ(I,J,J) and = VZ(I,J,J,J)
x= N + M1 for the left end of the slot and
x = N + L - M2 for the right end of the slot orx1 = N + M1, and
x2 = N + L - M2
Note that when:
x1 < x < x2, there is no penetration and the force is zero (penetration p = 0).
x < x1 penetration occurs at the end closer to the J marker and the force is > 0 (penetration p = x1
- x). x > x2 penetration occurs at the end farther away from the J marker, and the force is < 0
(penetration p = x - x2).
Also note that when p < d the instantaneous damping coefficient is a cubic step function of the
penetration, p; when p > d the instantaneous damping coefficient is cmax.
The BISTOP function for this example is:
BI STOP( DZ( I , J , J , J ) , VZ( I , J , J , J ) , x1, x2, k, e, cmax, d)
The values of k, e, cmax, and d depend on the materials used in the two parts and on the shapes of the parts
and are used to define the contact force. The BISTOP force can be mathematically expressed as follows:
x
BISTOP
Max k x1 x e STEP x x1 d cmax x1 0 x' 0 x x1
0 x1 x x2
Min k x x2 e STEP x x2 0 x2 d c max+ x' 0 x x2
=
Adams/SolverAdams/Solver (FORTRAN) Functions
30
-
8/22/2019 Solver Fortran Functions
30/148
See otherGeneral available.
31BUSHAdams/Solver (FORTRAN) Functions
-
8/22/2019 Solver Fortran Functions
31/148
BUSH
The BUSH function returns component comp of a force due to BUSHING/id as calculated in the
coordinate system of marker rm. If jflag is set to zero, the value returned is the force/torque acting on theI marker of the BUSHING. If jflag is set to 1, the value returned is that acting on the J marker. rm may
be specified as zero if the results are desired in the global coordinate system.
Format
BUSH (id, jflag, comp, rm)
Arguments
Examples
REQUEST/ 1, F2=BUSH( 1001, 0, 2, 0) /, F3=BUSH( 1001, 0, 3, 0) /, F4=BUSH( 1001, 0, 4, 0)
This REQUEST statement stores the x-, y-, and z-component of the forces in BUSH/1001 in columns 2,
3, and 4, respectively. The forces are calculated at the I marker. The results are computed in the global
coordinate system.
See otherElement-specific applied force available.
id An integer specifying the identification number of the bushing.
jflag An integer flag specifying the bushing connectivity marker at which the forces and torques
are computed.
0 = forces and moments at the I marker
1 = forces and moment at the J marker
comp An integer value that specifies the component of the bushing force to be returned.
1 = Magnitude of the force
2 = x component of the force
3 = y component of the force
4 = z component of the force
5 = Magnitude of the torque6 = x component of the torque
7 = y component of the torque
8 = z component of the torque
rm The coordinate system in which the results are expressed. To return the results in the global
coordinate system, set rm = 0.
Adams/SolverAdams/Solver (FORTRAN) Functions
32
-
8/22/2019 Solver Fortran Functions
32/148
CHEBY
The CHEBY function evaluates a Chebyshev polynomial at a user specified value x.
Format
CHEBY (x, x0, a0, a1,..., a30)
Arguments
Extended Definition
The CHEBY function evaluates a Chebyshev polynomial at a user specified value x. x0, a
0, a
1,..., a
30are
parameters used to define the constants for the Chebyshev polynomial. The Chebyshev polynomial is
defined as:
C(x) = aj Tj (x-x0)
where the functions Tj are recursively defined as:
Tj ( x- x0) = 2 * ( x- x0) * Tj - 1 ( x- x0) - Tj - 2 ( x- x0)
wi t h T0 ( x- x0) = 1, and T1 ( x- x0) =x- x0.The index j has a range from zero to n, where n is the number of terms in the series.
Note the following:
T2 ( x- x0) = 2 * ( x- x0)2 - 1
T3 ( x- x0) = 4 * ( x- x0)3 - 3 * ( x- x0)
Examples
MOTI ON/ 1, J OI NT=21, TRANSLATI ON,, FUNCTI ON = I F ( TI ME- 2: CHEBY( TI ME, 1, 1, 0, - 1) , 0, 0)
This MOTION statement defines a motion using a quadratic Chebyshev polynomial and the system
variable TIME. The arithmetic IF ensures that the function remains zero after 2 time units. When time is
less than 2 time units, Adams/Solver (FORTRAN) evaluates a Chebyshev polynomial to determine the
motion. The polynomial defined in the above example is:
Cheby = 1 + 0 * ( t i me- 1) - 1 * [ 2 ( t i me- 1) 2 - 1]
= 2*t i me2 - 4*t i me
See otherGeneral available.
x An expression that specifies the independent variable. For example, if the independent
variable in the function is time, x is the system variable TIME.
x0 The phase shift in the Chebyshev polynomial.
a0, a1,..., a30 The coefficients for the Chebyshev polynomial. A maximum of thirty-one coefficients
may be specified.
33CONTACTAdams/Solver (FORTRAN) Functions
-
8/22/2019 Solver Fortran Functions
33/148
CONTACT
The CONTACT function returns the component comp of the force in CONTACT/id in the coordinate
system of markerrm. Ifjflag is set to zero, Adams/Solver (FORTRAN) returns the value of theforce/torque that acts on the I marker of CONTACT. Ifjflag is set to 1, Adams/Solver (FORTRAN)
returns the value that acts on the J marker. To obtain results in the global coordinate system, you can
specify rm as zero.
Format
CONTACT (id, jflag, comp, rm)
Arguments
Examples
REQUEST/ 1, F2= CONTACT( 11, 0, 2, 0) /, F3= CONTACT( 11, 0, 3, 0) /, F4= CONTACT( 11, 0, 4, 0) /, F6= CONTACT( 11, 0, 6, 0) /, F7= CONTACT( 11, 0, 7, 0) /, F8= CONTACT( 11, 0, 8, 0)
This REQUEST statement outputs the x-, y- and z-components of the force and torque at the I marker of
CONTACT/11. Because rm is specified as zero, all vectors are expressed in the global coordinate system.
id An integer specifying the identification number of the CONTACT.
jflag An integer flag specifying the CONTACT connectivity marker at which the forces and
torques are computed.
0 = forces and moments at the I marker
1 = forces and moment at the J marker
comp An integer value that specifies the component of the CONTACT to be returned:
1 - Magnitude of the force applied by all incidents of contact ID
2 - x-component of the force applied by all incidents of contact ID
3 - y-component of the force applied by all incidents of contact ID
4 - z-component of the force applied by all incidents of contact ID
5 - Magnitude of the torque applied by all incidents of contact ID
6 - x-component of the torque applied by all incidents of contact ID
7 - y-component of the torque applied by all incidents of contact ID
8 - z-component of the torque applied by all incidents of contact ID
rm The coordinate system in which the results are expressed. To return the results in the global
coordinate system, set rm = 0.
Adams/SolverAdams/Solver (FORTRAN) Functions
34
-
8/22/2019 Solver Fortran Functions
34/148
COS
The COS function returns the cosine of an expression a.
Format
COS(a)
Arguments
Examples
MOTI ON/ 2060, J OI NT=2060, ROTATI ON,, FUNCTI ON=20D+COS( 2*PI *TI ME)
This MOTION statement defines a rotational motion acting on JOINT/2060. The rotational degree of
freedom is specified to be 20D+COS(2*PI*TIME).
See otherFORTRAN 77 available.
a Any valid function expression.
Number of Arguments: 1
35COSHAdams/Solver (FORTRAN) Functions
-
8/22/2019 Solver Fortran Functions
35/148
COSH
The COSH function computes the hyperbolic cosine of an expression a. COSH(a) = (ea + e-a) / 2.0
Format
COSH(a)
Arguments
Examples
REQUEST/ 36,, F2=COSH( DZ( 21, 11, 11) )
This REQUEST statement returns the hyperbolic cosine of the z-component of the displacement of
Marker 21 with respect to Marker 11 in its second column. The result is computed in the coordinate
system of Marker 11.
See otherFORTRAN 77 available.
a Any valid function expression.
Number of Arguments: 1
Adams/SolverAdams/Solver (FORTRAN) Functions
36
-
8/22/2019 Solver Fortran Functions
36/148
CUBSPL
The CUBSPL function returns the interpolated value of SPLINE/id at X=x and Z=z or returns the iord
derivative at the interpolated value of SPLINE/id at X=x, Z=0.
Format
CUBSPL (x, z, id)
or
CUBSPL (x, 0, id [,iord])
Arguments
Extended Definition
The CUBSPL function uses the standard cubic method of interpolation to create a spline function acrossa set of data points. The data points are defined in the SPLINE statement in Adams/Solver (FORTRAN)
data deck. The SPLINE that you define in the Adams/Solver dataset may represent a curve (x-y points)
or a surface (x-y-z points). Interpolation in the y direction is cubic and interpolation in the z direction is
linear. To interpolate the values specified in a curve, set z = 0.
iord specifies the order of the derivative and may be used only when interpolating a curve (that is, when
z = 0).
CUBSPL, though not as fast as AKISPL, always produces good results for the value of the function beingapproximated, its first and second derivatives. There is no requirement on the data points being evenly
spaced. This may be an important consideration when you use splines to define functions in
Adams/Solver (FORTRAN). The solution process often requires estimates of derivatives of the functions
being defined. The smoother a derivative is, the easier it is for the solution process to converge.
If the spline data contains sudden changes in value, the CUBSPL function gives more oscillatory results
for the curve or surface than are given by the AKISPL function.
For more information on the cubic method of interpolation, see the references listed in AdditionalPublications.
x A real variable that specifies the independent variable value along the x-axis of the CUBSPL.
z A real variable that specifies the second independent variable value along the z-axis of the
surface being interpolated. If the SPLINE statement defines only one curve, Adams/Solver
(FORTRAN) ignores this variable.
id An integer variable that specifies the identifier of a CUBSPL statement.
iord An optional integer that specifies the order of the derivative at the interpolate value to be
returned by CUBSPL.
Range: 0 < iord < 2
37CUBSPLAdams/Solver (FORTRAN) Functions
http://solver_about.pdf/http://solver_about.pdf/http://solver_about.pdf/http://solver_about.pdf/ -
8/22/2019 Solver Fortran Functions
37/148
Examples
SPLI NE/ 1,, X= - 3, - 2, - 1, 0, 1, 2, 3
, Y= - 67. 4, - 48. 6, - 33. 7, 4. 8, 24. 12, 37. 6, 48. 4SFORCE/ 1, I =409, J =109, TRANSLATI ON,, FUNCTI ON=CUBSPL( TI ME, 0, 1)
This SFORCE statement defines the translational force acting between Markers 409 and 109. The
SPLINE statement provides the discrete data used to generate the interpolation function using the cubic
spline. Since the SPLINE statement defines only one curve, the value of z is defined to be 0.
See otherInterpolation available.
Adams/SolverAdams/Solver (FORTRAN) Functions
38
-
8/22/2019 Solver Fortran Functions
38/148
CURVE
The CURVE function evaluates a B-spline or user-written curve that is created with the CURVE
statement.
Format
CURVE (alpha, iord, comp, id)
Arguments
Examples
VFORCE/ 1, I =101, J FLOAT=201, RM=99,, FX=CURVE( . 4*TI ME - 1, 0, 1, 8) /, FY=CURVE( . 4*TI ME - 1, 0, 2, 8) /
, FZ=CURVE( . 4*TI ME - 1, 0, 3, 8)
alpha A real variable that identifies the value of the independent parameter, , at which the CURVEfunction evaluates the curve. If the curve is a B-spline computed by the CURVE statement,
alpha must be in the domain -1 < < 1. If the curve is computed by a CURSUB, alpha must
be in the domain MINPAR < < MAXPAR (these are specified in the CURVE statement).
iord An integer variable that specifies the order of the derivative the CURVE function returns. The
legal values are:
0 - returns the curve coordinate
1 - returns the first derivative
2 - return the second derivative
comp An integer variable that specifies the component that the CURVE function returns. The legal
values are:
1 - returns the x coordinate or derivative
2 - returns the y coordinate or derivative
3 - returns the z coordinate or derivative
Parameters iord and icomp together allow you to request any one of the following nine return
values:
id An integer variable that specifies the identifier of the CURVE statement.
i ord i co mp 1= icomp 2= icomp 3=
0 x y z
1x d
d--------------
y dd
--------------z d
d--------------
2d2x
2d-----------------
d2y
2d-----------------
d2z
2d-----------------
39CURVEAdams/Solver (FORTRAN) Functions
-
8/22/2019 Solver Fortran Functions
39/148
This example applies to a VFORCE acting between Markers 101 and 201. The CURVE statement defines
the force components as a function of alpha, which varies from -1.0 to 1.0. The term 4*TIME-1 computes
the instantaneous value of alpha from the simulation time.
See otherInterpolation available.
Adams/SolverAdams/Solver (FORTRAN) Functions
40
C C
-
8/22/2019 Solver Fortran Functions
40/148
CVCV
The CVCV function returns component comp of a force or torque due to CVCV/idas calculated in the
coordinate system of marker rm. If jflag is set to zero, the value returned is the force/torque acting on the
IFLOAT marker of the CVCV. If jflag is set to one, the value returned is that acting on the JFLOAT
marker. rm may be specified as zero if the results are desired in the global coordinate system.
Format
CVCV (id, jflag, comp, rm)
Arguments
Examples
REQUEST/ 18,
, F2=CVCV( 210, 0, 2, 0) /, F3=CVCV( 210, 0, 3, 0) /, F4=CVCV( 210, 0, 4, 0) /, F6=CVCV( 210, 0, 6, 0) /, F7=CVCV( 210, 0, 7, 0) /, F8=CVCV( 210, 0, 8, 0)
This REQUEST statement returns all three components of the forces and moments acting at the IFLOAT
marker of CVCV Joint 210.
See otherElement-specific reaction force available.
id An integer specifying the identification number of a curve_curve constraint.
jflag An integer flag specifying the curve_curve constraint marker at which the forces and
torques are computed.
0 = forces and moments at the IFLOAT marker
1 = forces and moment at the JFLOAT marker
comp An integer value that specifies the component of the curve_curve constraint to be returned.
1 = Magnitude of the force
2 = x component of the force
3 = y component of the force
4 = z component of the force
5 = Magnitude of the torque
6 = x component of the torque7 = y component of the torque
8 = z component of the torque
rm The coordinate system in which the results are expressed. To return the results in the global
coordinate system, set rm = 0
41DIFAdams/Solver (FORTRAN) Functions
DIF
-
8/22/2019 Solver Fortran Functions
41/148
DIF
The DIF function returns the value of the state associated with DIFF/id.
Format
DIF(id)
Arguments
Examples
SFORCE/ 1, I =21, J =11, ROTATI ON, FUNCTI ON= - 20*( AZ( 21, 11) - 10) **1. 5, - 5*WZ( 21, 11, 11)DI FF/ 1, I C=0, FUNCTI ON=SFORCE(1, 0, 8, 11) *WZ( 21, 11)
This SFORCE statement specifies a nonlinear rotational spring acting between Markers 21 and 11. The
spring torque acts about the z axis of Marker 11. DIFF/1 specifies the instantaneous power used by
SPRING/1.
The expression DIF(1) returns the integral of the instantaneous power (that is, the total work done by
SPRING/1). DIF1(1) returns the instantaneous power in SPRING/1.
See otherSystem element available.
id An integer variable that specifies the identifier of a DIFF statement.
Adams/SolverAdams/Solver (FORTRAN) Functions
42
DIF1
-
8/22/2019 Solver Fortran Functions
42/148
DIF1
The DIF1 function returns the value of the time derivative of the state variable associated with DIFF/id.
In instances where DIFF/idis used to define an implicit algebraic equation, DIF1 returns an
approximation of the time derivative obtained by numerical differencing.
Format
DIF1(id)
Arguments
Examples
SFORCE/ 1, I =21, J =11, ROTATI ON, FUNCTI ON= - 20*( AZ( 21, 11) - 10) **1. 5, - 5*WZ( 21, 11, 11)DI FF/ 1, I C=0, FUNCTI ON=SFORCE(1, 0, 8, 11) *WZ( 21, 11)
This SFORCE statement specifies a nonlinear rotational spring acting between Markers 21 and 11. Thespring torque acts about the z axis of Marker 11. DIFF/1 specifies the instantaneous power used by
SPRING/1.
The expression DIF(1) returns the integral of the instantaneous power (that is, the total work done by
SPRING/1). DIF1(1) returns the instantaneous power in SPRING/1.
See otherSystem element available.
id An integer variable that specifies the identifier of a DIFF statement.
43DIMAdams/Solver (FORTRAN) Functions
DIM
-
8/22/2019 Solver Fortran Functions
43/148
DIM
The DIM function calculates the positive difference of the instantaneous values of two expressions a1
and a2.
DIM(a1,a2) = 0 if a1 < a2
DIM(a1,a2) =a1-a2 if a1 > a2
Format
DIM(a1,a2)
Arguments
a1 Any valid function expression.
a2 Any valid function expression.
Caution: DIM is a discontinuous function and must be used with caution.
Adams/SolverAdams/Solver (FORTRAN) Functions
44
DM
-
8/22/2019 Solver Fortran Functions
44/148
DM
The DM function returns the magnitude of the translational displacement vector from marker j to marker
i. Marker j defaults to the global coordinate system if it is not specified. DM is the distance between
markers i and j and, by definition, is always non-negative.
Format
DM(i[,j])
Arguments
Extended Definition
Mathematically, DM is calculated as follows:
where is the displacement of marker i in the global coordinate system and is the displacement of
marker j in the global coordinate system.
Examples
SFORCE/ 1, I =21, J =11, TRANSLATI ON, FUNCTI ON=- 30*( DM( 21, 11) - 25) ** 1. 72
This SFORCE statement defines a nonlinear spring whose free length is 25. The stiffness is 30 force units
per unit deformation. DM(21,11)-25 represent the deformation in the spring. 1.72 is the exponent to
which the deformation is raised.
See otherDisplacement available.
i The marker whose origin is being measured.
j The marker whose origin is the reference point for the displacement calculation.
DM Ri Rj Ri Rj =
Ri Rj
45DTORAdams/Solver (FORTRAN) Functions
DTOR
-
8/22/2019 Solver Fortran Functions
45/148
DTOR
The DTOR variable returns degrees to radians conversion factor (PI/180).
Format
DTOR
Examples
VARI ABLE/ 1, FUNCTI ON=30*DTOR*TI ME
This VARIABLE statement specifies a user-defined, algebraically-determined state variable whose value
is 30 degrees*time. The state variable is stored in radians.See otherSimulation constants and variables available.
Adams/SolverAdams/Solver (FORTRAN) Functions
46
DX
-
8/22/2019 Solver Fortran Functions
46/148
The DX function returns the x-component of the translational displacement vector from marker j to
marker i as expressed in the marker k coordinate system. Marker j defaults to the global coordinate
system if it is not specified. Similarly, marker k defaults to ground if it is not specified.
Format
DX(i[,j][,k])
Arguments
Extended DefinitionMathematically, DX is calculated as follows:
where:
is the displacement of marker i in the global coordinate system.
is the displacement of marker j in the global coordinate system.
is the unit vector along the x-axis of marker k.
Examples
VARI ABLE/ 1, FUNCTI ON=DX( 21, 11, 32) **2
This VARIABLE statement specifies a user-defined, algebraically-determined state variable. Its value is
the square of the x-displacement of Marker 21 with respect to Marker 11 as computed in the coordinate
system of Marker 32.
See otherDisplacement available.
i The marker whose origin is being measured.
j The marker whose origin is the reference point for the displacement calculation. Set j=0 if you
want j to default to the global coordinate system while still specifying k.
k The marker that is referenced to calculate the x-component of the displacement vector. Set k =
0 if you want the results to be calculated along the x-axis of the global coordinate system.
DX Ri Rj xk=
Ri
Rj
xk
47DYAdams/Solver (FORTRAN) Functions
DY
-
8/22/2019 Solver Fortran Functions
47/148
The DY function returns the y-component of the translational displacement vector from marker j to
marker i as expressed in the marker k coordinate system. Marker j defaults to the global coordinate
system if it is not specified. Similarly, marker k defaults to the global coordinate system if it is not
specified.
Format
DY(i[,j][,k])
Arguments
Extended Definition
Mathematically, DY is calculated as follows:
where:
is the displacement of marker i in the global coordinate system.
is the displacement of marker j in the global coordinate system.
is the unit vector along the y-axis of marker k.
Examples
VARI ABLE/ 1, FUNCTI ON=DY( 21, 11, 32) **2
This VARIABLE statement specifies a user-defined, algebraically-determined state variable. Its value is
the square of the y-displacement of Marker 21 with respect to Marker 11 as computed in the coordinate
system of Marker 32.
See otherDisplacement available.
i The marker whose origin is being measured.
j The marker whose origin is the reference point for the displacement calculation. Set j=0 if you
want j to default to the global coordinate system while still specifying k.
k The coordinates of the marker that are referenced to calculate coordinates the y-component of
the displacement vector is being calculated. Set k = 0 if you want the results to be calculated
along the y-axis of the global coordinate system.
DY Ri Rj yk=
Ri
Rj
yk
Adams/SolverAdams/Solver (FORTRAN) Functions
48
DZ
-
8/22/2019 Solver Fortran Functions
48/148
The DZ function returns the z-component of the translational displacement vector from marker j to
marker i as expressed in the marker k coordinate system. Marker j defaults to the global coordinate
system if it is not specified. Similarly marker k defaults to the global coordinate system if it is not
specified.
Format
DZ(i[,j][,k])
Arguments
Extended Definition
Mathematically, DZ is calculated as follows:
where:
is the displacement of marker i in the global coordinate system.
is the displacement of marker j in the global coordinate system.
is the unit vector along the z-axis of marker k.
ExamplesVARI ABLE/ 1, FUNCTI ON=DZ( 21, 11, 32) **2
This VARIABLE statement specifies a user-defined, algebraically-determined state variable. Its value is
the square of the z-displacement of Marker 21 with respect to Marker 11 as computed in the coordinate
system of Marker 32.
See otherDisplacement available.
i The marker whose origin is being measured.
j The marker whose origin is the reference point for the displacement calculation. Set j=0 if you
want j to default to the global coordinate system while still specifying l.
k The marker in whose coordinates the z-component of the displacement vector is being
calculated. Set k = 0 if you want the results to be calculated along the z-axis of the global
coordinate system.
DZ Ri Rj zk=
Ri
Rj
zk
49EXPAdams/Solver (FORTRAN) Functions
EXP
-
8/22/2019 Solver Fortran Functions
49/148
The EXP function computes the value ea, where a is any expression.
Format
EXP(a)
Arguments
Examples
REQUEST/ 10, F2=EXP( WDTX( 21, 11, 11, 31) )
In its second column, REQUEST/10 stores the value:
eWDTX( 21, 11, 11, 31)
where WDTX (21,11,11,31) is the x-component of the accelerations of Marker 21 with respect to Marker
11 as expressed in the coordinate system of Marker 11. The time derivative is taken in the reference frame
of Marker 31.
See otherFORTRAN 77 available.
a Any valid function expression.
Number of arguments: 1
Adams/SolverAdams/Solver (FORTRAN) Functions
50
FIELD
-
8/22/2019 Solver Fortran Functions
50/148
The FIELD function returns component comp of a force due to FIELD/id as calculated in the coordinate
system of markerrm. If jflag is set to zero, the value that is returned is the force/torque acting on the I
marker of the FIELD. If jflag is set to 1, the value that is returned is the value acting on the J marker. Forresults that are in the global coordinate system, you can specify rm as zero.
Format
FIELD (id, jflag, comp, rm)
Arguments
Examples
REQUEST/ 1
, F2=FI ELD( 1001, 0, 2, 0) /, F3=FI ELD( 1001, 0, 3, 0) /, F4=FI ELD( 1001, 0, 4, 0)
This REQUEST statement stores the x-, y-, and z-component of the forces in FIELD/1001 in columns 2,
3, and 4, respectively. Adams/Solver (FORTRAN) calculates the forces at the I marker, and computes
results in the global coordinate system.
See otherElement-specific applied force available.
id An integer specifying the identification number of the FIELD.
jflag An integer flag specifying the FIELD connectivity marker at which the forces and torques
are computed.
0 = forces and moments at the I marker
1 = forces and moment at the J marker
comp An integer value that specifies the component of the FIELD force to be returned.
1 = Magnitude of the force
2 = x component of the force
3 = y component of the force
4 = z component of the force
5 = Magnitude of the torque
6 = x component of the torque
7 = y component of the torque8 = z component of the torque
rm The coordinate system in which the results are expressed. To return the results in the global
coordinate system, set rm = 0.
51FMAdams/Solver (FORTRAN) Functions
FM
-
8/22/2019 Solver Fortran Functions
51/148
The FM function returns the magnitude of the net translational force acting at marker i. All force and
constraint elements between markers i and j are included in the calculation of the force, unless a force is
an action-only type. To return the magnitude of the action-only forces acting at marker i, you should omitthe specification of marker j or specify it to be zero.
Format
FM(i[,j])
Arguments
ExamplesVARI ABLE/ 1, FUNCTI ON=FM( 23)
A user-defined state variable is specified by this VARIABLE statement. Its value is the magnitude of the
sum of all action-only forces acting at Marker 23.
VARI ABLE/ 1, FUNCTI ON=FM( 23, 11)
A user-defined state variable is specified by this VARIABLE statement. Its value is the magnitude of the
sum of all the applied and constraint forces at Marker 23 and acting between Markers 23 and 11.See otherGeneric force available.
i An integer that specifies the identifier of the marker at which the magnitude of the net force is
to be calculated.
j A second integer that specifies a marker identifier. All forces acting between the [i,j] pair are
included in the calculation. Set j = 0 or do not specify it if you are interested in action-only
forces.
Adams/SolverAdams/Solver (FORTRAN) Functions
52
FORCOS
h O COS f i l i C i i ifi d l h
-
8/22/2019 Solver Fortran Functions
52/148
The FORCOS function evaluates a Fourier Cosine series at a user-specified value x. The x0, a0, a1,...,a30
are parameters used to define the constants for the Fourier Cosine series.
Format
FORCOS (x, x0, w, a0, a1,...,a30)
Arguments
Extended Definition
The Fourier Cosine series is defined:
where the function are defined as:
The indexj has a range from 1 to n, where n is the number of terms in the series.
Examples
MOTI ON/ 1, J OI NT=21, TRANSLATI ON,, FUNCTI ON=FORCOS( TI ME, 0, 360D, 1, 2, 3, 4)
This MOTION statement defines a harmonic motion as a function of time. The motion has no shift, has
a fundamental frequency of 1 cycle (360D) per time unit, has a constant value of 1.0. The function
defined is:
x A real variable that specifies the independent variable. For example, if the independentvariable in the function is time, x is the system variable TIME.
x0 A real variable that specifies a shift in the Fourier Cosine series.
w A real variable that specifies the fundamental frequency of the series. Adams/Solver
(FORTRAN) assumes w is in radians per unit of the independent variable unless you use
a D after the value.
a0 A real variable that defines the constant bias term for the function.
a1,...,a30 The real variables that define as many as thirty-one coefficients for the Fourier Cosineseries.
F x ao aj Tj x xo +
j 1=
n
+=
Tj
Tj x xo j x xo cos=
53FORCOSAdams/Solver (FORTRAN) Functions
FORCOS = 1+2*COS( 1*360D*TI ME)+3*COS( 2*360D*TI ME)+4*COS( 3*360D*TI ME)
-
8/22/2019 Solver Fortran Functions
53/148
+4*COS( 3*360D*TI ME)
The curve is shown next.Curve of a Harmonic Motion Defined by FORCOS
See otherGeneral available.
Adams/SolverAdams/Solver (FORTRAN) Functions
54
FORSIN
The FORSIN function evaluates a Fourier Sine series at a user specified value x x a a a are
-
8/22/2019 Solver Fortran Functions
54/148
The FORSIN function evaluates a Fourier Sine series at a user specified value x. x0,a0,a1,...,a30 are
parameters used to define the constants for the Fourier Sine series.
Format
FORSIN (x, x0,w,a0,a1,...,a30)
Arguments
Extended Definition
The Fourier Sine series is defined:
where the funtions Tj are defined as:
Tj (x-x0) = sin {j* *(x-x0)}
The indexj has a range from 1 to n, where n is the number of terms in the series.
Examples
MOTI ON/ 1, J OI NT=21, TRANSLATI ON,, FUNCTI ON=FORSI N( TI ME, - 0. 25, PI , 0, 1, 2, 3)
This MOTION statement defines a harmonic motion as a function of time. The motion has a -0.25 second
shift, a fundamental frequency of 0.5 cycle ( radians or 180 degrees) per time unit, and no constant
value. The function defined is:
FORSI N = 0+SI N( *( TI ME+0. 25) )+2*SI N( 2 *( TI ME+0. 25) )+3*SI N( 3 *( TI ME+0. 25) )
x A real variable that specifies the independent variable. For example, if the independentvariable in the function is time, x is the system variable TIME.
x0 A real variable that specifies a shift in the Fourier Sine series.
w A real variable that specifies the fundamental frequency of the series. Adams/Solver
(FORTRAN) assumes is in radians per unit of the independent variable unless you use
a D after the value.
a0 A real variable that defines the constant bias term for the function.
a1,...,a30 The real variables that define as many as thirty-one coefficients for the Fourier Sine series.
F x a0 ajTj x x0
j 1=
n
+=
55FORSINAdams/Solver (FORTRAN) Functions
The curve is shown next.
Curve of a Harmonic Motioned Defined by FORSIN
-
8/22/2019 Solver Fortran Functions
55/148
Curve of a Harmonic Motioned Defined by FORSIN
See otherGeneral available.
Adams/SolverAdams/Solver (FORTRAN) Functions
56
FRICTION
The FRICTION function returns force and other friction data from the FRICTION statement. You can
-
8/22/2019 Solver Fortran Functions
56/148
The FRICTION function returns force and other friction data from the FRICTION statement. You can
use this function in only REQUEST and SENSOR function expressions.
Format
FRICTION (id, index)
Arguments
Friction Index
id An integer variable specifying the identification of a FRICTION statement from which
output data is requested.
INDEX An integer variable specifying the output component index to be returned. See the table
below for a list of component indices.
Index: Name: Description:
1 FFX Friction force along the x-axis of the JOINTs J marker
2 FFY Friction force along the y-axis of the JOINTs J marker
3 FFZ Friction force along the z-axis of the JOINTs J marker
4 FTX Friction torque about the x-axis of the JOINTs J marker
5 FTY Friction torque about the y-axis of the JOINTs J marker
6 FTZ Friction torque about the z-axis of the JOINTs J marker
7 x Friction coefficient along the x-axis of the JOINTs J marker
8 y Friction coefficient along the y-axis of the JOINTs J marker
9 z Friction coefficient along the z-axis of the JOINTs J marker
10 rx Friction coefficient about the x-axis of the JOINTs J marker
11 ry Friction coefficient about the y-axis of the JOINTs J marker
12 rz Friction coefficient about the z-axis of the JOINTs J marker
13 1 Effective friction coefficient at static friction (returns zero if sliding)
14 Vx Joint velocity at sliding surfaces along the x-axis of the JOINTs J marker
15 Vy Joint velocity at sliding surfaces along the y-axis of the JOINTs J marker
16 Vz Joint velocity at sliding surfaces along z-axis of the JOINTs J marker
17 Wx Joint angular velocity about the x-axis of the JOINTs J marker
18 Wy Joint angular velocity about the y-axis of the JOINTs J marker
19 Wz Joint angular velocity about the z-axis of the JOINTs J marker
57FRICTIONAdams/Solver (FORTRAN) Functions
20 CREEP X Static friction creep along the x-axis of the JOINTs J marker
Index: Name: Description:
-
8/22/2019 Solver Fortran Functions
57/148
Examples
Request / 101
, F2=FRI CTI ON ( 2, 1) / , F3=FRI CTI ON ( 2, 2) / , F4=FRI CTI ON ( 2, 3) /, F6=FRI CTI ON ( 2, 4) / , F7=FRI CTI ON ( 2, 5) / , F8=FRI CTI ON ( 2, 6) /
This REQUEST statement defines a user REQUEST that returns the friction forces associated with the
statement FRICTION/2. The second component of the user request contains the X component of the
friction-force vector resolved in the associated J marker coordinate system of the JOINT.
See otherElement-specific applied force available.
_ p g
21 CREEP_Y Static friction creep along the y-axis of the JOINTs J marker
22 CREEP_Z Static friction creep along the z-axis of the JOINTs J marker
23 CREEP_RX Static friction creep about the x-axis of the JOINTs J marker
24 CREEP_RY Static friction creep about the y-axis of the JOINTs J marker
25 CREEP_RZ Static friction creep about the z-axis of the JOINTs J marker
26 BETA Stiction transition factor
Caution: The FRICTION function is accessible only through the REQUEST and SENSOR function
expressions.
The FRICTION function evaluates to zero if the index corresponds to a force or velocity
which is not used by the corresponding friction model. For example, if FRICTION/2 from
above is applied on a translational joint, then FRICTION (2,1) would be zero because the
friction force is applied along the z axes of the joint.
Adams/SolverAdams/Solver (FORTRAN) Functions
58
FX
The FX function returns the x-component of the net translational force acting at marker i, as computed
-
8/22/2019 Solver Fortran Functions
58/148
in the coordinate system of marker k. All force and constraint elements acting between markers i and j
are included in the calculation of the force, unless a force is an action-only type force. To return the x-component of the action-only forces acting at marker i, you should omit specification of marker j or
specify it to be zero. Note that you can not specify marker k and omit marker j. In this case, you should
specify marker j to be zero.
Format
FX(i[,j][,k])
Arguments
Examples
VARI ABLE/ 1, FUNCTI ON=FX( 23, 0, 432)
A user-defined state variable is specified by this VARIABLE statement. Its value is FX(23,0,432). This
is the x-component of the sum of all the action-only forces acting at Marker 23 as computed in thecoordinate system of Marker 32.
See otherGeneric force available.
i An integer that specifies the identifier of the marker at which the magnitude of the net force is
to be calculated.
j A second integer that specifies a marker identifier. All forces acting between the [i,j] pair are to
be included in the calculation. Set j = 0 or do not specify it if you are interested in action-only
forces.k An integer that specifies the identifier of a marker (coordinate system) in which the x-component
of the force is to be returned. k defaults to the global coordinate system when it is not specified.
59FXFREQAdams/Solver (FORTRAN) Functions
FXFREQ
The FXFREQ function returns the modal frequency in cycles per user-defined time for the current mode
-
8/22/2019 Solver Fortran Functions
59/148
of the current FLEX_BODY when used in function expressions defining the CRATIO argument of a
FLEX_BODY. (Learn more about FLEX_BODY). FXMODE returns zero when used in otherexpressions.
Format
FXFREQ
Extended Definition
Adams/Solver (FORTRAN) evaluates each function expression used to define CRATIO of a
FLEX_BODY separately for each active mode of the FLEX_BODY (each mode has a CRATIO value).
FXFREQ returns the modal frequency of the mode for which CRATIO is being evaluated.
Examples
FLEX_BODY/ 1,, CRATI O = I F( FXFREQ- 100: 0. 01, 0. 1, i f ( FXFREQ- 1000: 0. 1, 1. 0, 1. 0) )
For a model using units of seconds for time, this example recreates the default modal damping schemeusing nested IF function expressions.
See otherFlexible body constants available.
Adams/SolverAdams/Solver (FORTRAN) Functions
60
FXMODE
The FXMODE function returns the mode number of the current mode of the current FLEX_BODY when
d i f ti i d fi i th CRATIO t f FLEX BODY FXMODE t
http://solver_fortran_statements.pdf/http://solver_fortran_statements.pdf/ -
8/22/2019 Solver Fortran Functions
60/148
used in function expressions defining the CRATIO argument of a FLEX_BODY. FXMODE returns zero
when used in other expressions. (Learn more on FLEX_BODY.)
Format
FXMODE
Extended Definition
Adams/Solver (FORTRAN) evaluates each function expression used to define CRATIO of a
FLEX_BODY separately for each active mode of the FLEX_BODY (each mode has a CRATIO value).
FXMODE returns the mode number of the mode for which CRATIO is being evaluated.
Examples
FLEX_BODY/ 1, CRATI O = STEP(TI ME, 0. 1, 1. 0, 1. 2, STEP(FXMODE, 5. 0, 0. 02, 10, 0. 2) )
This example specifies modal damping that varies both with time and mode number, such that all modes
have 100% critical damping untiltime = 0.1, after which:
Modal damping decreases smoothly to between 2% and 20% of modal damping at time = 1.2.
Mode numbers 1 through 5 reach 2% modal damping.
Mode numbers 6 through 9 reach modal damping values smoothly distributed between 2% and
20%.
Mode numbers 10 and up reach 20% modal damping.
See otherFlexible body constants available.
61FYAdams/Solver (FORTRAN) Functions
FY
The FY function returns the y-component of the net translational force acting at marker i, as computed
in the coordinate system of marker k All force and constraint elements acting between markers i and j
http://solver_fortran_statements.pdf/http://solver_fortran_statements.pdf/ -
8/22/2019 Solver Fortran Functions
61/148
in the coordinate system of marker k. All force and constraint elements acting between markers i and j
are included in the calculation of the force, unless a force is an action-only type force. To return the y-component of the action-only forces acting at marker i, you should omit specification of marker j or
specify it to be zero. Note that you can not specify marker k and omit marker j. In this case, you should
specify marker j to be zero.
Format
FY(i[,j][,k])
Arguments
Examples
SFORCE/ 1, I =132, J =234, TRANSLATI ON, ACTI ONONLY, FUNCTI ON=- 0. 3*FY( 677, 866)
This SFORCE statement defines a translation, action-only force acting at Marker 132. The force isdirected along the z-axis of Marker 234. The value of the force is -0.3 times the y-component of the net
force along the global y-axis, acting at Marker 677. All forces acting between Markers 677 and 866 are
included in this calculation.
See otherGeneric force available.
i An integer that specifies the identifier of the marker at which the magnitude of the net force is to
be calculated.
j A second integer that specifies a marker identifier. All forces acting between the [i,j] pair are to
be included in the calculation. Set j = 0 or do not specify it if you are interested in action-only
forces.k An integer that specifies the identifier of a marker (coordinate system) in which the y-component
of the force is to be returned. k defaults to the global coordinate system when it is not specified.
Adams/SolverAdams/Solver (FORTRAN) Functions
62
FZ
The FZ function returns the z-component of the net translational force acting at marker i, as computed in
the coordinate system of marker k All force and constraint elements acting between markers i and j are
-
8/22/2019 Solver Fortran Functions
62/148
the coordinate system of marker k. All force and constraint elements acting between markers i and j are
included in the calculation of the force, unless a force is an action-only type force. To return the z-component of the action-only forces acting at marker i, you should omit specification of marker j or
specify it to be zero. Note that you can not specify marker k and omit marker j. In this case, you should
specify marker j to be zero.
Format
FZ(i[,j][,k])
Arguments
Examples
SFORCE/ 1, I =23, J =11, TRANSLATI ON, ACTI ONONLY, FUNCTI ON=STEP5( FX( 34) , - 1. 5, - 200, 1. 5, 200)
This SFORCE statement defines a translational, action-only, nonlinear force. The force is directed alongthe z-axis of Marker 11. The value of the force is a 5th order step function (see STEP5). The independent
variable for the STEP5 function is FZ(34), the net force acting along the global z-axis at Marker 34. Since
no j marker is specified, only action-only forces acting at Marker 34 are included in the calculation of
FZ().
See otherGeneric force available.
i An integer that specifies the identifier of the marker at which the magnitude of the net force is to
be calculated.
j A second integer that specifies a marker identifier. All forces acting between the [i,j] pair are to
be included in the calculation. Set j = 0 or do not specify it if you are interested in action-only
forces.k An integer that specifies the identifier of a marker (coordinate system) in which the z-component
of the force is to be returned. k defaults to the global coordinate system when it is not specified.
63GFORCEAdams/Solver (FORTRAN) Functions
GFORCE
The GFORCE function returns the component comp of the force in GFORCE/id in the coordinate system
of marker rm. If jflag is set to zero, Adams/Solver (FORTRAN) returns the value of the force/torque that
-
8/22/2019 Solver Fortran Functions
63/148
of marker rm. If jflag is set to zero, Adams/Solver (FORTRAN) returns the value of the force/torque that
acts on the I marker of GFORCE/id. If jflag is set to 1, Adams/Solver (FORTRAN) returns the value thatacts on the J marker. To obtain results in the global coordinate system, you can specify rm as zero.
Format
GFORCE (id, jflag, comp, rm)
Arguments
Examples
GFORCE/ 1, I =516, J =34, RM=23, FX=- 0. 3*GFORCE( 1, 0, 4, 23) /, FY=0/, FZ=I MPACT( DZ( 516, 0, 23) , VZ( 516, 0, 23, 23) , 4. 6, 1e5, 1. 5, 10, 0. 01)
This GFORCE statement defines a force acting at Marker 516. The components of the force are defined
along the x-, y-, z-axes of Marker 23.
The x-component of the force is -0.3 times the z-component of the force.
The z-component of the force is defined as an impact force (see IMPACT ) that is a function of the
displacement and velocity of Marker 516, as seen by Marker 23.
See otherElement-specific applied force available.
id An integer specifying the identification number of the GFORCE.
jflag An integer flag specifying the GFORCE connectivity marker at which the forces and
torques are computed.
0 = forces and moments at the I marker
1 = forces and moment at the J marker
comp An integer value that specifies the component of the GFORCE to be returned.
1 = Magnitude of the force
2 = x component of the force
3 = y component of the force
4 = z component of the force
5 = Magnitude of the torque
6 = x component of the torque
7 = y component of the torque8 = z component of the torque
rm The coordinate system in which the results are expressed. To return the results in the
global coordinate system, set rm = 0.
Adams/SolverAdams/Solver (FORTRAN) Functions
64
HAVSIN
The HAVSIN function defines a haversine function. It is used most often to represent a smooth transition
between two functions.
-
8/22/2019 Solver Fortran Functions
64/148
Format
HAVSIN (x, x0, h0, x1, h1)
Arguments
Extended Definition
The HAVSIN function is used most often to represent a smooth transition between two functions (see the
figure below). As an example, a HAVSIN may be used to smoothly ramp up the motion in a joint from
h0 to some constant value h1.
Haversine Function
The equation defining HAVSIN is:
a = (h0 + h1)/2
b = (h1 - h0)/2
c = (x - x0)/(x1 - x0)
x The independent variable.
x0 A real variable that specifies the x value at which the haversine function begins.
x1 A real variable that specifies the x value at which the haversine function ends.
h0 The initial value of the haversine function.
h1 The final value of the haversine function.
65HAVSINAdams/Solver (FORTRAN) Functions
HAVSIN
ho x x0
a b c --- sin+ x x x
=
-
8/22/2019 Solver Fortran Functions
65/148
Examples
MOTI ON/ 1, J OI NT=21, VELOCI TY, FUNCTI ON=HAVSI N( TI ME, 1, 0, 2, 1)
This MOTION statement defines a smooth transition in velocity from time 1 to time 2. Note that the
motion is specified in velocity rather than displacement.
See otherGeneral available.
HAVSIN a b c 2---
sin+ x
0x x
1
h1 x x1
=
Tip: The HAVSIN function behavior is similar to the STEP function. It has a discontinuous
second derivative and therefore is not recommended for use in displacement level motions.
Adams/SolverAdams/Solver (FORTRAN) Functions
66
IF
The arithmetic IF function allows you to conditionally define a function expression.
IF (expression 1: expression 2 expression 3 expression 4)
-
8/22/2019 Solver Fortran Functions
66/148
IF (expression 1: expression 2, expression 3, expression 4)
Adams/Solver (FORTRAN) evaluates expression 1.
If the value of expression 1 is less than zero, the arithmetic IF is evaluated using expression 2.
If the value of expression 1 is zero, the arithmetic IF is evaluated using expression 3.
If the value of expression 1 is greater than zero, the arithmetic IF is evaluated using expression 4.
The arithmetic IF function allows you to conditionally define a function expression.
Format
IF (test : lt, eq, gt)
Arguments
test Any valid function expression. Adams/Solver (FORTRAN) evaluated the test expression to
determine which branch of the arithmetic IF, lt, eq, or gt will be selected.
lt Any valid function expression. If the value of the test expression is less than zero,
Adams/Solver (FORTRAN) evaluates the lt expression and the IF function takes the value
of lt. Otherwise, the lt expression is not evaluated.
eq Any valid function expression. If the value of the test expression is equal to zero,
Adams/Solver (FORTRAN) evaluates the eq expression and the IF function takes the value
of eq. Otherwise, the eq expression is not evaluated.
gt Any valid function expression. If the value of the test expression is equal to zero,
Adams/Solver (FORTRAN) evaluates the gt expression and the IF function takes the value
of gt. Otherwise, the gt expression is not evaluated.
Caution: When using an arithmetic IF function, ensure that the resulting function is continuous. If
the function is discontinuous, Adams/Solver (FORTRAN) may fail to find a solution when
it encounters the discontinuity. Even the greater reliability can be achieved if continuity ofthe first derivative can be ensured.
Much greater care is required when using an arithmetic IF function to define a MOTION
element. In this case, a continuous second derivative is also required. The use of arithmetic
IF functions to define MOTION is best avoided.
67IFAdams/Solver (FORTRAN) Functions
Examples
SFORCE/1, I=20, J=31,
, FUNCTION=-6*IF(VR(10,31): 0, 0, VR(10,31)**3)
-
8/22/2019 Solver Fortran Functions
67/148
This function is interpreted as follows:
If the radial velocity (see VR) between Markers 20 and 31 is less than or equal to zero, the value
of SFORCE/1 is zero.
If the radial velocity between Markers 10 and 31 is greater than zero, the value of SFORCE/1 is
-6*VR(10,31)**3.
Adams/SolverAdams/Solver (FORTRAN) Functions
68
IMPACT
IThe IMPACT function models collisions.
-
8/22/2019 Solver Fortran Functions
68/148
Format
IMPACT (x, , x1, k, e, cmax, d)
Arguments
Extended Definition
The IMPACT function activates when the distance between the I and the J markers falls below a nominal
free length (x1), that is, when two parts collide. As long as the distance between the I and J markers is
greater than x1, the force is zero. An example of a system you can model with the IMPACT function is a
ball falling towards the ground. Figure3 below shows the free length value x1 at which the IMPACT
force turns on.
The force has two components, a spring or stiffness component and a damping or viscous component.The stiffness component is proportional to k, and is a function of the penetration of the I marker within
the free length distance from the J marker. The