Modal Analysis of Centrifugal Compressor Impeller

Dear Forum Members,

i’m using PrePro Max to calculate the natural vibration modes of an impeller.
I used the Tutorial video on youtube to setup the analysis. In the end i want to have a Campbell diagram to visualize the Modes.
Now i have a solution of the analysis and i can see an output tabel of the Eigenvalues.


Am i right that Omega [rad/s] is the excitation frequency where the Mode oszillates with the tabulated frequency? And in an Campbell plot Omega would be the abscissa value and Frequency would be the ordinate value?
When comparing the Campbell diagram (picture 6) from the calculix homepage i can see that the modes are frequency dependet. Could someone explain me the workflow to calculate the frequency dependet mode shapes? And how to extract the results to draw a complete campbell diagram?

Thanks in Advance!
Eric

OMEGA and FREQUENCY are the same quantity, just in different units (convert some of them and you’ll see that) - they are the natural vibration frequency.

Campbell diagrams show the natural frequency vs rotation speed for different modes. But you may need the complex natural frequency extraction procedure for that (not implemented in PrePoMax but can be used by adding proper CalculiX keywords to the Keyword Editor).

1 Like

Hi , earlybird.

Wow, that escalated quickly. Nice job. :+1:

Is that model the one used as example in the ccx webpage?. Is that mesh available somewhere.?

oh man, thank you ^^
quite embarrasing that i didnt saw that these are the same value just in different units…
Okay, i didnt used the calculix keywords so far. Is there some document or libary which keywords are available?

Thanks in advance
Eric

Yes, CalculiX User’s Manual: https://www.dhondt.de/ccx_2.21.pdf

Look for *COMPLEX FREQUENCY there.

And check this thesis too, it even includes CalculiX input decks: https://webthesis.biblio.polito.it/18591/1/tesi.pdf

the CalculiX FE-model of the jet engine
Mapped temperatures [K], after 117 sec at full rated conditions.
The package includes a 3D- and a 2D model

Thank you, these informations are very useful.
I read the thesis and looked after the input decks he used, but he was not using *COMPLEX FREQUENCY
in his code. I’m a little bit confused where to put the keyword in the input deck.
Should i add:

*Step, *COMPLEX FREQUENCY,CORIOLIS
10
*End Step

at the end of the input deck, or is this incomplete?
The Steps in my input deck look like this:

** Steps +++++++++++++++++++++++++++++++++++++++++++++++++++
**
**
** Step-1 ++++++++++++++++++++++++++++++++++++++++++++++++++
**
*Step, Inc=100
*Static
1, 1, 1E-05, 1E+30
**
** Output frequency ++++++++++++++++++++++++++++++++++++++++
**
*Output, Frequency=1
**
** Boundary conditions +++++++++++++++++++++++++++++++++++++
**
*Boundary, op=New
** Name: Fixed-1
*Boundary
Internal_Selection-1_Fixed-1, 1, 6, 0
**
** Loads +++++++++++++++++++++++++++++++++++++++++++++++++++
**
*Cload, op=New
*Dload, op=New
** Name: Centrifugal_Load-1
*Dload
Internal_Selection-1_Centrifugal_Load-1, CENTRIF, 20277009, 0, 0, 0, 0, 0, -1
**
** Defined fields ++++++++++++++++++++++++++++++++++++++++++
**
**
** History outputs +++++++++++++++++++++++++++++++++++++++++
**
**
** Field outputs +++++++++++++++++++++++++++++++++++++++++++
**
*Node file
RF, U
*El file
S, E, NOE
**
** End step ++++++++++++++++++++++++++++++++++++++++++++++++
**
*End step
**
** Step-2 ++++++++++++++++++++++++++++++++++++++++++++++++++
**
*Step, Perturbation
*Frequency, Storage=Yes
12
**
** Output frequency ++++++++++++++++++++++++++++++++++++++++
**
*Output, Frequency=1
**
** Boundary conditions +++++++++++++++++++++++++++++++++++++
**
*Boundary, op=New
** Name: Fixed-1
*Boundary
Internal_Selection-1_Fixed-1, 1, 6, 0
**
** Loads +++++++++++++++++++++++++++++++++++++++++++++++++++
**
**
** Defined fields ++++++++++++++++++++++++++++++++++++++++++
**
**
** History outputs +++++++++++++++++++++++++++++++++++++++++
**
**
** Field outputs +++++++++++++++++++++++++++++++++++++++++++
**
*Node file
RF, U
*El file
S, E, NOE
**
** End step ++++++++++++++++++++++++++++++++++++++++++++++++
**
*End step
*Step, *COMPLEX FREQUENCY,CORIOLIS
12
*End Step

