/COM,ANSYS MEDIA REL. 2024R2 (05/10/2024) REF. VERIF. MANUAL: REL. 2024R2
/VERIFY,VM317
/TITLE,VM317,MULTISTAGE CYCLIC MODAL ANALYSIS OF A HOLLOW CYLINDER
/COM,
/COM, REF: CAMMALLERI, M. & COSTANZA, A. (2016).
/COM, A CLOSED-FORM SOLUTION FOR NATURAL FREQUENCIES OF THIN-WALLED CYLINDERS WITH CLAMPED EDGES.
/COM, INTERNATIONAL JOURNAL OF MECHANICAL SCIENCES, 110, P. 116-126.
/COM MULTISTAGE
/OUT,vm317_scratch
/COM -------------------------------------------------------------------
/COM -------------------------------------------------------------------
/COM MODEL PARAMETERS
/COM -------------------------------------------------------------------
!! ORIGINAL BRITISH UNITS (NOTE METRIC ARE APPROXIMATE)
!A = 3
!LEN = 12
!H = 0.01
!RHO = 0.283
!EMOD = 30E6
!NU = 0.3
!! IN METRIC FOR REFERENCE ONLY (KG,M,S)
!A = 0.0762
!LEN = 0.3048
!H = 0.000254
!RHO = 7833
!EMOD = 206842718795
!NU = 0.3
!! CONVERT EVERYTHING TO SLUGS,IN,S
A = 3
LEN = 12
H = 0.01
RHO = 0.008795923 ! LBM CONVERTED TO SLUG
EMOD = 36E7 ! LBF/IN^2 CONVERTED TO (SLUG*IN/S^2)/IN^2)
NU = 0.3
/COM -------------------------------------------------------------------
! ------------------------------------
! STAGE SECTOR COUNTS
! ------------------------------------
N1 = 18
N2 = 13
N3 = 10
N4 = 11
NSTAGE = 4
! ------------------------------------
! GENERATE MESH
! ------------------------------------
_GEOMGEN = 0 ! GENERATE MESH FOR MULTISTAGE
*IF,_GEOMGEN,EQ,1,THEN
/PREP7
ET,1,181
EX,1,EMOD
PRXY,1,NU
DENS,1,RHO
SECTYPE,1,SHELL
SECDATA,H,1,0
!* SECTOR ANGLES
LOW1 = 20
HIGH1 = 20+360/N1
LOW2 = 0
HIGH2 = 360/N2
LOW3 = 40
HIGH3 = 40+360/N3
LOW4 = 45
HIGH4 = 45+360/N4
CYLINDER,0,A,,LEN/4,LOW1,HIGH1
CYLINDER,0,A,LEN/4,2*LEN/4,LOW2,HIGH2
CYLINDER,0,A,2*LEN/4,3*LEN/4,LOW3,HIGH3
CYLINDER,0,A,3*LEN/4,LEN,LOW4,HIGH4
ESIZE,,10
ASEL,S,,,3
AMESH,ALL
ASEL,S,,,8
AMESH,ALL
ASEL,S,,,13
AMESH,ALL
ASEL,S,,,18
AMESH,ALL
ALLSEL,ALL
CDWRITE,COMB,vm317-1,cdb
*ELSE
CDREAD,COMB,vm317-1,cdb
*ENDIF
! -------------------------------------
! CREATE STAGE OBJECTS
! -------------------------------------
/PREP7
CSYS,1
*DIM,AVALS,ARRAY,NSTAGE,1
AVALS(1) = 3,8,13,18
*DO,II,1,NSTAGE
ASEL,S,,,AVALS(II)
ESLA
NSLE
CM,_STAGE%II%_BASE_ELM,ELEM
CM,_STAGE%II%_BASE_NOD,NODE
ALLSEL
CMSEL,S,_STAGE%II%_BASE_NOD,NODE
NSEL,R,LOC,Y,LOW%II%
CM,_STAGE%II%_CYCLOW_NOD,NODE
CMSEL,S,_STAGE%II%_BASE_NOD
NSEL,R,LOC,Y,HIGH%II%
CM,_STAGE%II%_CYCHIGH_NOD,NODE
ALLSEL,ALL
*GET,NNODE,NODE,,NUM,MAX
!DUPLICATE SECTOR
CMSEL,S,_STAGE%II%_BASE_ELM,ELEM
CMSEL,S,_STAGE%II%_BASE_NOD,NODE
EGEN,2,NNODE,ALL,,,,,,,,0,0,0
CMSEL,U,_STAGE%II%_BASE_ELM,ELEM
CMSEL,U,_STAGE%II%_BASE_NOD,NODE
CM,_STAGE%II%_DUPL_ELM,ELEM
CM,_STAGE%II%_DUPL_NOD,NODE
ALLSEL,ALL
*ENDDO
! COMPUTE HARMONIC INDEX 4 AND 5 MODES
*DO,JJ,4,5
! ------------------------------------
! STAGE HARMONIC INDICES
! ------------------------------------
HI1 = JJ
HI2 = JJ
HI3 = JJ
HI4 = JJ
/PREP7
CSYS,1
*IF,JJ,GT,4,THEN
MSOPT,RESET
*ENDIF
CEDELE,ALL
*DO,II,1,NSTAGE
MSOPT,NEW, STAGE%II%, N%II%, HI%II%,_STAGE%II%_BASE_ELM,_STAGE%II%_BASE_NOD,_STAGE%II%_DUPL_ELM,_STAGE%II%_DUPL_NOD
CECYCMS,_STAGE%II%_CYCLOW_NOD,_STAGE%II%_CYCHIGH_NOD
*ENDDO
! ----------------------------------------------
! APPLY INTERSTAGE CONSTRAINTS BETWEEN STAGES
! ----------------------------------------------
CMSEL,S,_STAGE1_BASE_NOD,NODE
NSEL,R,LOC,Z,LEN/4
ESLN
CMSEL,S,_STAGE2_BASE_NOD,NODE
NSEL,R,LOC,Z,LEN/4
CEIMS,,,STAGE2,STAGE1
CMSEL,S,_STAGE2_BASE_NOD,NODE
NSEL,R,LOC,Z,2*LEN/4
ESLN
CMSEL,S,_STAGE3_BASE_NOD,NODE
NSEL,R,LOC,Z,2*LEN/4
CEIMS,,,STAGE3,STAGE2
CMSEL,S,_STAGE4_BASE_NOD,NODE
NSEL,R,LOC,Z,3*LEN/4
ESLN
CM,INT_STAGE4_ELM,ELEM
CMSEL,S,_STAGE3_BASE_NOD,NODE
NSEL,R,LOC,Z,3*LEN/4
CM,INT_STAGE3_NOD,NODE
CMSEL,S,INT_STAGE4_ELM,ELEM
CMSEL,S,INT_STAGE3_NOD,NODE
CEIMS,,,STAGE3,STAGE4
ALLSEL,ALL
! -------------------------------------
! CLAMPED-CLAMPED BOUNDARY CONDITIONS
! -------------------------------------
NSEL,S,LOC,Z,0,0
NSEL,A,LOC,Z,LEN,LEN
D,ALL,ALL
ALLSEL,ALL
/SOLU
ANTYPE,MODAL
MODOPT,LANB,6
SOLVE
FINI
/POST1
SET,LIST
MSOPT,EXPA,ALL,ALL
SET,1,1
/SHOW,PNG,REV
/VIEW,1,1,1,1
PLNSOL,U,SUM
/SHOW,CLOSE
FINI
*GET,NATFREQ%JJ%,MODE,1,FREQ
*ENDDO
*DIM,VALUE,,2,4
*VFILL,VALUE(1,1),DATA,4,5
*VFILL,VALUE(1,2),DATA,772,564
*VFILL,VALUE(1,3),DATA,NATFREQ4,NATFREQ5
*VFILL,VALUE(1,4),DATA,NATFREQ4/772 ,NATFREQ5/564
/COM
/OUT,vm317,vrt
/COM,------------------- vm317 RESULTS COMPARISON ---------------------
/COM, TARGET VS. MAPDL MULTISTAGE
/COM,
/COM, N (HINDEX) | TARGET FREQ (HZ) | MECHANICAL APDL FREQ (HZ) | RATIO
/COM,
*VWRITE,VALUE(1,1),VALUE(1,2),VALUE(1,3),VALUE(1,4)
(' ',F2.0,' ',F10.0,' ',F14.2,' ',1F15.3)
/COM,------------------------------------------------------------------
/OUT,vm317_scratch,,,append
!----------------------------------------------------------------------
/CLEAR,NOSTART
/COM FULL 360
!! CONVERT EVERYTHING TO SLUGS,IN,S
A = 3
LEN = 12
H = 0.01
RHO = 0.008795923 ! LBM CONVERTED TO SLUG
EMOD = 36E7 ! LBF/IN^2 CONVERTED TO (SLUG*IN/S^2)/IN^2)
NU = 0.3
/COM ------------------------------------------------------------------
_GEOMGEN = 0 ! GENERATE MESH FOR FULL 360
*IF,_GEOMGEN,EQ,1,THEN
/PREP7
ET,1,181
EX,1,EMOD
PRXY,1,NU
DENS,1,RHO
SECTYPE,1,SHELL
SECDATA,H,1,0
CYLINDER,0,A,,LEN,0,360
ESIZE,.1
ASEL,S,,,3
ASEL,A,,,4
AMESH,ALL
NSEL,S,LOC,Z,0,0
NSEL,A,LOC,Z,LEN,LEN
D,ALL,ALL
ALLSEL,ALL
CDWRITE,COMB,vm317-2,cdb
*ELSE
CDREAD,COMB,vm317-2,cdb
*ENDIF
/SOLU
ANTYPE,MODAL
MODOPT,LANB,200
SOLVE
FINI
/POST1
SET,LIST
FINI
*GET,NATFREQ4,MODE,9,FREQ
*GET,NATFREQ5,MODE,3,FREQ
*DIM,VALUE,,2,4
*VFILL,VALUE(1,1),DATA,4,5
*VFILL,VALUE(1,2),DATA,772,564
*VFILL,VALUE(1,3),DATA,NATFREQ4,NATFREQ5
*VFILL,VALUE(1,4),DATA,NATFREQ4/772 , NATFREQ5/564
/COM
/OUT,vm317,vrt,,append
/COM,------------------- vm317 RESULTS COMPARISON ---------------------
/COM, TARGET VS. MAPDL FULL 360
/COM,
/COM, N (HINDEX) | TARGET FREQ (HZ) | MECHANICAL APDL FREQ (HZ) | % ERROR
/COM,
*VWRITE,VALUE(1,1),VALUE(1,2),VALUE(1,3),VALUE(1,4)
(' ',F2.0,' ',F10.0,' ',F14.2,' ',1F15.3)
/COM,------------------------------------------------------------------
/OUT
*LIST,vm317,vrt