Next: , Previous: Second Derivatives, Up: Vibrational Analysis


10.4 Normal Modes

There are two ways that normal modes are stored internally in CONGEN. The most common usage is as one double precision mass weighted array. A series of such arrays usually span an orthonormal basis (as would be the case upon diagonalization). The second method is to represent a normal mode as three non mass weighted coordinate displacement arrays, stored in single precision. The program automatically converts between them as necessary. Whenever interconversion is to be done, a "magnitude specification" may be given. This specification requires a step type and step length. The valid step types are; FACT (simple factor), TEMP (put mode at this temperature), KCAL (put in the specified Kcals), and RMS (step along until this RMS is reached). When specifying TEMP or KCAL, a terminal frequency may be specified (default TFREQ is 5.0) which prevents excessive stepping along very low, or translation-rotation modes.

The procedure used in going from double precision to coordinate displacement arrays is:

  1. Normalize double precision vector (unless NONOrm keyword is used).
  2. Mass weight by dividing by root(mass) (unless NOMA keyword is used).
  3. Multiply by appropriate scale factor from step type an length.

To convert from single precision into double precision, the procedure is:

  1. Save inner product (as initial step length).
  2. Mass weight by multiplying by root(mass) (unless NOMA keyword is used).
  3. Normalize vector (unless NONO keyword is used).
  4. Compute scale factor using initial step length and step type.

Whenever a magnitude-specification is called for, some interconversion will take place. The conversion from double precision to coordinate displacements takes place in the subcommands:

                     PRINt NORMal-modes
                     WRITe TRAJectory
                     PROJect
                     FILL
                     EXPLore

The interconversion from coordinated displacements to double precision takes place in the subcommands:

                     PROJect
                     EDIT NORMal-modes

Normal modes are always stored in double-precision. Only one mode is represented as coordinate displacements (at any one time), and its use is usually temporary. The arrays for this one coordinate displacement mode are XNORM, YNORM, and ZNORM. These arrays can be filled using the FILL command and then used in other pars of CONGEN.

The Normal Mode data structure of double precision arrays is local to the Vibrational analysis section of CONGEN, and the storage space for these arrays is released when exiting to CONGEN via the END command.