CFD Online Logo CFD Online URL
www.cfd-online.com
[Sponsors]
Home > Forums > Software User Forums > OpenFOAM > OpenFOAM Community Contributions > OpenFOAM CC Toolkits for Fluid-Structure Interaction

Bouncing ball

Register Blogs Members List Search Today's Posts Mark Forums Read

Like Tree3Likes
  • 1 Post By bigphil
  • 1 Post By bigphil
  • 1 Post By bigphil

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old   March 16, 2020, 14:57
Default Bouncing ball
  #1
New Member
 
Bruno Ramoa
Join Date: Jul 2019
Posts: 7
Rep Power: 3
brunomramoa is on a distinguished road
Hello to all,


I am trying to create a bouncing ball simulation with solids4foam. Something similar to this https://www.youtube.com/watch?v=WwZj8JXrLIo.




I started to assemble this case from the impact bar tutorial but now I am having some trouble with the initialization of the case.


I used the setFields to set the ball velocity to a very small value (1e-6) but it will not gain velocity due to the acceleration of gravity.


Does anyone have experience with this?


link for the case: https://drive.google.com/file/d/1Agw...ew?usp=sharing


Additionally, is it possible to get the kinetic and internal energy from solids4Foam?

Last edited by brunomramoa; March 18, 2020 at 18:54.
brunomramoa is offline   Reply With Quote

Old   March 19, 2020, 05:10
Default
  #2
Super Moderator
 
bigphil's Avatar
 
Philip Cardiff
Join Date: Mar 2009
Location: Dublin, Ireland
Posts: 846
Rep Power: 28
bigphil will become famous soon enoughbigphil will become famous soon enough
Quote:
Originally Posted by brunomramoa View Post
Hello to all,


I am trying to create a bouncing ball simulation with solids4foam. Something similar to this https://www.youtube.com/watch?v=WwZj8JXrLIo.




I started to assemble this case from the impact bar tutorial but now I am having some trouble with the initialization of the case.


I used the setFields to set the ball velocity to a very small value (1e-6) but it will not gain velocity due to the acceleration of gravity.


Does anyone have experience with this?


link for the case: https://drive.google.com/file/d/1Agw...ew?usp=sharing


Additionally, is it possible to get the kinetic and internal energy from solids4Foam?
When there is rigid body motion, I have found that using equation relaxation is a bad idea as it essentially eradicates rigid motion. Try the following relaxation settings in system/fvSolution:
Code:
relaxationFactors
{
    // Under-relaxatr ing the D equation by 0.99-0.9999 can improve convergence in                                                                                                                                              
    // some cases, in particular when there are solidContact boundaries                                                                                                                                                         
    equations
    {
        //DD           0.9999;                                                                                                                                                                                                  
    }

    // Under-relaxating the D field by 0.1-0.9 can improve convergence in some                                                                                                                                                  
    // cases                                                                                                                                                                                                                    
    fields
    {
        DD              0.7;
    }
}
Also for testing you might find it easier to start with a linear geometry solid model (e.g. linearGeometry or linearGeometryTotalDisplacement): they will have better convergence and allow you to learn the "good" settings for your case before changing to non-linear geometry.

Also for rigid motion, the solver struggles to define a reasonable normalisation factor for calculating the residuals so sometimes a time-step will go to the max correctors but if you look at the solution for different correctors it is not changing (or changing by a very small amount).

Finally, I am not sure how important the solution tolerance is in these cases but it is something to be aware of.

EDIT: Finally finally, you might need to use a finer plate mesh near the contact region as the contact quick-check algorithm can miss contact when the master and slave faces are very different in size; also a smaller time-step may help.

Philip
Daniel_Khazaei likes this.

Last edited by bigphil; March 19, 2020 at 05:11. Reason: Added "finally finally" point
bigphil is offline   Reply With Quote

Old   March 25, 2020, 14:49
Default
  #3
New Member
 
Bruno Ramoa
Join Date: Jul 2019
Posts: 7
Rep Power: 3
brunomramoa is on a distinguished road
Quote:
Originally Posted by bigphil View Post
When there is rigid body motion, I have found that using equation relaxation is a bad idea as it essentially eradicates rigid motion. Try the following relaxation settings in system/fvSolution:
Code:
relaxationFactors
{
    // Under-relaxatr ing the D equation by 0.99-0.9999 can improve convergence in                                                                                                                                              
    // some cases, in particular when there are solidContact boundaries                                                                                                                                                         
    equations
    {
        //DD           0.9999;                                                                                                                                                                                                  
    }

    // Under-relaxating the D field by 0.1-0.9 can improve convergence in some                                                                                                                                                  
    // cases                                                                                                                                                                                                                    
    fields
    {
        DD              0.7;
    }
}
Also for testing you might find it easier to start with a linear geometry solid model (e.g. linearGeometry or linearGeometryTotalDisplacement): they will have better convergence and allow you to learn the "good" settings for your case before changing to non-linear geometry.

Also for rigid motion, the solver struggles to define a reasonable normalisation factor for calculating the residuals so sometimes a time-step will go to the max correctors but if you look at the solution for different correctors it is not changing (or changing by a very small amount).

Finally, I am not sure how important the solution tolerance is in these cases but it is something to be aware of.

EDIT: Finally finally, you might need to use a finer plate mesh near the contact region as the contact quick-check algorithm can miss contact when the master and slave faces are very different in size; also a smaller time-step may help.

Philip

What about the latter part? Is there any function to keep track of the kinetic and potential energy in the system?


Best Regards!
brunomramoa is offline   Reply With Quote

Old   March 26, 2020, 04:11
Default
  #4
Super Moderator
 
bigphil's Avatar
 
Philip Cardiff
Join Date: Mar 2009
Location: Dublin, Ireland
Posts: 846
Rep Power: 28
bigphil will become famous soon enoughbigphil will become famous soon enough
I have just pushed a commit (55bd6bb2) to the development branch which adds a new functionObject called solidKineticEnergy and the tutorial tutorials/solids/linearElasticity/plateHole/bouncingPlateHole.

You can see from the code that it is relatively straight-forward to do. I aim to add some other energy function objects when I have time (but you might want to try it yourself).

Philip
Daniel_Khazaei likes this.
bigphil is offline   Reply With Quote

Old   March 30, 2020, 06:10
Default
  #5
Super Moderator
 
bigphil's Avatar
 
Philip Cardiff
Join Date: Mar 2009
Location: Dublin, Ireland
Posts: 846
Rep Power: 28
bigphil will become famous soon enoughbigphil will become famous soon enough
I pushed the solidPotentialEnergy function object to the development branch (20e0f235), to be merged with the master in due course.

This potential energy is defined a rho*g*h as opposed to internal strain energy (stress && strain), though I will aim to add that too when I have time.

Philip
Daniel_Khazaei likes this.
bigphil is offline   Reply With Quote

Reply

Tags
impact sim

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are Off
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
Unsteady Simulation Problem; Flow Around a Cricket Ball. Brock17 Main CFD Forum 5 February 12, 2017 10:58
Problems moving a ball - mesh crashes lbergmann CFX 24 February 16, 2016 08:01
UDF for oscilliating ball in a ball check valve A.Jalal Fluent UDF and Scheme Programming 0 September 15, 2015 16:42
Floating ball on free surface validations Bak_Flow FLUENT 0 November 10, 2008 16:30
Floating ball on free surface validations Bak_Flow Main CFD Forum 0 November 10, 2008 15:57


All times are GMT -4. The time now is 14:41.