# Extract real and imaginary displacement in cyclic symmetry analysis

Member, Employee Posts: 34
✭✭✭✭
edited June 2023

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

Tagged:

• Member, Employee Posts: 34
✭✭✭✭

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.

• Member Posts: 11
**

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!

• Member, Employee Posts: 34
✭✭✭✭

@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).