Extract real and imaginary displacement in cyclic symmetry analysis

Nikos Kallitsis
Nikos Kallitsis Member, Employee Posts: 20
First Comment Ansys Employee Name Dropper Photogenic
edited June 2023 in Structures

I have a cyclic symmetry analysis model and would like to extract the real and imaginary nodal displacements. Is this possible?

Tagged:

Best Answer

  • Nikos Kallitsis
    Nikos Kallitsis Member, Employee Posts: 20
    First Comment Ansys Employee Name Dropper Photogenic
    Answer ✓

    There is no way to do this using the GUI in MAPDL.

    The only way to retrieve the desired results is by identifying the base and duplicate sectors' nodes and extracting the respective displacements.

    You must first make sure that the duplicate sector exists, and then input the following script:

    ALLSEL, ALL !Reset selection
    
    !----------SET NODE RANGE FOR BASE AND DUPLICATE SECTOR----------
    nBaseStart = NDNEXT(0) !Select the first node after index 0 (base)
    nDuplStart = NNEAR(nBaseStart) !Select node nearest to nBaseStart (duplicate)
    nBaseEnd = nDuplStart-nBaseStart !End node for base sector
    *GET, nDuplEnd, NODE, 0, COUNT !End node for duplicate sector
    
    !----------VERIFY THAT THE BASE AND DUPLICATE SECTORS' NODES HAVE A 1-1 RELATIONSHIP----------
    nTotalperSector = nBaseEnd
    *DIM, coordBase, ARRAY, nTotalperSector, 6
    *VGET, coordBase(1,1), NODE, nBaseStart, LOC, X
    *VGET, coordBase(1,2), NODE, nDuplStart, LOC, X
    *VGET, coordBase(1,3), NODE, nBaseStart, LOC, Y
    *VGET, coordBase(1,4), NODE, nDuplStart, LOC, Y
    *VGET, coordBase(1,5), NODE, nBaseStart, LOC, Z
    *VGET, coordBase(1,6), NODE, nDuplStart, LOC, Z
    
    *DO, i, 1, 3, 1
    *DO, j, 1, nTotalperSector, 1
    *IF, coordBase(j, 2*i-1), NE, coordBase(j, 2*i), THEN
    *MSG, ERROR
    Node relationship between base and duplicate sector is not 1-1. %/&
    Possible solutions: %/&
    1. Make sure a duplicate sector exists. %/&
    2. Delete duplicate sector and re-solve.
    *ENDIF
    *ENDDO
    *ENDDO
    
    !----------SPECIFY BASE SECTOR'S NODES AND ELEMENTS----------
    NSEL, S, NODE, , 1, nBaseEnd !Select nodes of base sector
    CM, nBase, NODE !Create component from selected nodes
    ESLN !Select elements associated with base sector nodes
    CM, eBase, ELEM !Create component from selected elements
    
    ALLSEL, ALL !Reset selection
    
    !----------SPECIFY DUPLICATE SECTOR'S NODES AND ELEMENTS----------
    CMSEL, U, nBase !Select nodes of duplicate sector
    CM, nDupl, NODE !Create component from selected nodes
    ESLN !Select elements associated with duplicate sector nodes
    CM, eDupl, ELEM !Create component from selected elements
    
    ALLSEL, ALL !Reset selection
    
    !----------GET DISPLACEMENT RESULTS FOR BASE SECTOR----------
    *DIM, dispBase, ARRAY, nBaseEnd, 3
    *VGET, dispBase(1,1), NODE, nBaseStart, U, X
    *VGET, dispBase(1,2), NODE, nBaseStart, U, Y
    *VGET, dispBase(1,3), NODE, nBaseStart, U, Z
    
    !----------GET DISPLACEMENT RESULTS FOR DUPLICATE SECTOR----------
    *DIM, dispDupl, ARRAY, nDuplEnd-nBaseEnd, 3
    *VGET, dispDupl(1,1), NODE, nDuplStart, U, X
    *VGET, dispDupl(1,2), NODE, nDuplStart, U, Y
    *VGET, dispDupl(1,3), NODE, nDuplStart, U, Z
    

    This will result in the creation of two arrays - dispBase and dispDupl - containing the displacements for each sector.

    The base and duplicate sectors correspond to the real and imaginary parts respectively.

Answers

  • ChrisC
    ChrisC Member Posts: 11
    First Comment

    I am trying to do something similar. I'm a bit confused on which result sets should be loaded. Should the base and duplicate results be retrieved from the same result set? Or should the base be loaded for the first set of the couplet, and the imaginary from the second? (Cyclic symmetry solutions typically generate a couplet of result sets per frequency)

    Thanks!

  • Nikos Kallitsis
    Nikos Kallitsis Member, Employee Posts: 20
    First Comment Ansys Employee Name Dropper Photogenic

    @ChrisC, the results for the real and imaginary sector are stored in the same result set. The distinction between real and imaginary is done at the nodal level. Once the two nodal sets have been defined, you can retrieve results for each of them separately (real and imaginary).