Cyclic-symmetry modal analysis#

Free-vibration modal analysis on a single base sector of an \(N\)-fold cyclically-symmetric rotor. Driven by Model.cyclic_modal_solve.

Algorithm#

For a rotor of \(N\) identical sectors, the global spectrum decomposes per harmonic index \(k \in \{0, 1, \ldots, N/2\}\) (Thomas 1979; Wildheim 1979). Each harmonic produces a reduced complex-Hermitian sub-problem on the base sector

(1)#\[\mathbf{K}_k\, \boldsymbol{\phi}_k = \omega^{2}\, \mathbf{M}_k\, \boldsymbol{\phi}_k,\]

with the cyclic boundary condition \(\mathbf{u}_\text{high} = e^{\imath\, k\, \alpha}\, \mathbf{R}(\alpha)\, \mathbf{u}_\text{low}\), \(\alpha = 2\pi / N\).

femorph-solver applies the Grimes–Lewis–Simon (1994) real 2n-augmentation to recast each complex-Hermitian sub-problem as a real-symmetric problem of doubled size:

\[\begin{split}\tilde{\mathbf{K}}_{k} = \begin{bmatrix} \mathrm{Re}(\mathbf{K}_{k}) & -\mathrm{Im}(\mathbf{K}_{k}) \\ \mathrm{Im}(\mathbf{K}_{k}) & \mathrm{Re}(\mathbf{K}_{k}) \end{bmatrix}, \qquad \tilde{\mathbf{M}}_{k} = \cdots,\end{split}\]

then dispatches to the same shift-invert Lanczos pipeline as the Modal analysis solver. Each eigenvalue appears with multiplicity 2 in the augmented problem; the eigenvectors recombine into a complex pair on the way out.

For \(k = 0\) and (when \(N\) is even) \(k = N/2\) the imaginary block is identically zero and the augmentation collapses to two copies of the same real eigenvalue. For \(0 < k < N/2\) the two halves form a travelling-wave pair — the real / imaginary parts of \(\boldsymbol{\phi}_k\) are 90°-shifted snapshots of a wave travelling around the rotor’s circumference.

Public API#

Model.cyclic_modal_solve(low_face=, high_face=, n_sectors=, n_modes=, harmonic_indices=, ...)

  • low_face / high_face — node arrays (MAPDL numbers or boolean masks) on the rotor’s two cyclic faces, paired in matching order.

  • n_sectors — number of sectors \(N\).

  • harmonic_indices — defaults to all of \(0, 1, \ldots, N/2\).

  • Returns one CyclicModalResult per harmonic index, each carrying omega_sq, frequency, complex mode_shapes on the base sector, and the harmonic_index metadata.

Verification cross-references#

Implementation: femorph_solver.solvers.cyclic.

References#

  • Thomas, D. L. (1979) “Dynamics of rotationally periodic structures,” Journal of Sound and Vibration 66 (4), 585–597.

  • Wildheim, S. J. (1979) “Vibrations of rotationally periodic structures,” Ph.D. dissertation, Linköping University.

  • Grimes, R. G., Lewis, J. G. and Simon, H. D. (1994) “A shifted block Lanczos algorithm for solving sparse symmetric generalized eigenproblems,” SIAM J. Matrix Analysis and Applications 15 (1), 228–272 (real 2n augmentation).

  • Bathe, K.-J. (2014) Finite Element Procedures, 2nd ed., §10.3.4 (cyclic-symmetry modal).

  • Crandall, S. H. and Mark, W. D. (1963) Random Vibration in Mechanical Systems, Academic Press, §3.5 (travelling- wave / standing-wave decomposition).

  • Singh, M. P. and Vakakis, A. F. (1993) “On the dynamics of cyclic-symmetric structures,” Mechanism and Machine Theory 28 (5), 627–637 (mode classification by harmonic index).