CFD Online Discussion Forums

CFD Online Discussion Forums (
-   OpenFOAM Running, Solving & CFD (
-   -   Solution dependent mesh movement (

Van de Leur June 22, 2011 10:50

Solution dependent mesh movement
Dear users,

With dynamic meshing I want to make a boundary that moves depending on the flow velocity over this boundary. The movement of the boundary will then become solution dependent.

To achieve this I would like to use the velocityLaplacianFvMotionSolver.
However, the movement of a boundary in this solver is constant and read from the files 'pointMotionU' and 'cellMotionU'.
Instead of reading the displacement velocity from a file I would like to use the velocities in the domain.

The question is if the current input for velocityLaplacianFvMotionSolver.C:


can be replaced by something along the lines of:

pointMotionU_ = U.boundaryField()[patchi]

So far I have not been successful, does anyone have a suggestion?

Kind regards,


philippose June 25, 2011 14:41

Hello Kevin,

A Good Evening to you :-)!

I had looked into this about two years ago, and adapted some of the common solvers (turbFoam and simpleFoam) to handle solution based motion of boundaries.

You need to search this forum with the following phrase "turbulent solver rigid body dynamics", and you will find a topic with three pages worth of discussions, and multiple downloads for solvers, and examples.

Since I have not looked into it for a long time now, you might have to make some small modifications to get it running on OpenFOAM-1.6-ext (Or maybe OpenFOAM-1.7.x)....

If you have any questions, I could try and help you out :-)!

Have a great weekend ahead!


Van de Leur June 28, 2011 15:30

Hey Philippose,

Thanks a lot for the reference, very useful.
I'll let you know if I have some questions, or nice results.



Van de Leur September 27, 2011 15:26


I've been following your advice and it helps me a lot.
Regarding the code you've written I do not fully understand the following line from the file solveForceBalance.H:

scalar calcVelocityX = calcVelocity * (aVector & dirVector1);

If I'm not mistaken aVector gives the velocity after multiplication with calcVelocity and dirVector1 gives the direction of this velocity. Mu question is, why is the directional vector also multiplied with calcVelocity?



Detian Liu January 13, 2014 08:00

Dear Philippose and Kevin,
I am very interesting in your great work, and I want to implement the functionality in which dynamic mesh motion is based on the velocity solution, that means if U is less than U0, the mesh will become a part of boundary, if U is large than U0, the mesh will become a part of computational demain, whether I can use the Foam you mentioned before called "turbForceFoam" to implement this functionality? Or is there some inbuilt solvers in OpenFOAM2.2.2 can achieve this goal?
Thank you in advance for the help!
Best regards,


All times are GMT -4. The time now is 03:27.