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.

Increasing Precision of Eigenfrequency Analysis

Please login with a confirmed email address before reporting spam

I am trying to tabulate the first 6 eigenfrequencies of my model to (at least) 11 significant figures. (Mode 1 should be around 561184.2431, my solution reads 561.1800000E6...)

I am having trouble doing so (both increasing the accuracy of the solution and getting the first 6 mode frequencies tabulated)

Thanks for any pointers.



5 Replies Last Post Mar 1, 2024, 3:55 p.m. EST
Robert Koslover Certified Consultant

Please login with a confirmed email address before reporting spam

Posted: 8 months ago Feb 28, 2024, 7:26 p.m. EST
Updated: 8 months ago Feb 28, 2024, 7:26 p.m. EST

Not sure if any of this will help, but... have you tried modifying the relative tolerance in the eigenvalue solver setting? You might also consider a finer mesh, higher-order discretization of the elements, or both. Also, make sure you are displaying enough digits of precision.

-------------------
Scientific Applications & Research Associates (SARA) Inc.
www.comsol.com/partners-consultants/certified-consultants/sara
Not sure if any of this will help, but... have you tried modifying the relative tolerance in the eigenvalue solver setting? You might also consider a finer mesh, higher-order discretization of the elements, or both. Also, make sure you are displaying enough digits of precision.

Henrik Sönnerlind COMSOL Employee

Please login with a confirmed email address before reporting spam

Posted: 8 months ago Feb 29, 2024, 3:02 a.m. EST
Updated: 8 months ago Feb 29, 2024, 4:49 a.m. EST

I think the precision you are asking for is difficult to attain, but you can find some comments about improving the accuracy in the section A Note on Numerical Accuracy in https://www.comsol.com/blogs/how-to-analyze-eigenfrequencies-that-change-with-temperature

In real life, it is of course never possible to get such an accuracy. Errors caused by material properties and manufacturing deviations are much larger. The only purpose of looking for super high accuracy of eigenfrequencies is when you compare the effect of controlled changes in the numerical model.

-------------------
Henrik Sönnerlind
COMSOL
I think the precision you are asking for is difficult to attain, but you can find some comments about improving the accuracy in the section *A Note on Numerical Accuracy* in In real life, it is of course never possible to get such an accuracy. Errors caused by material properties and manufacturing deviations are much larger. The only purpose of looking for super high accuracy of eigenfrequencies is when you compare the effect of controlled changes in the numerical model.

Please login with a confirmed email address before reporting spam

Posted: 8 months ago Feb 29, 2024, 1:00 p.m. EST
Updated: 8 months ago Feb 29, 2024, 12:59 p.m. EST

Not sure if any of this will help, but... have you tried modifying the relative tolerance in the eigenvalue solver setting? You might also consider a finer mesh, higher-order discretization of the elements, or both. Also, make sure you are displaying enough digits of precision.

Varying the relative tolerance does not improve the precision of the mode frequency.

I am using an extremely fine mesh and this is the best it can do. How do I make sure I am displaying enough digits of precision?

>Not sure if any of this will help, but... have you tried modifying the relative tolerance in the eigenvalue solver setting? You might also consider a finer mesh, higher-order discretization of the elements, or both. Also, make sure you are displaying enough digits of precision. Varying the relative tolerance does not improve the precision of the mode frequency. I am using an extremely fine mesh and this is the best it can do. How do I make sure I am displaying enough digits of precision?

Robert Koslover Certified Consultant

Please login with a confirmed email address before reporting spam

Posted: 8 months ago Feb 29, 2024, 1:25 p.m. EST
Updated: 8 months ago Feb 29, 2024, 1:30 p.m. EST

Henrik is the real expert, but I'll offer some comments. (1) Regarding precision & displayed number of digits, you can modify this in various places. Among others, go to: File --> Preferences --> User Interface --> Precision. Also, try File --> Preferences --> Results --> Tables and set the "Display Precision" there. Also, go to File --> Preferences --> Graphics --> Display Format and choose the maximum number of digits. There may be other similar settings, too. Look around for more. (2) Regarding computational precision, the challenge/frustration of accurately computing small differences between otherwise very-similar modeled situations is not new. The code is fundamentally numerical; it approximates continuous space and time discretely. In my own limited experience, one piece of advice from Henrik's linked note really stands out as critical: "Change only the parameters necessary for capturing the physics. For example, use the same mesh for all studies." If that isn't good enough, then back to basics: ask yourself what is the fundamental thing you are trying to find out? You probably don't need to know an eigenfrequency to 11 significant figures. Maybe, if what you really want is to know how much an eigenfrequency changes, then you need to be modeling an equation for the change in the eigenfrequency, rather than its value. If so, and if you can re-formulate the mathematics of your problem in that form, then you will likely be able to solve your problem. (The world of acoustic modeling is analogous here. One can model sound waves in a room in terms of the pressure distribution, and with good precision, all despite the fact that the pressure differences associated with the waves are utterly miniscule if compared to the background atmospheric pressure.)

