UCOVAR

UCOVAR is used with UCOSUB, to tell Adams Solver the part states that are used in the user-defined constraint.

Use

Called By

UCOSUB

Prerequisite

UCOSUB iflag parameter equals is not zero.

Calling Sequence

CALL UCOVAR (id, nparts, lparts, nvars, lvars)

Input Arguments

 
id
An integer variable that specifies the ID of the UCON statement for which you are defining the variables. Use the identifier in the UCOSUB argument list.
nparts
An integer variable that specifies the total number of elements in the array lparts. The value of nparts must equal the value of nvars.
lparts
An integer array that lists the part identifiers corresponding to the variable types in lvars. The number of part identifiers in lparts must equal the number of integer codes in lvars. Thus the lparts and lvars arrays must be equal in length.
nvars
An integer value that indicates the total number of integer codes in lvars. The value of nvars must equal the value of nparts.
Note that the tens digit is one for displacement codes and two for velocity codes. Also, note that the ones digit indicates a translational or a rotational component with an integer from one to six. All translational variable values refer to the motion of the part center-of-mass, and all rotational variable values refer to the rotation of the principal axes, with respect to the ground reference frame. The number of integer codes in lvars must equal the number of part identifiers in lparts. Therefore, the lvars and lparts arrays must be equal in length.
lvars
An integer array that contains the integer codes that identify the variables involved in the constraint. The table below defines the codes that lvars can contain.

Extended Definition

UCOVAR tells Adams Solver which of the principal axes coordinates are used in the user-defined constraint. Adams Solver subsequently passes these to the evaluation subroutine UCOSUB in the array q. UCOSUB should call UCOVAR in response to a true initialization flag (iflag). For an example of a UCOSUB evaluation subroutine that calls UCOVAR, see UCOSUB.
 
Caution:  
The arrays lparts and lvars can contain as many as thirty values. Don't attempt to load and pass these two arrays with more than thirty values in each.
When selecting the displacements or the velocities of the part principal axes for the constraint, remember that the part principal axes are not always identical to those of the part center-of-mass marker (cm). The following list summarizes the circumstances in which the part principal axes may differ from those of the part center-of-mass marker.
When the PART statement does not include the CM argument, the principal axes default to the body coordinate system.
Whenever the center-of-mass marker z-axis is parallel to the z-axis of the ground reference frame at time zero, Adams Solver permutes the internal representation of the principal axes by 90-degree rotations, to avoid an Euler matrix singularity.
If the IP argument in the PART statement includes products of inertia, Adams Solver computes the inertial representation of the principal axes so that the products of inertia all become zero.
When specifying an IM marker, Adams Solver computes the principal axes, which may or may not be the axes of the cm marker.