CFD Online Discussion Forums

CFD Online Discussion Forums (https://www.cfd-online.com/Forums/)
-   OpenFOAM Pre-Processing (https://www.cfd-online.com/Forums/openfoam-pre-processing/)
-   -   dynamicFvMesh - tabulated motion of a solid body + mesh morphing (https://www.cfd-online.com/Forums/openfoam-pre-processing/191408-dynamicfvmesh-tabulated-motion-solid-body-mesh-morphing.html)

HendrikW August 9, 2017 11:27

dynamicFvMesh - tabulated motion of a solid body + mesh morphing
 
2 Attachment(s)
Dear all,

This is my first post - actually in a technical forum ever - so please be a bit forgiving in terms of format.

Problem:
In OpenFoam 3.0, using interDyMFoam I am trying to apply a tabulated motion (heave and pitch in a 2D simulation) to observe the wave radiation by a solid body. FYI: The motion of the body is known prior to the CFD simulation and for this simplified analysis assumed to be independent of the fluid phase. I assume that the problem can be handled without changing the mesh topology as motions are small and have a mean of 0 (the body stays close to a fix point in the domain and doesn't pitch more than say +- 20deg). Hence I am trying to make use of dynamicFvMesh.

What I've tried so far:
As a starting point I have transformed the floatingObject tutorial into a 2D case with no constrains in x and z direction. As expected, the result looks like image 1 in the attachment. So far, so good.

Now, instead of generating fluid motion and solving the 6 DoF rigid body motion, I would like to prescribe the motion, ideally in tabulated form. The closest I have come to tabulated motion is when using the solidBodyMotionFvMesh with the solidBodyMotionFunction tabulated6DoFMotion. The result is rather useless for what I try to achieve as solidBodyMotionFvMesh doesn't perform any mesh morphing, see image 2 in the attachment. I guess I somehow need a combination of those two.

I also looked at the movingCone tutorial. But the velocityComponentLaplacianCoeffs seems to be restricted to a unidirectional motion, so also not quite what I am after.

In fact, I looked at most tutorials I could find containing a dynamicMeshDict, without having a breakthrough.

Googling, I came across the displacementInterpolation motion solver and was wondering whether this could do the trick for me, but couldn't find any documentation on the required displacementInterpolationCoeffs

So bottom line: I am stuck :confused:

Questions:

  1. Am I on the right track with dynamicMotionSolverFvMesh or should I further consider solidBodyMotionFvMesh?
  2. Which motion solver do you advise to use?
  3. How can I tabulate the known motion of the solid body?
  4. Is displacementInterpolationCoeffs something to look into?

Please don't hesitate to ask if the problem is not explained sufficiently.

Thanks a lot in advance for your help!

Best, Hendrik

nimasam August 27, 2017 02:40

As your motion is prescribed, i guess you can use laplacianVelocity or laplacianDisplacement motion, then add your velocity or displacement motion profile at boundary using groovyBC.

HendrikW October 30, 2017 05:32

Quote:

Originally Posted by nimasam (Post 662026)
As your motion is prescribed, i guess you can use laplacianVelocity or laplacianDisplacement motion, then add your velocity or displacement motion profile at boundary using groovyBC.

Thanks for your reply. Unfortunately it took me a while to see it (need to have a look at my notification settings)..

The laplacianDisplacement worked well for me and I could just define the tabulated displacement in boundaryField in pointDisplacement:

Code:

floatingObject
    {
        type solidBodyMotionDisplacement;
        solidBodyMotionFunction tabulated6DoFMotion;
        tabulated6DoFMotionCoeffs
        {
              CofG            (0 0 0);
            timeDataFileName "$FOAM_CASE/constant/tables/motionData.dat";
        }
    }

So no groovyBC needed.

Now I was wondering if I could define say a circle around the floatingObject and prescribe 0 as pointDisplacement BC, so that the mesh does only deform inside this circle but not in the rest of the domain. This leaves me with the problem of how to define a patch where I prescribe a BC for only one of the fields, while the others (U, alpha.water, etc.) are calculated. Is this possible?

I guess I will also try to dive into the sixDoFRigidBodyMotion code to get a better understanding of how they handle the mesh deformation.

Thanks again for your help! It allowed me to produce some initial results!

Best

dduque December 3, 2019 02:05

1 Attachment(s)
Hi,

I am currently working in something similar. I have also tried to modify the floatingObject tutorial in order to set a prescribed motion.

However, even if the mesh does distort in a way that seems satisfying, the resulting fluid motion is not convincing at all. I am attaching the case, but the main issue is that the fluid velocity does not seem to "stick" to the moving box. As if there were no viscosity. Very noticeable in the free surface, which hardly moves at all, when one would expect some wave generation.

This was tested in OF 7.0. I am currently also trying the overset method included in the OpenFoam-v18 and -v19 series.


All times are GMT -4. The time now is 10:26.