We have the following generalized eigenvalue (set of) problem(s)

$$[K_R(\kappa)]\{u_R\} = \omega^2[M_R(\kappa)]\{u_R\}\quad \forall \kappa \in [\kappa_0, \kappa_1]$$


\begin{align} &K_R(\kappa) = T^H(\kappa) K T(\kappa)\, ,\\ &M_R(\kappa) = T^H(\kappa) M T(\kappa)\, ,\\ &u = T(\kappa) u_R\, . \end{align}

Where $K$ and $M$ are sparse and symmetric and come from a PDE, and $T(\kappa)$ is also sparse, non-square, complex and represents a set of multipoint constraints. Forming the matrix $T$ is relatively cheap compared with the other matrices since they have a fixed structure and are sparse.

If we consider a regular mesh with $n^2$ nodes, we have that:

\begin{align} &K\in \mathbb{R}^{n^2\times n^2}\, ,&M\in \mathbb{R}^{n^2\times n^2}\, ,\\ &u\in \mathbb{C}^{n^2}\, , & &\\ &K_R\in \mathbb{C}^{(n^2 - 2n + 1)\times (n^2 - 2n + 1)}\, ,&M_R\in \mathbb{C}^{(n^2 - 2n + 1)\times (n^2 - 2n + 1)}\, ,&\\ &u_R\in \mathbb{C}^{(n^2 - 2n + 1)}\, , & &\\ &T(\kappa) \in \mathbb{C}^{(2n -1)\times(n^2 - 2n + 1)}\, .& & \end{align}

We normally handle the problem in one of the following ways:

  1. Assemble $K$ and $M$ and for each value of $\kappa$ form the product matrices $K_R$ and $M_R$. The main advantage of this method is that we have to assemble once, but then we loose the sparse nature of the problem.
  2. Assemble $K_R$ and $M_R$ for each $\kappa$ value, conserving the sparse nature of the problem.


Is there any way of solving the generalized eigenvalue problem

$$[T^H(\kappa) K T(\kappa)]\{u_R\} = \omega^2[T^H(\kappa) M T(\kappa)]\{u_R\}\quad \forall \kappa \in [\kappa_0, \kappa_1]\, ,$$

conserving the sparse nature of the system and assembling the matrices $K$ and $M$ only once?

  • $\begingroup$ I think I'm missing something, but can't you use an iterative method for the eigenproblem, can't you work with the product of matrices as it is written? $\endgroup$
    – VorKir
    Mar 23, 2019 at 3:47
  • $\begingroup$ @VorKir, I think that you are right. I think I could just define the linear operators and pass that to the solver. $\endgroup$
    – nicoguaro
    Mar 23, 2019 at 15:42

1 Answer 1


As suggested by @VorKir, it is enough to write the product of matrices as a linear operator for the iterative solver. Forming the matrices $T(\kappa)$ and creating the linear operator for each value of $\kappa$ is really fast compared with assembling the whole matrix and solving the eigenvalue problem for well-posed problems.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.