Note: This discussion is about an older version of the COMSOL Multiphysics® software. The information provided may be out of date.

Discussion Closed This discussion was created more than 6 months ago and has been closed. To start a new discussion with a link back to this one, click here.

Maximum Number of Eigenvalues

Please login with a confirmed email address before reporting spam

Hello,

I am looking at eigen frequencies in a simple beam. In the end I want the modal matrix and the corresponding eigen values. The error message I receive is that I can only solve for less than the number of unconstrained degrees of freedom minus 1. Which means that a bar with free-free end conditions, I can solve for 6*(number of nodes)-2 eigenvalues.

So if I broke a beam into 4 elements (5 nodes) it would have 30 degrees of freedom. it would have 30 eigenvalues. I however, can only solve for 28 of them. Which means I can also only solve for 28 eigenvectors.

My Mass and Stiffness matrices will be 30X30. My modal matrix will 30X28.

Is there a solution for this?

Any help is greatly appreciated.

Thanks,

Joshua

11 Replies Last Post Sep 25, 2012, 11:34 a.m. EDT
Ivar KJELBERG COMSOL Multiphysics(r) fan, retired, former "Senior Expert" at CSEM SA (CH)

Please login with a confirmed email address before reporting spam

Posted: 1 decade ago Sep 18, 2012, 2:34 a.m. EDT
Hi

I cannot remeber there is any particular limit on number of modes, but you must be sure you resolve the modes correctly, so if you want 30 first modes of a beam, you must be sure you mesh density is fine enough to have some 5 (or better 10) elements per mode wavelength for the highest mode. And you ask for 30 modes in the eigenfrequency solver node

--
Good luck
Ivar
Hi I cannot remeber there is any particular limit on number of modes, but you must be sure you resolve the modes correctly, so if you want 30 first modes of a beam, you must be sure you mesh density is fine enough to have some 5 (or better 10) elements per mode wavelength for the highest mode. And you ask for 30 modes in the eigenfrequency solver node -- Good luck Ivar

Please login with a confirmed email address before reporting spam

Posted: 1 decade ago Sep 18, 2012, 11:00 a.m. EDT
Thanks for the quick response,

To fully state the real problem, I want all of the eigenfrequencies that a system contains. I want all of the eigenvectors of associated with the system. For the modal matrix to be complete I must solve for all of the mode shapes at all of the frequencies. I am wondering if there is a way in Comsol to solve for all of them.

Thanks again,

Joshua
Thanks for the quick response, To fully state the real problem, I want all of the eigenfrequencies that a system contains. I want all of the eigenvectors of associated with the system. For the modal matrix to be complete I must solve for all of the mode shapes at all of the frequencies. I am wondering if there is a way in Comsol to solve for all of them. Thanks again, Joshua

Ivar KJELBERG COMSOL Multiphysics(r) fan, retired, former "Senior Expert" at CSEM SA (CH)

Please login with a confirmed email address before reporting spam

Posted: 1 decade ago Sep 18, 2012, 2:34 p.m. EDT
Hi

are you sure the number is finite ?

even with FEM you will get to a limit that the mode number and the mesh resolution + binary number representation fight each other so "all" I do not believe you can catch, but many certainly, with some care.
Generally its eay to get above 90% of the total mass, it's also a question of how long you accept to wait ...

--
Good luck
Ivar
Hi are you sure the number is finite ? even with FEM you will get to a limit that the mode number and the mesh resolution + binary number representation fight each other so "all" I do not believe you can catch, but many certainly, with some care. Generally its eay to get above 90% of the total mass, it's also a question of how long you accept to wait ... -- Good luck Ivar

Please login with a confirmed email address before reporting spam

Posted: 1 decade ago Sep 18, 2012, 5:15 p.m. EDT
Thanks again,

It is my understanding that the number of eigenfrequencies that can be found is equivalent to the number of degrees of freedom within a system. If I have a 3D beam made up of 4 elements (5 nodes), that is unconstrained, there are 30 degrees of freedom within that system. Meaning there are 30 eigenfrequencies that can be found. Which would mean that there are 30 eigenvectors to the system. If I can only solve for 28 eigenfrequencies, then I have to work with a reduced modal matrix.

The mass and stiffness matrices will both be a banded diagonal matrix that is 30X30.

I am wondering if there is a different solver that will allow me to solve for all eigenfrequencies and all eigenvectors?

