GTCMAT computes the compliance matrix for a set of markers in an Adams Solver model.
Use
Called By
CONSUB
Prerequisite
Call to ANALYS to perform a static analysis
Calling Sequence
CALL GTCMAT (nmid, mid, ndim, c, istat)
Input Arguments
nmid | An integer variable that specifies the number of marker, mid. nmid must be greater than zero and less than or equal to 100. |
mid | An integer array containing a list of marker identifiers. GTCMAT computes the compliance matrix for these markers. The markers can be on any part except ground, and can lie anywhere on the parts. mid can contain more than one marker on a particular part. Each part with a marker listed in mid must also have a center-of-mass (CM) marker defined in the dataset. |
ndim | An integer variable specifying the number of rows in c. ndim must be at least 6*nmid, since each marker results in six rows. You must dimension c in CONSUB with exactly ndim rows (and at least 6*nmid columns). |
Output Arguments
c | A double-precision, two-dimensional array containing the compliance matrix for the markers specified in mid. The compliance terms are in the following directions: global x, y, and z displacements and small rotations about the global x-, y-, and z-axes. You must dimension c large enough to hold six rows and six columns for each marker, and assign ndim to be the number of rows in the matrix. To compute a matrix for three markers, for example, you should dimension c to be 18 by 18, and set ndim =18. The same matrix could also be used to compute a matrix for just one marker. In this case, you would still set ndim to 18, but GTCMAT fills only the elements in the first six rows and columns. |
istat | An integer variable containing a status flag. If istat = 0, GTCMAT has successfully computed the compliance matrix. If istat < 0, GTCMAT has not computed the compliance matrix because of an error. istat can have one of the following values:  |
Extended Definition
The compliance matrix for a system, C, is defined as the partial derivatives of displacements with respect to applied forces:
Note that the
compliance matrix is the inverse of the stiffness matrix for a system (which is defined as the partial derivatives of the applied forces with respect to the displacements). If a system is assumed to be linear, the compliance matrix can be used to predict the system movement due to force inputs:

From this perspective, matrix element cij is the displacement of system degree of freedom i due to a unit force at degree-of-freedom j.
In order for the system to have meaningful compliances, it must have one or more degrees of freedom. A kinematic (zero-degree-of-freedom) model does not move in response to applied forces, so by definition the compliances are zero. GTCMAT returns an error if run on a kinematic model.
GTCMAT returns a matrix containing six columns and six rows for each marker requested. The rows and columns are in groups of six, appearing in the same order as the markers are listed in mid. The rows correspond to global x, y, and z translations and global AX, AY, AZ rotations. The columns correspond to global x, y, and z forces and torques about the global x, y, and z axes.
If, for example, you specify two marker identifiers in mid, GTCMAT returns a 12 x 12 matrix. Element c(2,4) is the change in the global y displacement of the first marker due to a unit torque about the global x-axis applied at the first marker (assuming a linear system). Element c(2,8) is the change in the global y displacement of the first marker due to a global Y force applied at the second marker.
Using Adams Solver (FORTRAN)
When using Adams Solver (FORTRAN), GTCMAT computes the compliance matrix by inverting the Jacobian from an Adams Solver static solution. Because of this, you must first call ANALYS to perform a static solution, before calling GTCMAT. GTCMAT returns an error if you have not first run a static analysis.
Using Adams Solver (C++)
When using Adams Solver (C++), GTCMAT computes the compliance matrix as follows:
1. A linearization of the system is performed (the linearization does not change the current state of the system) and a standard input-output representation is obtained:
where the output y consists of the displacements of the MARKERs and the input U consists of applied forces at the MARKERs’ locations. For more information on the state vector X and the state matrices A,B, C, see the LINEAR command.
2. Solving for X we find that
Putting this result into the equation for y we obtain:
3. The compliance matrix C is given by the expression:
Notice that the term

is due to perturbations of the velocities and accelerations of the system at the operating point, therefore it can be neglected.
The GTCMAT subroutine can be called during a dynamic or a quasi-static simulation.
Caution: | If you don't dimension matrix c properly or don't assign the proper value to ndim, GTCMAT can overwrite other memory. |