Calculate eigenvalues in certain range for very large sparse matrices

Hello everyone,
I am currently solving the following Finite Element problem:
As I asume my solution are harmonic in time, I can transform it to the following problem:
Where ω is the angular frequency of my excitation. As my frequencies are very high, my mesh is very fine and the size of my problem is substantially big and I can't solve it with my current resources. Nonetheless, I want to calculate the natural modes and the natural frequencies of my problem, and approximate the solution of my problem as the sum of the natural modes multiplied by its corresponding weight based on the forcing term projection on the natural modes of my problem ().
As my matrices K and M are sparse, I use the eigs command to calculate the eigenmodes and the eigenfrequencies of my problem. Nonetheless, I can only get a reduced number of eigenfrequencies and close to the exictation frequency, and I would like to solve this problem iteratively for different frequencies . So, in order to reduce calculus time, I would like to calculate all the eigenvalues between a certain range .
I have a couple of questions about this problem:
  1. Is there a possibility to calculate all the eigenvalues and eigenmodes of a frequency range using eigs or, at least, for spare matrices?
  2. May it be faster, instead of calculate all the eigenfrequencies in a range, calculate the eigenfrequencies closer to the different excitation frequencies?
  3. Is there another way to compute eigenmodes and eigenfrequencies in a more faster and efficient way?
Sorry for being too long or too specific, it is the first question I post.
Thank you in advice for your help and your time. If you want me to specify more some aspects I may have missed, please ask it to me.

 Accepted Answer

Not directly but you can use deflation technique
omegamid = mean([omega0 omegaf]);
k = 10; % adjust
E = eigs(K, M, k, omegamid);
select k until E range you satisfies.

More Answers (0)

Categories

Find more on Linear Algebra in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!