-------------------
Scientific Applications & Research Associates (SARA) Inc.
www.comsol.com/partners-consultants/certified-consultants/sara
Henrik is the real expert, but I'll offer some comments. (1) Regarding precision & displayed number of digits, you can modify this in various places. Among others, go to: File --> Preferences --> User Interface --> Precision. Also, try File --> Preferences --> Results --> Tables and set the "Display Precision" there. Also, go to File --> Preferences --> Graphics --> Display Format and choose the maximum number of digits. There may be other similar settings, too. Look around for more. (2) Regarding computational precision, the challenge/frustration of accurately computing small differences between otherwise very-similar modeled situations is not new. The code is fundamentally numerical; it *approximates* continuous space and time *discretely*. In my own limited experience, one piece of advice from Henrik's linked note really stands out as critical: "Change only the parameters necessary for capturing the physics. For example, use the same mesh for all studies." If that isn't good enough, then back to basics: ask yourself what is the *fundamental thing* you are trying to find out? You *probably* don't need to know an eigenfrequency to 11 significant figures. Maybe, if what you really want is to know how much an eigenfrequency *changes*, then you need to be modeling an equation for the *change* in the eigenfrequency, rather than its value. If so, and if you can re-formulate the mathematics of your problem in that form, then you will likely be able to solve your problem. (The world of acoustic modeling is analogous here. One can model sound waves in a room in terms of the pressure distribution, and with good precision, all despite the fact that the pressure differences associated *with the waves* are utterly miniscule if compared to the background atmospheric pressure.)

Please login with a confirmed email address before reporting spam

Posted: 8 months ago Mar 1, 2024, 3:55 p.m. EST
Updated: 8 months ago Mar 1, 2024, 3:55 p.m. EST

Henrik is the real expert, but I'll offer some comments. (1) Regarding precision & displayed number of digits, you can modify this in various places. Among others, go to: File --> Preferences --> User Interface --> Precision. Also, try File --> Preferences --> Results --> Tables and set the "Display Precision" there. Also, go to File --> Preferences --> Graphics --> Display Format and choose the maximum number of digits. There may be other similar settings, too. Look around for more. (2) Regarding computational precision, the challenge/frustration of accurately computing small differences between otherwise very-similar modeled situations is not new. The code is fundamentally numerical; it approximates continuous space and time discretely. In my own limited experience, one piece of advice from Henrik's linked note really stands out as critical: "Change only the parameters necessary for capturing the physics. For example, use the same mesh for all studies." If that isn't good enough, then back to basics: ask yourself what is the fundamental thing you are trying to find out? You probably don't need to know an eigenfrequency to 11 significant figures. Maybe, if what you really want is to know how much an eigenfrequency changes, then you need to be modeling an equation for the change in the eigenfrequency, rather than its value. If so, and if you can re-formulate the mathematics of your problem in that form, then you will likely be able to solve your problem. (The world of acoustic modeling is analogous here. One can model sound waves in a room in terms of the pressure distribution, and with good precision, all despite the fact that the pressure differences associated with the waves are utterly miniscule if compared to the background atmospheric pressure.)

That is exactly what I needed!

I was able to increase the number of displayed digits (I may have phrased my question poorly)

Thank you and Mr. Sönnerlind for your time!

>Henrik is the real expert, but I'll offer some comments. (1) Regarding precision & displayed number of digits, you can modify this in various places. Among others, go to: File --> Preferences --> User Interface --> Precision. Also, try File --> Preferences --> Results --> Tables and set the "Display Precision" there. Also, go to File --> Preferences --> Graphics --> Display Format and choose the maximum number of digits. There may be other similar settings, too. Look around for more. (2) Regarding computational precision, the challenge/frustration of accurately computing small differences between otherwise very-similar modeled situations is not new. The code is fundamentally numerical; it *approximates* continuous space and time *discretely*. In my own limited experience, one piece of advice from Henrik's linked note really stands out as critical: "Change only the parameters necessary for capturing the physics. For example, use the same mesh for all studies." If that isn't good enough, then back to basics: ask yourself what is the *fundamental thing* you are trying to find out? You *probably* don't need to know an eigenfrequency to 11 significant figures. Maybe, if what you really want is to know how much an eigenfrequency *changes*, then you need to be modeling an equation for the *change* in the eigenfrequency, rather than its value. If so, and if you can re-formulate the mathematics of your problem in that form, then you will likely be able to solve your problem. (The world of acoustic modeling is analogous here. One can model sound waves in a room in terms of the pressure distribution, and with good precision, all despite the fact that the pressure differences associated *with the waves* are utterly miniscule if compared to the background atmospheric pressure.) That is exactly what I needed! I was able to increase the number of displayed digits (I may have phrased my question poorly) Thank you and Mr. Sönnerlind for your time!

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.