When i run this, the analysis monitor writes:

*WARNING reading *STEP: parameter not recognized:
          *COMPLEXFREQUENCY
 *WARNING reading *STEP. Card image:
          *STEP,*COMPLEXFREQUENCY,CORIOLIS

 *WARNING reading *STEP: parameter not recognized:
          CORIOLIS
 *WARNING reading *STEP. Card image:
          *STEP,*COMPLEXFREQUENCY,CORIOLIS

 *WARNING in calinput. Card image cannot be interpreted:
 *WARNING reading the input file. Card image:
          12

 Frequency analysis was selected

and i can’t open the results

I hope this is enough information to my setup.

Another question ist, do i have to repeat this analysis for multiple rotational frequencys and evaluate the eigenmode frequencys in order to get a campbell diagram?

Best Regards
Eric

It should be:

*STEP, PERTURBATION
*COMPLEX FREQUENCY, CORIOLIS
...
*END STEP

Yes, that’s right.

There’s also an example input file rotor.inp in this package of documentation test cases: https://www.dhondt.de/ccx_2.21.test.tar.bz2

1 Like

Thank you very much.

With this modification it seems to work, but the programm calls that it can’t open the “jobname”.dat file.
grafik
In the temp folder the file is present and it seems that the results of the calculation are written to it.
Is that right? So when i want to use the results i have to use the results in Step 3 (stept with complex frequency, coriolis)?

  E I G E N V A L U E   O U T P U T

MODE NO FREQUENCY
REAL PART IMAGINARY PART
(RAD/TIME) (CYCLES/TIME) (RAD/TIME)

  1   0.3196025E+03   0.5086632E+02  -0.8676051E-04
  2   0.3156549E+04   0.5023805E+03  -0.3861806E-04
  3   0.6165748E+04   0.9813092E+03   0.3056935E-06
  4   0.1108669E+05   0.1764501E+04   0.1002872E-06
  5   0.1650188E+05   0.2626356E+04  -0.8006463E-06
  6   0.2038245E+05   0.3243968E+04   0.2743811E-04
  7   0.2627737E+05   0.4182174E+04   0.1969491E-04
  8   0.2644174E+05   0.4208334E+04   0.4003497E-04
  9   0.2663963E+05   0.4239829E+04   0.3842417E-06
 10   0.2670511E+05   0.4250251E+04  -0.2463086E-07
 11   0.2688777E+05   0.4279321E+04  -0.1255045E-04
 12   0.2697578E+05   0.4293329E+04  -0.2606339E-05

Is there a way to automate the procedure of solving the calculation with different rpm’s?
Like call the program from a python skript?

Thanks in advance
Eric

PrePoMax doesn’t support complex frequency analyses so it may not support their results (like .dat files). You can compare the results of both frequency analyses, there should be some differences: Complex frequency result confused - CalculiX (official versions are on www.calculix.de, the official GitHub repository is at https://github.com/Dhondtguido/CalculiX).

When it comes to automating the procedure, it might be best to work on the input files because PrePoMax doesn’t support parametric studies yet. Input decks are just text files submitted from a command line so it’s not so hard to automate this. One way would be to use OptiMax: https://prepomax.fs.um.si/optimax/

1 Like