FlexPDE can solve eigenvalue problems involving an arbitrary number of equations. This type of problem is identified by the appearance of the selector MODES=<number> in the select section, and by use of the reserved word LAMBDA in the equations section. The MODES selector tells FlexPDE how many modes to calculate, and LAMBDA in the equations stands for the eigenvalue.
FlexPDE uses the method of subspace iteration (see Bathe and Wilson, "Numerical Methods in Finite Element Analysis", Prentice-Hall, 1976) to solve for a selected number of eigenvalues of lowest magnitude. In this method, the full problem is projected onto a subspace of much smaller dimension, and the eigenvalues and eigenvectors of this reduced system are found. This process is repeated until convergence of the eigenvalues is achieved. The eigenvectors of the full system are then recovered from expansion of the eigenvectors of the reduced system. As in a power-series expansion, there is some loss of accuracy in the higher modes due to truncation error. For this reason, FlexPDE solves a subspace of dimension min(n+8,2*n), where n is the number of requested modes.
See the eigenvalue examples for demonstrations of this use of FlexPDE.
Eigenvalue Shifting
It is possible to examine eigenmodes which do not correspond to eigenvalues of the smallest magnitude by the technique of eigenvalue shifting. Consider the two systems
L(u) + lambda*u = 0
And
L(u) + lambda*u + shift*u = 0.
These systems will have the same eigenvectors, but the eigenvalues will differ by the value of "shift". Given the latter problem, FlexPDE will find a set of eigenvalues corresponding to the eigenvalues closest above "shift" in the spectrum of the former problem. The sum "lambda+shift" will correspond to the eigenvalue of the former system.
Eigenvalue shifting is demonstrated in the examples "Samples | Usage | Eigenvalues | Waveguide20.pde" and "Samples | Usage | Eigenvalues | Shiftguide.pde".
Page url: index.html?eigen.html