Thanks,

Joshua
Thanks again, It is my understanding that the number of eigenfrequencies that can be found is equivalent to the number of degrees of freedom within a system. If I have a 3D beam made up of 4 elements (5 nodes), that is unconstrained, there are 30 degrees of freedom within that system. Meaning there are 30 eigenfrequencies that can be found. Which would mean that there are 30 eigenvectors to the system. If I can only solve for 28 eigenfrequencies, then I have to work with a reduced modal matrix. The mass and stiffness matrices will both be a banded diagonal matrix that is 30X30. I am wondering if there is a different solver that will allow me to solve for all eigenfrequencies and all eigenvectors? Thanks, Joshua

Ivar KJELBERG COMSOL Multiphysics(r) fan, retired, former "Senior Expert" at CSEM SA (CH)

Please login with a confirmed email address before reporting spam

Posted: 1 decade ago Sep 19, 2012, 1:30 a.m. EDT
Hi

OK presented like that I believe we are talking about 2 different concepts:

I was referring to the modes of a physical beam, represented by a meshed FEM model,

while you are in the theory of maths,

but then you should also take a closer look to the way COMSOL treats elements and adds discretization functions, to define the internal DoFs, I would expect that has also something to do

--
Good luck
Ivar
Hi OK presented like that I believe we are talking about 2 different concepts: I was referring to the modes of a physical beam, represented by a meshed FEM model, while you are in the theory of maths, but then you should also take a closer look to the way COMSOL treats elements and adds discretization functions, to define the internal DoFs, I would expect that has also something to do -- Good luck Ivar

Nagi Elabbasi Facebook Reality Labs

Please login with a confirmed email address before reporting spam

Posted: 1 decade ago Sep 20, 2012, 8:45 a.m. EDT
I am not sure why there is this restriction on the total number of eigenfrequencies. There is a workaround however that should work. Solve for the lowest say 20 frequencies, then solve again for 20 frequencies centered around a frequency higher than the highest solved frequency. That should get you the full 30 frequencies (and mode shapes) with overlaps.

Nagi Elabbasi
Veryst Engineering
I am not sure why there is this restriction on the total number of eigenfrequencies. There is a workaround however that should work. Solve for the lowest say 20 frequencies, then solve again for 20 frequencies centered around a frequency higher than the highest solved frequency. That should get you the full 30 frequencies (and mode shapes) with overlaps. Nagi Elabbasi Veryst Engineering

Ivar KJELBERG COMSOL Multiphysics(r) fan, retired, former "Senior Expert" at CSEM SA (CH)

Please login with a confirmed email address before reporting spam

Posted: 1 decade ago Sep 20, 2012, 10:55 a.m. EDT
Hi Nagi

indeed, but still, your mesh must be fine enough to solve correctly the "waves" of your highest eigenvector, to get useful results out

or am I missing something ? ;)

--
Good luck
Ivar
Hi Nagi indeed, but still, your mesh must be fine enough to solve correctly the "waves" of your highest eigenvector, to get useful results out or am I missing something ? ;) -- Good luck Ivar

Nagi Elabbasi Facebook Reality Labs

Please login with a confirmed email address before reporting spam

Posted: 1 decade ago Sep 20, 2012, 1:38 p.m. EDT
You’re right Ivar, but I don’t think (from my understanding of the question) that Joshua will assume that the eigenvalues are correct physically accurate values. He just wants to get all X eigenvalues of a system with X unknowns.
You’re right Ivar, but I don’t think (from my understanding of the question) that Joshua will assume that the eigenvalues are correct physically accurate values. He just wants to get all X eigenvalues of a system with X unknowns.

Please login with a confirmed email address before reporting spam

Posted: 1 decade ago Sep 20, 2012, 5:20 p.m. EDT
Thanks Ivar and Nagi,

The workaround allows me to find the every eigenfrequency. However I would have thought that the eigenvectors would have been overlapped (ignoring numerical errors).

From what I've seen I can solve for the first 28 eigenvectors and the last 28 eigenvectors. There does not seem to be a crossover of the eigenvectors. I am using the Mass matrix to control scaling of the eigenvectors.

There are 30 eigenvectors available in the system. I thought that I could subtract the last 8 (from the first 28) and then add the last 10 to get all 30 eigenvectors. This does not work.

I am wondering if the best way is to use matlab's eig function ( the input being comsol's mass and stiffness matrices of the system) and scale the eigenvectors accordingly.

