CFD Online Discussion Forums

CFD Online Discussion Forums (https://www.cfd-online.com/Forums/)
-   OpenFOAM Running, Solving & CFD (https://www.cfd-online.com/Forums/openfoam-solving/)
-   -   Accelerating Reference Frame (https://www.cfd-online.com/Forums/openfoam-solving/138272-accelerating-reference-frame.html)

j_breininger July 1, 2014 12:11

Accelerating Reference Frame
 
3 Attachment(s)
Hello everyone!

my name is Jakob and this is my first thread in the forum. I have been working with OpenFOAM for a couple of months now and so far found the forum to be extremely help full! However I spend multiple days now searching through the forum and the internet to find a solution to my problem and was not able to find an answer to it:

I would like to simulate the free fall of an object in a axisymmetric mesh (it is a wedge mesh). To minimize the mesh motion my idea was to use the 6-dof solver on the object with pimpleDymFoam and have an accelerating reference frame that moves with the object (for now the simulations didn't include the object yet but just show the moving reference frame), at an acceleration of g. My first thought to solve this issue was to just ramp the velocity at the inlet at a constant acceleration of g over my simulation time of 1.6 seconds.
The velocity looks great: Here showing the velocity at time 0 and 1.5 seconds.
Attachment 32046 Attachment 32045

However I ran into some issues with the pressure distribution. Namely the pressure should be constant in my whole domain (since the atmospheric pressure is constant), but in my simulations it decreases from the inlet to the outlet, as it can be seen in the picture. This pressure drop is constant over the 1.5 seconds:
Attachment 32047

So here is my question: Could this be solved with different boundary conditions or is my approach just completely wrong? If it is wrong what would the solution be?

Velocity BC:
Code:

#include        "include/initialConditions"

dimensions      [0 1 -1 0 0 0 0];

internalField  uniform (0 0 0);

boundaryField
{
    //- Set patchGroups for constraint patches
    #include "${WM_PROJECT_DIR}/etc/caseDicts/setConstraintTypes"

    inlet
    {
    type                uniformFixedValue;
    uniformValue    table
    (
        (0    (0 0 0))
        (1    (0 0 9.81))
        (2    (0 0 19.62))
    );

    }

    outlet
    {
     
    type                inletOutlet;
    inletValue        uniform (0 0 0);
 
    }

    OuterWall
    {
        type            slip;
    }

    front
    {
    type                wedge;
    }

    back
    {
    type                wedge;
    }
}

Pressure BC:
Code:


#include        "include/initialConditions"

dimensions      [0 2 -2 0 0 0 0];

internalField  uniform $pressure;

boundaryField
{
    //- Set patchGroups for constraint patches
    #include "${WM_PROJECT_DIR}/etc/caseDicts/setConstraintTypes"

    inlet
    {
    type                zeroGradient;
    value              $internalField;
    }

    outlet
    {     
    type            fixedValue;
    value          $internalField;
    }

    OuterWall
    {
        type            slip;
    }

    capsule
    {
        type            zeroGradient;
    }

 
    front
    {
    type        wedge;
    }

    back
    {
    type        wedge;
    }

}

I hope I gave you all the information you need and was able to explain my problem in a somewhat understandable manner....

Thank you for your help!

Jakob

j_breininger July 2, 2014 18:25

Does nobody have an idea? Is there any additional information I should supply?

btsulliv March 1, 2019 15:43

Accelerating Reference Frames Are... Tricky
 
As far as I can tell, there is nothing wrong with your attempt to solve this problem, it's just that FLUENT does't understand what you are actually trying to do. Fundamentally, the reason why your simulation does not demonstrate the expected behavior is because the solver does not properly understand the mechanism which causes the flow to accelerate in the a non-inertial frame, which is fictitious forces. It thinks it's working in an inertial frame, in which case the only way to achieve the flow acceleration you have (kinematically) imposed is by applying a pressure gradient. It generates increasingly high pressure at the inlet so that the surface forces acting on the fluid produce the specified acceleration. However, the reality of the situation is that it's the domain that is actually accelerating, not the flow. In reality, there is no pressure gradient needed (or allowed) in the actual case because the object is falling into undisturbed air. If you want your simulation to behave as expected, there needs to be an additional body force applied to the RHS of the Navier-Stokes equations which accounts for the acceleration of the reference frame. There will be terms for linear acceleration, angular acceleration, Coriolis force, centrifugal force, etc. The paper "Theoretical Treatment of Fluid Flow For Accelerating Bodies" by Gledhill, Roohani, Forsberg, Eliasson, Nordström and Skews is probably one of the best resources on the topic. It really gets to the heart of the problem and why complicated modifications to inertial solvers are required to compute an accurate answer.

https://en.wikipedia.org/wiki/Non-in...eference_frame
https://www.youtube.com/watch?v=z0xyQKalezI

tomi_foamer March 2, 2021 11:28

Does anyone have an idea of how to add this volumetric force to the navier-stokes equations and how to solve it?

Thanks.


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