$ $ 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. $ $ alter cmsefa.v705 - provide strain energy fractions for component modes $ (Component Mode Strain Energy Fractions) $ compile super3 list alter 'sedisp.*ug' if(seid=0)then $ $ $ get generalized stiffness and store $ lamx ,,ol1/lamamat/-1 $ matgen ,/partnlam/6/5/4/1 $ column 5 = generalized stiffness partn lamamat,partnlam,/,,genk,/1 $ type parm,,i,n,storit=0 $ call dbstore genk,,,,//0/0/'DBALL'/s,storit $ endif $ $ alter 'SEDR.*EMAPX,CASEX,PCDB,DRLIST,XYCDB,SLT,ETT.*UGD.*ULS' type parm,,i,y,prtaset=-1 $ $ $calculate strain energy by dof for component modes $ paraml uset//'uset'//////'Q'/s,n,noqset $ message //' ' $ message //'the following output is from the alter to calculate strain'/ 'energy contributions for component modes' $ MESSAGE //' ' $ if(noqset<=0)then $ message //' no q-set for current superelement' $ else $ $ q-set defined $type db,kaa $ v2001 type parm,,i,n,gotit $ call dbfetch /genk,,,,/0/0/0/0/s,gotit $ $ $ calculate for complete A-set $ mpyad uls,kaa,/utk/1 $ trnsp utk/utkt $ add utkt,uls/strana/(.5,0.)//1 $ strain energy in A-set paraml uset//'uset'//////'a'/s,n,noasett $ matgen ,/aone/6/noasett//noasett $ trnsp aone/aonet $ mpyad genk,aonet,/scalita $ trnsp scalita/scalitat $ add strana,scalitat/straina/(2.,0.)//2 $ mpyad straina,aone,/totala/1 $ IF(PRTASET<>-1)THEN $ message //' ' $ message //'the following is the total of the strain energy'/ ' fractions for this superelement' $ message //' ' $ matprn totala// $ message //'the following output is the strain energy fractions'/ ' for the A-set for this superelement' $ message //' ' $ matgpr gpls,uset,sils,straina//'h'/'a' $ endif $ upartn uset,straina/strainq,,,/'a'/'q'/'t'/1 $ upartn uset,aone/qone,,,/'a'/'q'/'t'/1 $ mpyad strainq,qone,/totalq/1 $ message //' ' $ message //'the following is the total of the strain energy'/ ' fractions for the component modes of this superelement' $ message //' ' $ matprn totalq// $ message //'the following output is the strain energy fractions'/ ' for the component modes for this superelement' $ message //' ' $ matgpr gpls,uset,sils,strainq//'h'/'q' $ endif $