$ V70.5 $ modified 12/16/99 by Jack Castro to fix error if TEMP(load) is used. $ Directions: Insert PARAM,TEMPSET in bulk data with the value of the $ temperature load set which is called out on the appropriate LOADCYN entry. $ $ 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. $ $ $ $ cygyroa.v69 - updated for v69 -- 9-25-96 $ $ tested on system built on 3-14-95 VERSION 68.2 $ $*******************************************************************************$ $ ALTER FOR SOL 114 TO INCLUDE GYROSCOPIC TERMS. $ $ THE ALTER WILL ADD CENTRIPETAL, CORIOLIS, AND DIFFERENTIAL STIFFNESS $ TERMS TO THE SUPERELEMENT STIFFNESS AND DAMPING MATRICES. TO USE THIS $ ALTER THE USER MUST SUPPLY A RFORCE FOR EACH SUPERELEMENT, INCLUDING $ THE RESIDUAL STRUCTURE ( SEID=0 ). THE COORDINATE $ SYSTEM REFERENCED ON THE RFORCE CARD MUST BE CENTERED ON THE AXIS OF $ ROTATION FOR THE SUPERELEMENT. THE GRID ID ENTRY IS IGNORED FOR THE $ CALCULATION OF THE GYROSCOPIC TERMS. THE ROTATION IS ASSUMED TO BE $ ABOUT THE REFERENCED COORDINATE SYSTEM (CID) ORIGIN, THE MAGNITUDE (A) $ AND ROTATION VECTOR COMPONENTS (N1, N2, & N3) DETERMINE THE ORIENTATION. $ $ ONLY THE ZERO HARMONIC SHOULD BE USED IN THIS STEP OF THE PROCEDURE. $ OTHER HARMONICS MAY BE USED IN THE RESTARTS. $ $ AFTER THIS INITIAL STATIC RUN THE MODEL CAN BE RESTARTED IN ANY $ CYCLIC SOLUTION SEQUENCE AND THE GYROSCOPIC EFFECTS WILL BE INCLUDED. $ $ THE ABOVE PROCEDURE RESULTS IN A RESTART INWHICH REFORMULATION OF $ THE SUPERELEMENT MATRICES IS NOT PERFORMED. REFORMULATION IS NORMALLY DONE $ WHEN THE USER CHANGES THE GEOMETRY, ELEMENT OR MATERIAL PROPERTIES, OR $ ADDS GRIDS OR SCALAR POINTS. IF REFORMULATION IS DONE ( SEMA ) THEN $ THE GYROSCOPIC TERMS WILL NOT BE INCLUDED IN THE SUPERELEMENT MATRICES. $ $ IF SPEED DEPENDENT DIFFERENTIAL AND GYROSCOPIC TERMS ARE REQUIRED IN THE $ RESTART, THEN PARAMETER DEPEND SHOULD BE SET TO -1. IF THIS OPTION IS $ ACTIVATED, THEN THE RESTART MUST NOT HAVE MASS DEPENDENT LOADS (I.E. NO $ GRAVITY LOADING) BECAUSE THE MASS MATRIX IS MODIFIED AND THE RESULTING $ LOADS WILL BE INCORRECT. $ $ ALTER DEVELOPED BY DAVID BELLA FOR THE MACNEAL-SCHWENDLER CORPORATION, $ AUGUST, 1992. $ $*******************************************************************************$ $ echooff $ compile cycmode $ alter 1 $ putsys (0,192) $ $ COMPILE CYCSTATX $ $ALTER 44 $ V67 $ALTER 51 $ V68 $alter 'if.*(.*dbdict\>=1.*).*call.*dbdict1' alter 'call.*super3' $ TYPE DB SLIST $ TYPE PARM,,I,N,LPFLG=0,NOUP $ TYPE PARM,,I,N,SCNDRY=+1,EXTRN=+1 $ TYPE PARM,,I,Y,DEPEND= 0 $ TYPE PARM,,RS,N, OMEGA= 0. $ TYPE PARM,,CS,N, SCALE $ $ $ PREPARE DELETE LIST $ FILE HISTS=APPEND $ MATGEN ,/TMPMGG/1/2 $ MATGEN ,/TMPBGG/1/2 $ MATGEN ,/TMPKGG/1/2 $ $ RESTART TMPMGG,,/HISTS $ RESTART TMPBGG,,/HISTS $ RESTART TMPKGG,,/HISTS $ $ $ LOOP ON SUPERELEMENTS $ SEID=-1 $ RE-INITIALIZE FOR SEP2DR $ DO WHILE ( LPFLG >= 0 ) $ $ IF ( RSONLY ) THEN $ CHECK FOR EXISTENCE OF SUPERELEMENTS $ LPFLG=-1 NOUP=-1 SEID=0 $ ELSE $ DO SEP2DR WHEN SUPERELEMENTS EXIST. $ SEP2DR SLIST,EMAP//S,N,SEID/S,N,PEID//S,N,LPFLG///// S,N,NOUP/S,N,SCNDRY/S,N,EXTRN/S,N,NOMR/'ALL' $ $ ENDIF $ $ MESSAGE //' '/ $ MESSAGE //' USER DMAP INFORMATION MESSAGE - DIFFERENTIAL'/ $ MESSAGE //' STIFFNESS AND GYROSCOPIC EFFECT GENERATION'/ $ MESSAGE //' AND ASSEMBLY FOR SUPERELEMENT'/ SEID $ MESSAGE //' '/ $ $ IF ( SCNDRY = -1 ) THEN $ $ MESSAGE //' '/ $ MESSAGE //' USER DMAP WARNING MESSAGE - SECONDARY'/ ' SUPERELEMENTS'/ $ MESSAGE //' MUST BE IDENTICAL ELEMENTS (NOT MIRROR) '/ ' WITH LOADING'/ $ MESSAGE //' AND DISPLACEMENTS IDENTICAL TO THE PRIMARY'/ ' SUPERELEMENT'/ $ MESSAGE //' '/ $ $ ELSE $ $ $ SET QUALIFIERS $ CALL SETQ CASES//SEID/PEID/S,MTEMP/S,K2GG/S,M2GG/ S,B2GG/S,MPC/S,SPC/S,LOAD/S,DEFORM/S,TEMPLD/ S,P2G/S,DYRD/S,METH/S,MFLUID $ $ PARAML GPECT//'PRES'////S,N,NOGPECT $ IF ( NOGPECT >= 0 ) THEN $ $ $ $ CALCULATE CENTRIPETAL AND CORIOLIS TERMS $ CALL CORICEN SLT,BGPDTS,EQEXINS,CSTMS,SILS,MJJ/ KCJJ,BRJJ/S,OMEGA $ $ IF ( OMEGA = 0. ) THEN $ $ MESSAGE //' '/ $ MESSAGE //' USER WARNING: NO RFORCE SPECIFIED,'/ $ MESSAGE //' GYROSCOPIC TERMS WERE NOT'/ $ MESSAGE //' ADDED TO STRUCTURAL MATRICES.'/ $ MESSAGE //' '/ $ $ ENDIF $ $ $ $ CALCULATE DIFFERENTIAL STIFFNESS $ $message //'before emg...TEMPLD='/templd $ type parm,,i,y,tempset $ $message //'before emg...TEMPSET='/TEMPSET $ EMG EST,CSTMS,MPTS,DIT,,CYUG,ETT,EDT,,,BGPDTS,GPSNTS,,,,/ KDELM,KDDICT,,,,/ 1/0/0//1//TEMPSET/DEFORM//////1/ $ EMA GPECT,KDDICT,KDELM,BGPDTS,SILS,CSTMS,,/KTJJ,/ $ PARAML KTJJ//'NULL'////S,N,NOKTJJ $ $ IF ( NOKTJJ < 0 ) THEN $ $ MESSAGE //' '/ $ MESSAGE //' USER WARNING: NO LOADING SPECIFIED,'/ $ MESSAGE //' DIFFERENTIAL STIFFNESS TERMS'/ $ MESSAGE //' WERE NOT ADDED TO STRUCTURAL'/ $ MESSAGE //' MATRICES.'/ $ MESSAGE //' '/ $ $ ENDIF $ $ $ ADD DIFFERENTIAL AND CENTRIPETAL TERMS $ ADD5 KTJJ,KCJJ,,,/KJJGYRO/ $ PARAML KJJGYRO//'NULL'////S,N,NOGYRO $ $ IF ( NOGYRO < 0 ) JUMP ENDLOOP $ $ IF ( (DEPEND < 0 ) AND (OMEGA <> 0.) ) THEN $ $ SCALE= CMPLX( -1.0/(OMEGA*OMEGA), 0. ) $ ADD MJJ,KJJGYRO/MJJTEMP//SCALE $ EQUIVX MJJTEMP/MJJ/ALWAYS $ EQUIVX MJJ/MJJTEMP/NEVER $ $ SCALE= CMPLX( 1.0/OMEGA ) $ ADD BJJ,BRJJ/BJJTEMP//SCALE $ EQUIVX BJJTEMP/BJJ/ALWAYS $ EQUIVX BJJ/BJJTEMP/NEVER $ $ MESSAGE //' '/ $ MESSAGE //' USER INFORMATION: SPEED DEPENDENT TERMS'/ ' ADDED'/ $ MESSAGE //' TO STRUCTURAL MATRICES'/ $ MESSAGE //' '/ $ $ ELSE IF ( (DEPEND < 0) AND (OMEGA = 0.) ) THEN $ $ MESSAGE //' '/ $ MESSAGE //' USER WARNING: SPEED DEPENDENCE REQUESTED,'/ $ MESSAGE //' BUT NO RFORCE SPECIFIED.'/ $ MESSAGE //' DIFFERENTIAL STIFFNESS OR'/ $ MESSAGE //' GYROSCOPIC TERMS WERE NOT '/ $ MESSAGE //' ADDED TO STRUCTURAL MATRICES.'/ $ MESSAGE //' '/ $ $ ELSE $ $ ADD KJJ,KJJGYRO/KJJTEMP/ $ EQUIVX KJJTEMP/KJJ/ALWAYS $ EQUIVX KJJ/KJJTEMP/NEVER $ $ $ ADD CORIOLIS TERMS TO SUPERELEMENT DAMPING $ ADD BJJ,BRJJ/BJJTEMP/ $ EQUIVX BJJTEMP/BJJ/ALWAYS $ EQUIVX BJJ/BJJTEMP/NEVER $ $ MESSAGE //' '/ $ MESSAGE //' USER INFORMATION: CONSTANT SPEED TERMS'/ ' ADDED'/ $ MESSAGE //' TO STRUCTURAL MATRICES'/ $ MESSAGE //' '/ $ $ ENDIF $ $ ENDIF $ NOGPECT>=0 $ ENDIF $ SCNDRY <> -1 $ $ TRIGGER REASSEMBLEY AND REREDUCTION OF SUPERELEMENT MATRICIES $ IN RESTART BY DELETING ASSEMBELLED AND REDUCED MATRICES $ RESTART ,,,HISTS/TLIST/TRUE $ $ LABEL ENDLOOP $ $ ENDDO $ LPFLG>=0 $ $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ $ COMPILE CORICEN $ $ SUBDMAP CORICEN SLT,BGPDT,EQEXIN,CSTM,SIL,MJJ/KCEN,BCOR/OMEGA $ $ $******************************************************************** $ * $ This DMAP sequence calculates Coriolis and Centripetal effect * $ matrices in global coordinates. * $ * $ For node i: * $ * $ [Bcoriolis] = 2[x]m * $ * $ [Kcentripetal] = [x][x]m * $ * $ | 0 -Omega(z) Omega(y) | * $ [x] = | Omega(z) 0 -Omega(x) | * $ | -Omega(y) Omega(x) 0 | * $ * $******************************************************************** $ TYPE PARM,,I,N,SLTRECNO $ TYPE PARM,,RS,N,OMEGA $ TYPE PARM,,CS,N,N1C,N2C,N3C $ TYPE PARM,,CS,N,OMEGAC $ $ $ SEARCH FOR RFORCE ENTRY $ SLTRECNO= 1 DO WHILE ( SLTRECNO > 0 ) $ $ PARAML SLT//'DTI'/S,N,SLTRECNO/1//S,N,LTYPE/ $ IF ( (SLTRECNO <> -1 ) AND ( LTYPE = 10 ) ) THEN $ $ $ EXTRACT SPIN VECTOR FROM RFORCE CARD. $ PARAML SLT//'DTI'/SLTRECNO/4//S,N,CID/ $ PARAML SLT//'DTI'/SLTRECNO/5/S,N,RPT/ $ PARAML SLT//'DTI'/SLTRECNO/6/S,N,N1/ $ PARAML SLT//'DTI'/SLTRECNO/7/S,N,N2/ $ PARAML SLT//'DTI'/SLTRECNO/8/S,N,N3/ $ SLTRECNO = -2 $ $ ENDIF $ $ SLTRECNO = SLTRECNO + 1 $ $ ENDDO $ $ IF ( RPT = 0. ) THEN $ $ OMEGA= 0. RETURN $ $ ENDIF $ $ $ THESE ARE NEEDED LATER ON $ MATGEN ,/I1X1/1/1/ $ MATGEN ,/I6X6/1/6/ $ $ $ CALCULATE RADIANS PER UNIT TIME $ OMEGA= 2.0 * PI(1) * RPT $ OMEGAC = CMPLX(OMEGA,0.) $ $ $ $ CREATE A COLUMN VECTOR, MJJTSUM, FROM THE DIAGONAL OF MJJD $ TO BE USED FOR PARTITIONING PURPOSES LATER $ DIAGONAL MJJ/MJJC/'COLUMN' $ $ $-------------------------------------------------------------------$ $-------------------------------------------------------------------$ $ $ CALCULATE ROTATION MATRIX IN THE CID SYSTEM $ IF (N1 <> 0.) THEN $ $ DETERMINE FACTOR FOR X-ROTATION (in CID system) $ MATGEN ,/PVC6/6/6/1/1/4 $ MATGEN ,/PVR6/6/6/2/1/3 $ MERGE ,,,,I1X1,PVC6,PVR6/ONE6X6/1/0/1 $ MPYAD ONE6X6,I6X6,ONE6X6/ROTX/1/-1 $ DELETE /PVC6,PVR6,ONE6X6,,/ $ N1C = CMPLX(N1,0.) $ ENDIF $ $ $-------------------------------------------------------------------$ $ IF (N2 <> 0.) THEN $ $ DETERMINE FACTOR FOR Y-ROTATION (in CID system) $ MATGEN ,/PVC6/6/6/2/1/3 $ MATGEN ,/PVR6/6/6/0/1/5 $ MERGE ,,,,I1X1,PVC6,PVR6/ONE6X6/1/0/1 $ MPYAD ONE6X6,I6X6,ONE6X6/ROTY/1/-1 $ DELETE /PVC6,PVR6,ONE6X6,,/ $ N2C = CMPLX(N2,0.) $ ENDIF $ $ $-------------------------------------------------------------------$ $ IF (N3 <> 0.) THEN $ $ DETERMINE FACTOR FOR Z-ROTATION (in CID system) $ MATGEN ,/PVC6/6/6/0/1/5 $ MATGEN ,/PVR6/6/6/1/1/4 $ MERGE ,,,,I1X1,PVC6,PVR6/ONE6X6/1/0/1 $ MPYAD ONE6X6,I6X6,ONE6X6/ROTZ/1/-1 $ DELETE /PVC6,PVR6,ONE6X6,,/ $ N3C = CMPLX(N3,0.) $ ENDIF $ $ $-------------------------------------------------------------------$ $ $ ADD FOR TOTAL ROTATION (in CID system) $ ADD5 ROTX,ROTY,ROTZ,,/ROTTOT/N1C/N2C/N3C $ $ $-------------------------------------------------------------------$ $-------------------------------------------------------------------$ $ $ GENERATE G-SIZE CORIOLIS MATRIX IN THE GLOBAL SYSTEM $ $ $ FIRST, GENERATE G-SIZE MATRIX IN THE CID SYSTEM $ ADD ROTTOT,/OMEGA/OMEGAC $ MATMOD OMEGA,SIL,,,,/OMEGAGG,/5 $ $ $-------------------------------------------------------------------$ $ $ USE THE MJJC VECTOR TO PARTITION OUT THE ZERO MASS TERMS $ ALONG WITH THE SPOINTS (WHICH CAUSE PROBLEMS FOR MATMOD OPTION 5) $ PARTN OMEGAGG,MJJC,/,,,OMEGAXX/ $ $ $-------------------------------------------------------------------$ $ $ TRANSFORM CORIOLIS ACCELERATION MATRIX TO GLOBAL SYSTEM $ FIRST, TRANSFORM FROM CID TO BASIC $ THEN , TRANSFORM FROM BASIC TO GLOBAL $ $ CHECK IF THE CSTM EXISTS. IT WILL NOT EXIT IF THE GLOBAL SYSTEM $ IS THE SAME AS THE BASIC SYSTEM. ERROR IN MATMOD. THEREFORE $ GENERATE THE IDENTITY MATRIX $ $ PARAML CSTM//'PRESENCE'////S,N,NOGTOB=0 $ IF (NOGTOB < 0) THEN DIAGONAL MJJ/GTOBY/'SQUARE'/0. $ ELSE MATMOD CSTM,SIL,BGPDT,,,/GTOBY,/5//-1 $ ENDIF $ $ PARTN GTOBY,MJJC,/,,,GTOB/ $ $ $ CHECK IF THE CID IS EQUAL TO ZERO (BASIC) $ IF (CID = 0) THEN EQUIVX GTOB/CTOG/ALWAYS $ ELSE MATMOD CSTM,SIL,BGPDT,,,/CTOBX,/5//CID $ $ $ USE THE MJJC VECTOR TO PARTITION OUT THE ZERO MASS TERMS $ ALONG WITH THE SPOINTS (WHICH CAUSE PROBLEMS FOR MATMOD OPTION 5) $ PARTN CTOBX,MJJC,/,,,CTOB/ $ MPYAD CTOB,GTOB,/CTOG/1 $ ENDIF $ $ SMPYAD CTOG,OMEGAXX,CTOG,,,/OMEGAYY/3////1 $ MERGE ,,,,OMEGAYY,MJJC,/OMEGAGGX/ $ $ $-------------------------------------------------------------------$ $ $ MULTIPLY MASS BY CORIOLIS ACCELERATION $ TO CALCULATE CORIOLIS FORCE MATRIX $ MPYAD MJJ,OMEGAGGX,/CJJ1 $ MPYAD OMEGAGGX,MJJ,/CJJ2 $ ADD CJJ1,CJJ2/BCOR $ $ $-------------------------------------------------------------------$ $-------------------------------------------------------------------$ $ $ CALCULATE CENTRIPETAL ACCELERATION MATRIX $ $ MULTIPLY MASS BY CENTRIPETAL ACCELERATION $ TO CALCULATE CETRIPETAL FORCE MATRIX $ SMPYAD OMEGAGGX,MJJ,OMEGAGGX,,,/KCEN/3////////6 $ $ RETURN $ END $ $ $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ echoon $