Craig-Bampton Vibration ROM#
This tutorial summarizes tutorials/craig_bampton/craig_bampton_vibration_rom.py.
It shows that Craig-Bampton reduction in FluxFEM is not stiffness-only: the
same basis projects the mass matrix for modal and transient dynamics.
Run#
PYTHONPATH=src python tutorials/craig_bampton/craig_bampton_vibration_rom.py
What It Does#
The script builds a small scalar hex bar, fixes the left face, and retains the
right face as physical interface coordinates. It assembles sparse full-order
stiffness and mass matrices, builds a Craig-Bampton basis from K and M,
then forms
Kr = cb.project_matrix(K)
Mr = cb.project_matrix(M)
Finally, it solves the generalized eigenproblems
K phi = omega^2 M phi and Kr q = omega^2 Mr q and prints the frequency
error against the full-order model.
Notes#
make_craig_bampton_basis(K, M, ...)uses the internal mass block in the fixed-interface modal solve.cb.project_matrix(M)gives the reduced mass matrix used for vibration or Newmark-style dynamics.Sparse inputs can be passed directly;
project_matrixavoids unnecessary densification during the full-matrix multiply.