TITLE: Efficiently computing a few localized eigenvectors
QUESTION [8 upvotes]: Let $H = \triangle + V(x) : \mathbb{R}^2 \rightarrow \mathbb{R}^2$. I am interested in domain decomposition for an eigenproblem involving $H$.
The lowest 1000 eigenfunctions of $H$,  $ \psi_i $, can be partitioned using a region, $\Omega \subset \mathbb{R}^2$, such that each $\psi_i$ localizes either inside of $\Omega$ or outside of $\Omega$. $\Omega$ is not a subspace of $\mathbb{R}^2$ as it may be an oddly shaped region.
Label the inner eigenfunctions $\psi_i^{in}$ and the outer ones $\psi_i^{out}$. There's only about 10 $\psi_i^{in}$s. Given $\Omega$, my goal is to efficiently compute the $\psi_i^{in}$.
One way to find the $\psi_i^{in}$ would be to discretize, compute all 1000 $\psi_i$s, and then partition. This is what I do now (5-point stencil for $\triangle$ on a $10^3 \times 10^3$ grid). The problem is that this requires diagonalizing over a 1000 dimensional space in order to get 10 eigenvectors. It seems like there would be a cheaper way to compute the $\psi_i^{in}$.
Edit: I reposted to https://scicomp.stackexchange.com/questions/1396/efficiently-computing-a-few-localized-eigenvectors#comment2200_1396 and hopefully clarified the problem statement.
Edit I think I can solve this if I can at least figure a way to solve
\begin{equation}
\max \psi^T H \psi \text{ subject to } P\psi = \psi \text{ and } \psi^T \psi = 1
\end{equation}
where $P$ is projection onto the space of functions localized over $\Omega$. My guess is that this will end up looking like power iterations with a projection step built in between matrix applies. If this is doable then something like inverse iteration should be doable which will give me what I want.

REPLY [9 votes]: To build on Federico's answer, why not run a restarted Lanczos iteration but compute harmonic Ritz vectors to get approximations to the interior eigenpairs?  For something so small, though, why not just diagonalize, as has already be stated.
{"set_name": "stack_exchange", "score": 8, "question_id": 88171}