www.kxcad.net Home > CAE Index > MSC Software Index > Adams MD R2 Index
The DMPSUB evaluation subroutine computes the modal damping ratios for a FLEX_BODY statement (C++ or FORTRAN). DMPSUB is optional. You need it only if you want custom damping that is not the same for all modes, or if the modal damping changes with time.
An integer variable that provides the identifier of the FLEX_BODY statement requesting information from the DMPSUB. From the identifier, Adams/Solver automatically knows other information (such as the par argument) available in the corresponding statement. A double-precision array of constants taken, in order, from the USER parenthetical list of the FLEX_BODY statement. An integer variable that indicates the number of constants specified in the USER parenthetical list. The primary purpose of npar is to provide the DMPSUB evaluation subroutine with the number of values stored in the par array. The current integrator step size. This is useful if you are using damping to prevent integration problems.
An array of damping ratios as a fraction of critical damping. There must be one value computed for each of the modes.To control the modal damping of individual modes using a user-written subroutine, use CRATIO=USER according to Adams standard practice. The damping ratios for the selected modes are obtained through a call to the DMPSUB subroutine. For a model using units of seconds for time, this example illustrates:The following statement defines the constants Adams/Solver is to pass to the DMPSUB evaluation subroutine:FLEX_BODY/1, I=101, J=201
, CRATIO=USER(.01,100,.1,1000,1)typedef void adams_c_DMPSUB(const struct sAdamsCratio* flex, double TIME, const double* FREQS, int NMODE, double STEPSIZE, double* CRATIOS);* FLEX_BODY -----------------------------------------------------------------