$ $ THIS ALTER IS CONFIDENTIAL AND A TRADE SECRET OF THE $ MSC.Software CORP. THE RECEIPT OR POSSESSION OF $ THIS ALTER DOES NOT CONVEY ANY RIGHTS TO REPRODUCE OR $ DISCLOSE ITS CONTENTS, OR TO MANUFACTURE, USE, OR SELL $ ANYTHING HEREIN, IN WHOLE OR IN PART, WITHOUT THE $ SPECIFIC WRITTEN CONSENT OF THE MSC.Software CORPORATION. $ $ $ ortx7a.v706 -- 11-30-98 $ $ file ortx7a.v69 compile sedceig nolist noref $ $ driver for mass scaling of eigenvectors, sol 107 $ phit*m*phi=I alter 'ceigrs' $ call orthogx cmdd,cbdd,ckdd,cphd// $ phi returned mass normalized $ allow symmetric formulation for fluid-structure eigensolutions compile gma nolist noref $ $ $alter 'ACSYML=(SOLTYP' ,'' $ add complex eigenvalues $ACSYML=(SOLTYP='DIRECT' AND (APP='FREQRESP' or app='ceigen') $ AND ACSYM='YES' AND FS) $ $ alter 'acsyml.*freqresp','' $ add complex eigenvalues ACSYML=((APP='FREQRESP' or app='ceigen') AND ACSYM='YES' AND FS) $ $ $ file orthogx.v69 compile orthogx nolist noref $ subdmap orthogx m,b,k,phi// $ $ scale complex eigenvectors wrt mass, symmetric systems $ phi is returned modified. If unsymmetric, returns with warning $ message, no other action. type parm,,char4,y,debug='no' $ paraml phi//'presence'////s,n,nophi $ if (nophi=-1) return $ mpyad m,phi,/mphi $ add phi,mphi/diagptmp///1 $ element mpy, p**[m*p] paraml phi//'trailer'/2/s,n,na $ number of rows in eigenvectors matgen, /ua/6/na/0/na $ unit vector mpyad ua,diagptmp,/tzt/1 $ sum columns trnsp tzt/tz $ diagonal tz/tz1/'whole'/0.5 $ sqrt|xii| $ diagonal tz1/tzinv/'whole'/-1.0 $ inverse matmod tzinv,,,,,/tzz,/28 $ diagonalize mpyad phi,tzz,/phi1 $ equivx phi1/phi/always $ replace old vectors if (debug='yes') then message //'user information message. Scaling factors for'/ ' eigenvectors are:' $ matprn tzinv// $ endif $ return $ end $ orthogx