Should results be scaled for eigenmodes on result reading?

About the development of the FEM module/workbench.

Moderator: bernd

User avatar
bernd
Veteran
Posts: 12849
Joined: Sun Sep 08, 2013 8:07 pm
Location: Zürich, Switzerland
Contact:

Should results be scaled for eigenmodes on result reading?

Post by bernd »

For the eigenmodes all results are scaled: https://github.com/FreeCAD/FreeCAD/blob ... #L232-L240 this was introduced from the beginning of frequency analysis. https://github.com/FreeCAD/FreeCAD/comm ... fa4929R212

IMHO these results should not be scaled on import!

How about other opinions? What does other software do?

bernd
User avatar
bernd
Veteran
Posts: 12849
Joined: Sun Sep 08, 2013 8:07 pm
Location: Zürich, Switzerland
Contact:

Re: result scaling for eigenmodes

Post by bernd »

HarryvL wrote: ping
PrzemoF wrote: ping
User avatar
HarryvL
Veteran
Posts: 1283
Joined: Sat Jan 06, 2018 7:38 pm
Location: Netherlands

Re: Should results be scaled for eigenmodes on result reading?

Post by HarryvL »

You’re right. Only the deformation shapes (eigenmodes) matter.
User avatar
bernd
Veteran
Posts: 12849
Joined: Sun Sep 08, 2013 8:07 pm
Location: Zürich, Switzerland
Contact:

Re: Should results be scaled for eigenmodes on result reading?

Post by bernd »

HarryvL wrote: Thu Feb 07, 2019 6:49 am You’re right. Only the deformation shapes (eigenmodes) matter.
even they. IMHO we should calculate appropriate scalling on result viewing. The result obj should hold the the original solver results.
User avatar
HarryvL
Veteran
Posts: 1283
Joined: Sat Jan 06, 2018 7:38 pm
Location: Netherlands

Re: Should results be scaled for eigenmodes on result reading?

Post by HarryvL »

Yes but “appropriate” is not well defined for eigenmodes. You can just scale by maximum value, for example: scale=0.01*max_coord_range/max_disp.
User avatar
HarryvL
Veteran
Posts: 1283
Joined: Sat Jan 06, 2018 7:38 pm
Location: Netherlands

Re: Should results be scaled for eigenmodes on result reading?

Post by HarryvL »

And if you want to show numerical values you could scale to a maximum of 1.0
User avatar
bernd
Veteran
Posts: 12849
Joined: Sun Sep 08, 2013 8:07 pm
Location: Zürich, Switzerland
Contact:

Re: Should results be scaled for eigenmodes on result reading?

Post by bernd »

ATM they are scaled to the mesh geometry (longest span in main directions.) on result import!

My idea is let the user decide how they should be scaled. Thus I would not scale them at all during result reading of frd file. This would mean in the result obj are exact the values from the frd file.
User avatar
HarryvL
Veteran
Posts: 1283
Joined: Sat Jan 06, 2018 7:38 pm
Location: Netherlands

Re: Should results be scaled for eigenmodes on result reading?

Post by HarryvL »

Yes that would be an option. I never checked, but would presume that eigenvectors get normalised in Calculix before export. At least that’s how I used to program it. Either normalize on the maximum element or on length. Let’s assume it is on maximum element for a moment. In that case the maximum imported value would be 1, irrespective of length units used. So what is displayed (before user scaling) maybe tiny (if the user built the model in say thousands of millimeters) or huge (if he/she did it in fractions of a kilometer). I therefore think it would be smarter to pre-scale as (for example) scale=0.01*model_range/max_disp. Then what is shown before user intervention is independent of units used.
User avatar
bernd
Veteran
Posts: 12849
Joined: Sun Sep 08, 2013 8:07 pm
Location: Zürich, Switzerland
Contact:

Re: Should results be scaled for eigenmodes on result reading?

Post by bernd »

thanks very much harry. I will do some tests with some frequency analysises.
User avatar
PrzemoF
Veteran
Posts: 3520
Joined: Fri Jul 25, 2014 4:52 pm
Contact:

Re: Should results be scaled for eigenmodes on result reading?

Post by PrzemoF »

HarryvL wrote: Thu Feb 07, 2019 10:00 am Yes that would be an option. I never checked, but would presume that eigenvectors get normalised in Calculix before export. At least that’s how I used to program it. Either normalize on the maximum element or on length. Let’s assume it is on maximum element for a moment. In that case the maximum imported value would be 1, irrespective of length units used. So what is displayed (before user scaling) maybe tiny (if the user built the model in say thousands of millimeters) or huge (if he/she did it in fractions of a kilometer). I therefore think it would be smarter to pre-scale as (for example) scale=0.01*model_range/max_disp. Then what is shown before user intervention is independent of units used.
From my memory, so be careful: the displacement doesn't match anything in the real world. So the exact values from the frd file are not that important. Again, if I remember correctly it was scaled to show some displacement to the user and I didn't really care what's the scale because the displacement has no translation to the real world displacement. Unfortunately I can't find that information right now (I'll keep searching for it).
That comment:

Code: Select all

                # Allow for max displacement to be 0.1% of the span
                # FIXME - add to Preferences
was to remind me to allow user to define the displacement in Preferences, but it never happened..
I guess not scaling on import and adding scale to Preferences would be a perfect solution.

Edit: Found it! Take a look at this post: https://forum.freecadweb.org/viewtopic. ... 189#p98162
Post Reply