Thanks,

Joshua
Thanks Ivar and Nagi, The workaround allows me to find the every eigenfrequency. However I would have thought that the eigenvectors would have been overlapped (ignoring numerical errors). From what I've seen I can solve for the first 28 eigenvectors and the last 28 eigenvectors. There does not seem to be a crossover of the eigenvectors. I am using the Mass matrix to control scaling of the eigenvectors. There are 30 eigenvectors available in the system. I thought that I could subtract the last 8 (from the first 28) and then add the last 10 to get all 30 eigenvectors. This does not work. I am wondering if the best way is to use matlab's eig function ( the input being comsol's mass and stiffness matrices of the system) and scale the eigenvectors accordingly. Thanks, Joshua

Nagi Elabbasi Facebook Reality Labs

Please login with a confirmed email address before reporting spam

Posted: 1 decade ago Sep 21, 2012, 8:21 a.m. EDT
Hi Joshua,

The overlapped eigenvalues should match. The eigenvectors should match too except where there are repeated eigenvalues (and there should be a few of those if you have a symmetric beam cross-section). The eigenvectors are not unique for these eigenvalues.

Nagi Elabbasi
Veryst Engineering
Hi Joshua, The overlapped eigenvalues should match. The eigenvectors should match too except where there are repeated eigenvalues (and there should be a few of those if you have a symmetric beam cross-section). The eigenvectors are not unique for these eigenvalues. Nagi Elabbasi Veryst Engineering

Henrik Sönnerlind COMSOL Employee

Please login with a confirmed email address before reporting spam

Posted: 1 decade ago Sep 25, 2012, 11:34 a.m. EDT
Hi,

Note that if you have an unconstrained model ("free-free modes"), then there are a number of zero eigenvalues which will be computed as small (possibly even imaginary or complex) numbers. The corresponding eigenmodes are more or less arbitrary linear combinations of the rigid body motions.

Computing for the zero eigenvalues may decrease the accuracy of the higher eigenvalues. In a free-free case, you should always set the "Search for eigenfrequencies around" parameter to a value of the same order as the first expected non-zero eigenfrequency when searching for the lower set of eigenfrequencies. If you wish to augment your result with the highest eigenvalues, you can then set "Search for eigenfrequencies around" to something higher that the highest earlier computed eigenfrequency.

The best accuracy in eigenvalues and eigenmodes are obtained for eigenvalues which do not differ by several orders of magnitude from the value given by "Search for eigenfrequencies around", so if you want to scan a wide range, then it can be done in several analyses with different values of this parameter.

As Nagi points out, the approach of computing the eigenvalues in several passes should work with unique results for the eigenmodes, as long as you do not have multiple eigenvalues as in a symmetric structure. In that case the corresponding eigenmodes are not unique, and you can get different eigenmodes to the same eigenvalues when re-running the analysis. But accuracy problems as described above could also be the culprit.

Regards,
Henrik
Hi, Note that if you have an unconstrained model ("free-free modes"), then there are a number of zero eigenvalues which will be computed as small (possibly even imaginary or complex) numbers. The corresponding eigenmodes are more or less arbitrary linear combinations of the rigid body motions. Computing for the zero eigenvalues may decrease the accuracy of the higher eigenvalues. In a free-free case, you should always set the "Search for eigenfrequencies around" parameter to a value of the same order as the first expected non-zero eigenfrequency when searching for the lower set of eigenfrequencies. If you wish to augment your result with the highest eigenvalues, you can then set "Search for eigenfrequencies around" to something higher that the highest earlier computed eigenfrequency. The best accuracy in eigenvalues and eigenmodes are obtained for eigenvalues which do not differ by several orders of magnitude from the value given by "Search for eigenfrequencies around", so if you want to scan a wide range, then it can be done in several analyses with different values of this parameter. As Nagi points out, the approach of computing the eigenvalues in several passes should work with unique results for the eigenmodes, as long as you do not have multiple eigenvalues as in a symmetric structure. In that case the corresponding eigenmodes are not unique, and you can get different eigenmodes to the same eigenvalues when re-running the analysis. But accuracy problems as described above could also be the culprit. Regards, Henrik

Note that while COMSOL employees may participate in the discussion forum, COMSOL® software users who are on-subscription should submit their questions via the Support Center for a more comprehensive response from the Technical Support team.