# Cyclic symmetry

**URL:** <https://prepomax.discourse.group/t/cyclic-symmetry/58>\
**Category:** Feature Requests\
**Created:** [February 15, 2022, 1:31pm UTC](https://prepomax.discourse.group/t/cyclic-symmetry/58 "2022-02-15T13:31:49Z")\
**Posts on this page:** 17\
**Page:** 1

<div class="post-metadata">

**Author:** ![FEAnalyst](https://yyz2.discourse-cdn.com/free1/user_avatar/prepomax.discourse.group/feanalyst/32/688_2.png) [@FEAnalyst](https://prepomax.discourse.group/u/FEAnalyst)\
**Post date:** [February 15, 2022, 1:31pm UTC](https://prepomax.discourse.group/t/cyclic-symmetry/58/1 "2022-02-15T13:31:49Z")

</div>

The newest version (1.2.0) introduced support for axisymmetric models. So the only type of symmetry that’s missing is cyclic symmetry. It can be very useful for shafts, impellers and so on. In CalculiX it’s defined based on tie constraint - additional parameter (_cyclic symmetry_) has to be added to it and then a new \*_Cyclic symmetry model_ keyword follows. Since the Keyword Editor can’t modify existing keywords (which is understandable because that could break the model but maybe it would be possible to prevent these potential issues somehow), such tie constraint for cyclic symmetry has to be created manually based on the predefined surfaces:

 ![keywords cyclic symm](https://global.discourse-cdn.com/free1/uploads/prepomax/original/1X/1a22e2e0cdfca66f4603e9717bc8fe59d9f85601.png)

It would be really nice to have support for this functionality in GUI.

As a side note, boundary conditions and constraints (such as rigid body constraint) can’t be applied to the nodes of the slave surface of cyclic symmetry since that would cause overconstraint. So in cases like the one above it’s necessary to remove nodes belonging to the edge on the side of slave surface from BC/RB definition.

Another important thing is that if there are multiple tie constraints in the model then it might be necessary to reference the one serving for cyclic symmetry by name using _tie_ parameter of the \*_Cyclic symmetry model_ keyword.

---

<div class="post-metadata">

**Author:** ![Matej](https://avatars.discourse-cdn.com/v4/letter/m/a698b9/32.png) [@Matej](https://prepomax.discourse.group/u/Matej)\
**Post date:** [February 16, 2022, 10:42am UTC](https://prepomax.discourse.group/t/cyclic-symmetry/58/2 "2022-02-16T10:42:23Z")

</div>

I did not test the cyclic symmetry by myself. I was put off by many exceptions in the CalculiX documentation where, for some keywords, special care must be taken when using the cyclic symmetry model. Is that not a problem in general?

---

<div class="post-metadata">

**Author:** ![FEAnalyst](https://yyz2.discourse-cdn.com/free1/user_avatar/prepomax.discourse.group/feanalyst/32/688_2.png) [@FEAnalyst](https://prepomax.discourse.group/u/FEAnalyst)\
**Post date:** [February 16, 2022, 11:27am UTC](https://prepomax.discourse.group/t/cyclic-symmetry/58/3 "2022-02-16T11:27:52Z")

</div>

Indeed, there are some special considerations when using cyclic symmetry. Apart from the ones mentioned in my first post (which are rather harmless if one remembers about them), the biggest differences are in the case of \*_Frequency_ analyses. There is a separate keyword \*_Select cyclic symmetry modes_ that can be used to specify which cyclic symmetry modes should be used in eigenfrequency analysis. The same keyword is used in Abaqus.

I couldn’t find any other important issues with cyclic symmetry models (some apply to very specific types of analyses such as HCF added to CalculiX 2.19 and thus are not relevant for now). Generally speaking, cyclic symmetry works very well in CalculiX, at least from what I’ve noticed so far.

---

<div class="post-metadata">

**Author:** ![Matej](https://avatars.discourse-cdn.com/v4/letter/m/a698b9/32.png) [@Matej](https://prepomax.discourse.group/u/Matej)\
**Post date:** [February 18, 2022, 11:57am UTC](https://prepomax.discourse.group/t/cyclic-symmetry/58/4 "2022-02-18T11:57:04Z")

</div>

Ok, that was only my feeling then. I will look into it in the future and add it to the to-do list.

---

<div class="post-metadata">

**Author:** ![Martin](https://avatars.discourse-cdn.com/v4/letter/m/73ab20/32.png) [@Martin](https://prepomax.discourse.group/u/Martin)\
**Post date:** [December 14, 2022, 10:09pm UTC](https://prepomax.discourse.group/t/cyclic-symmetry/58/5 "2022-12-14T22:09:10Z")

</div>

Hi @Matej ,

I have the same opinion like @FEAnalyst: it would be great to have such a tool in the GUI.

I already simulate a fan and used cyclic symmetry. In comparison with Ansys the results are identical.

I am very surprised about PrePoMax. It is such a great GUI. For me it is the best Open source FEA Gui I ever Seen before!! You did a great Job!

---

<div class="post-metadata">

**Author:** ![FEAnalyst](https://yyz2.discourse-cdn.com/free1/user_avatar/prepomax.discourse.group/feanalyst/32/688_2.png) [@FEAnalyst](https://prepomax.discourse.group/u/FEAnalyst)\
**Post date:** [May 1, 2023, 11:31am UTC](https://prepomax.discourse.group/t/cyclic-symmetry/58/6 "2023-05-01T11:31:20Z")

</div>

I was asked to share the file from my first post so here it is:

[Cyclic symm.pmx](https://prepomax.discourse.group/uploads/short-url/brjvTUd1761T7VD4nmBScQIpm1I.pmx) (1.3 MB)

---

<div class="post-metadata">

**Author:** ![Trevor](https://avatars.discourse-cdn.com/v4/letter/t/258eb7/32.png) [@Trevor](https://prepomax.discourse.group/u/Trevor)\
**Post date:** [September 23, 2023, 3:54pm UTC](https://prepomax.discourse.group/t/cyclic-symmetry/58/7 "2023-09-23T15:54:14Z")

</div>

Is the output from cyclic symmetrical analyses managed in PMX ok (ststic snd vibes) and additional entities like MAXS for STRESSDOMAIN?

---

<div class="post-metadata">

**Author:** ![FEAnalyst](https://yyz2.discourse-cdn.com/free1/user_avatar/prepomax.discourse.group/feanalyst/32/688_2.png) [@FEAnalyst](https://prepomax.discourse.group/u/FEAnalyst)\
**Post date:** [September 23, 2023, 4:50pm UTC](https://prepomax.discourse.group/t/cyclic-symmetry/58/8 "2023-09-23T16:50:53Z")

</div>

Currently, there’s no support for cyclic symmetry but you can open the results with this kind of output:

 ![mstress](https://global.discourse-cdn.com/free1/uploads/prepomax/original/2X/d/d819388b2f529340f5c84e3e1183fed1d6ebbc3c.jpeg)

---

<div class="post-metadata">

**Author:** ![Trevor](https://avatars.discourse-cdn.com/v4/letter/t/258eb7/32.png) [@Trevor](https://prepomax.discourse.group/u/Trevor)\
**Post date:** [September 23, 2023, 7:13pm UTC](https://prepomax.discourse.group/t/cyclic-symmetry/58/9 "2023-09-23T19:13:33Z")

</div>

Understood.  
FYI In a previous role with Alstom Power, I wrote automated python code for steam turbine blade analysis looping over 3000 different designs in service. Model creation was in CGX including geometry, full hex meshing static analysis followed by modal analysis and forced response. Blade shroud has cyclic symmetry and contact. Solves in CCX and back to back with abaqus is excellent and also with tests (frequencies}. Post procesing in CGX again automated. This software is looking good. I’ll give it a closer look.

---

<div class="post-metadata">

**Author:** ![Trevor](https://avatars.discourse-cdn.com/v4/letter/t/258eb7/32.png) [@Trevor](https://prepomax.discourse.group/u/Trevor)\
**Post date:** [September 23, 2023, 7:19pm UTC](https://prepomax.discourse.group/t/cyclic-symmetry/58/10 "2023-09-23T19:19:11Z")

</div>

[https://doi.org/10.1115/GT2016-57641](https://doi.org/10.1115/GT2016-57641)  
MIDAS was the application we created

---

<div class="post-metadata">

**Author:** ![earlybird](https://avatars.discourse-cdn.com/v4/letter/e/3ab097/32.png) [@earlybird](https://prepomax.discourse.group/u/earlybird)\
**Post date:** [October 30, 2024, 8:40am UTC](https://prepomax.discourse.group/t/cyclic-symmetry/58/11 "2024-10-30T08:40:13Z")

</div>

Hey Everyone,

i’m trying to setup a sector model with cyclic symmetry in the way it is described here.  
ATM i’m struggeling to create a node-set of the nodes of a surface where i want to apply a fixed BC. As mentioned before in the post, it is not allowed to apply the fixed constrain to the nodes that sharing the surfaces of cyclic symmetry.  
How can i modify the node-set to exclude the nodes at the edge?

 ![grafik](https://global.discourse-cdn.com/free1/uploads/prepomax/original/2X/2/2edc7e794be94c88234df070c1f7cafaa1358821.png)  
In the calculix keyword editior i’m not allowed to modify the existing note-set or surface-set.

Thanks in advance  
Eric

---

<div class="post-metadata">

**Author:** ![FEAnalyst](https://yyz2.discourse-cdn.com/free1/user_avatar/prepomax.discourse.group/feanalyst/32/688_2.png) [@FEAnalyst](https://prepomax.discourse.group/u/FEAnalyst)\
**Post date:** [October 30, 2024, 8:56am UTC](https://prepomax.discourse.group/t/cyclic-symmetry/58/12 "2024-10-30T08:56:08Z")

</div>

> [@earlybird](#):
>
> How can i modify the node-set to exclude the nodes at the edge?

Just hold Ctrl and click on an edge while editing a node set to remove the nodes of that edge from the selection:

 ![edge nodes 1](https://global.discourse-cdn.com/free1/uploads/prepomax/original/2X/4/41a59392af9f6ab91a821384f9bf974cd04e0511.png)

 ![edge nodes 2](https://global.discourse-cdn.com/free1/uploads/prepomax/original/2X/2/2370bb73fc3cc3b192204393bed1e294ea53625c.png)

---

<div class="post-metadata">

**Author:** ![earlybird](https://avatars.discourse-cdn.com/v4/letter/e/3ab097/32.png) [@earlybird](https://prepomax.discourse.group/u/earlybird)\
**Post date:** [October 30, 2024, 10:55am UTC](https://prepomax.discourse.group/t/cyclic-symmetry/58/13 "2024-10-30T10:55:47Z")

</div>

Thanks! It works well. The comparsion of the 360° to cyclic symmetry model shows only minor deviations in stress and strain results.

---

<div class="post-metadata">

**Author:** ![earlybird](https://avatars.discourse-cdn.com/v4/letter/e/3ab097/32.png) [@earlybird](https://prepomax.discourse.group/u/earlybird)\
**Post date:** [October 30, 2024, 12:07pm UTC](https://prepomax.discourse.group/t/cyclic-symmetry/58/14 "2024-10-30T12:07:30Z")

</div>

furthermore i want to do a frequency analysis of a sector model of an compressor impeller.  
I found out that there is some special keyword for this:  
\*SELECT CYCLIC SYMMETRY MODES, NMIN= , NMAX=

For the 360° Model i use the complex frequency analysis.  
\*Step, Perturbation  
\*COMPLEX FREQUENCY,CORIOLIS  
12  
\*End Step

I tried to use this complex frequency step in the cyclic symmetry model, but it did not work.

Thanks in advance  
Eric

---

<div class="post-metadata">

**Author:** ![FEAnalyst](https://yyz2.discourse-cdn.com/free1/user_avatar/prepomax.discourse.group/feanalyst/32/688_2.png) [@FEAnalyst](https://prepomax.discourse.group/u/FEAnalyst)\
**Post date:** [October 30, 2024, 12:59pm UTC](https://prepomax.discourse.group/t/cyclic-symmetry/58/15 "2024-10-30T12:59:06Z")

</div>

I haven’t found any confirmation in CalculiX documentation after a quick search but even in Abaqus, complex eigenfrequency extraction doesn’t support models with cyclic symmetry so I’m pretty sure it’s the same in CalculiX.

---

<div class="post-metadata">

**Author:** ![Matej](https://avatars.discourse-cdn.com/v4/letter/m/a698b9/32.png) [@Matej](https://prepomax.discourse.group/u/Matej)\
**Post date:** [August 28, 2026, 2:27pm UTC](https://prepomax.discourse.group/t/cyclic-symmetry/58/16 "2026-08-28T14:27:16Z")

</div>

Cyclic symmetry was added in v2.6.1 dev.

---

<div class="post-metadata">

**Author:** ![FEAnalyst](https://yyz2.discourse-cdn.com/free1/user_avatar/prepomax.discourse.group/feanalyst/32/688_2.png) [@FEAnalyst](https://prepomax.discourse.group/u/FEAnalyst)\
**Post date:** [August 28, 2026, 5:21pm UTC](https://prepomax.discourse.group/t/cyclic-symmetry/58/17 "2026-08-28T17:21:50Z")

</div>

Great! Thank you very much!
