<< Click to Display Table of Contents >> Eigenvalues and Modal Analysis |
![]() ![]() ![]() |
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. At present, the eigenvalues must be real, and no nonlinear uses of LAMBDA are accepted.
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.
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 as those associated with eigenvalues of "lambda+shift" in the original system. 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 in the former system.
Eigenvalue shifting is demonstrated in the examples "Samples | Usage | Eigenvalues | Waveguide20.pde" and "Samples | Usage | Eigenvalues | Shiftguide.pde".