lizhen-dlut / solfec

Automatically exported from code.google.com/p/solfec
0 stars 0 forks source link

body.damping not robust for FEM bodies #22

Open GoogleCodeExporter opened 8 years ago

GoogleCodeExporter commented 8 years ago
What steps will reproduce the problem?
1. Run the attached file.

What is the expected output? What do you see instead?
With values for body.damping on line 44 of 1E-3 or greater, Solfec either fails 
silently on the first step or fails with:
"fem.c: 764, Unhandled error: Global to local coordinates convertion failed in 
FEM module"

What version of the product are you using? On what operating system?
0.596 beta Windows serial debug .exe, XP 32-bit

Please provide any additional information below.
Not sure whether this is just a simple bug or might be related to cases where 
the critical damping ratio > 1 for frequencies which the body responds at.  
Think we'll probably be using values for body.damping of the order of 1E-5 so 
it may not be an immediate problem.

Original issue reported on code.google.com by steve.br...@atkinsglobal.com on 9 Jun 2011 at 8:04

Attachments:

GoogleCodeExporter commented 8 years ago
The damping force is simply = damping * stiffness matrix, hence for the moment 
no checks are made in terms of the correct ranges of the "damping" parameter. 
Too large values will destabilize the time integration, especially for the 
explicit integration scheme. In your example the default 'DEF_EXP' is used. We 
should rather be aiming at using one of the implicit schemes in combination 
with damping, preferably 'DEF_LIM'. Set

body.scheme = 'DEF_LIM'

and the example will not fail. You can also see that for damping = 1E-3 and 
DEF_LIM the body will just fall and rest, while for damping = 1E-5, it will 
bounce off. This is the kind of behavior we have discussed on Monday.

I will have a look into how and whether safe limits of damping can be computed 
automatically.

Original comment by t.kozi...@gmail.com on 9 Jun 2011 at 11:01