solver fortran functions

Upload: maliq12

Post on 08-Aug-2018

213 views

Category:

Documents


0 download

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