11.01.2013 Views

NX Nastran DMAP Programmer's Guide - Kxcad.net

NX Nastran DMAP Programmer's Guide - Kxcad.net

NX Nastran DMAP Programmer's Guide - Kxcad.net

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

1409<br />

SMPYAD<br />

Matrix series multiply and add<br />

2. The matrices are postmultiplied together from right to left; i.e., the first product<br />

calculated is the product of matrix n-1 and matrix n. This implies that all purged<br />

inputs must be to the right. If the transpose flag is set for the last unpurged matrix,<br />

it is ignored without warning.<br />

3. If the input matrices are incommensurate (for example, if the number of columns<br />

in A is not equal to the number of rows in B) or incompatible, then the User Fatal<br />

Message 5423 “ATTEMPT TO MULTIPLY INCOMPATIBLE MATRICES” is<br />

issued.<br />

4. The method used by this module is the same as for the MPYAD module except in<br />

case of a triple product, where [B] and [F] are symmetric and [A] = [C] and TA = 1;<br />

i.e., [X] = [A] T [B][A] ± [F], then a method that is more efficient than two equivalent<br />

MPYAD operations will be employed. See Example 3. However, two equivalent<br />

MPYAD operations will be selected automatically if two MPYADS are more<br />

efficient. (Two MPYADs can be forced by setting system cell 129 to 1, with<br />

PUTSYS(1,129) specified just before the SMPYAD module.)<br />

5. If any of the matrices involved in the product do not exist, then the module does<br />

not create any output.<br />

Examples:<br />

1. Compute [X] = [A] [B] T [C] - [F]<br />

SMPYAD A,B,C,,,F/X/3/1/-1/0/0/1 $<br />

2. Compute [Z] = -[U] T [V] T [W] T [X] T [Y]<br />

SMPYAD U,V,W,X,Y,/Z/5/-1/0/0/1/1/1/1 $<br />

3. Compute<br />

[ φ]<br />

T [ M]<br />

[ φ]<br />

SMPYAD PHI,MAA,PHI, ,,/X/3////1////6 $

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!