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/)
-   -   How to form hydraulic jump at specified location with interFoam (https://www.cfd-online.com/Forums/openfoam-solving/238316-how-form-hydraulic-jump-specified-location-interfoam.html)

luccy September 6, 2021 03:55

How to form hydraulic jump at specified location with interFoam
 
1 Attachment(s)
hello everyone,
I'm simulating a free hydraulic jump with InterFoam. In the laboratory model, the jump occurs at a distance of one meter from the gate, but in the simulation, despite changes in various parameters such as mesh and inlet velocity, boundary condition and etc, this does not happen and the jump occurs immediately after the gate. Can anyone help me?
I will appreciate that,
I attached the geometry of the laboratory model. In the geometry of the simulation, I've ignored the tank.

Santiago September 7, 2021 04:25

Quote:

Originally Posted by luccy (Post 811676)
hello everyone,
I'm simulating a free hydraulic jump with InterFoam. In the laboratory model, the jump occurs at a distance of one meter from the gate, but in the simulation, despite changes in various parameters such as mesh and inlet velocity, boundary condition and etc, this does not happen and the jump occurs immediately after the gate. Can anyone help me?
I will appreciate that,
I attached the geometry of the laboratory model. In the geometry of the simulation, I've ignored the tank.

A free hydraulic jump is only mediated by its boundary conditions, that is, the location of the jump depends on the impulse at the inlet minus the impulse at the outlet, plus the force difference due to pressure at both inlet/outlet, AND FRICTION. The problem is that the sequent height given by belangér's formula may not be exactly what the code can resolve (the sequent depth can be lower or higher, a bit), hence your jump might either drown or just not happen if you enforce Belanger's depth on the outlet.

A first suggestion is to put a weir at the downstream section, with the height necessary to produce the critical height above it. The calculation of the critical height is an exact measure (not its location, though) so you can use that as a reference on how good the simulation is running, in terms of turbulence/physics. From there, it's a matter of patience: you need to test turbulence models and different schemes for the divergence operator. Excessive dissipation will produce spurious recirculations on the bottom of the channel, below the roller. Be particularly mindful of using "Bouyancy aware" URANS models. Wall models also play an important role here, particularly with the location of the jump.

IMPORTANT NOTE: Inertial-scale processes happen on the cross normal direction of the jump, hence it is necessary to run 3D (or 2.5D) simulations. In 2D you'll see spurious behaviour and a Richardson Analysis will show instability. You can try it out...
Question: What version/flavor of OpenFOAM you're using?

Santiago September 10, 2021 07:39

Quote:

Originally Posted by luccy (Post 811676)
hello everyone,
I'm simulating a free hydraulic jump with InterFoam. In the laboratory model, the jump occurs at a distance of one meter from the gate, but in the simulation, despite changes in various parameters such as mesh and inlet velocity, boundary condition and etc, this does not happen and the jump occurs immediately after the gate. Can anyone help me?
I will appreciate that,
I attached the geometry of the laboratory model. In the geometry of the simulation, I've ignored the tank.


A URANS classic hydraulic jump at Fr = 8.5. On top an instantaneous snapshot, and on the bottom the mean fields.

https://imgur.com/NnsyGNt

invadoria September 10, 2021 09:27

This may be associated with outflow boundary conditions since higher tail water depth moves the hydraulic jump to the control structure.

luccy September 12, 2021 03:22

[QUOTE=Santiago;811754]
thank you for replying, I am using OpenFOAM 8,
One suggestion for me was to use " Interisofoam" at OpenFoam 18.12 because the "interFoam" does not work well for hydraulic jumping and also to avoid bed roughness. Do you have an opinion on this?

Santiago September 13, 2021 03:55

[QUOTE=luccy;812023]
Quote:

Originally Posted by Santiago (Post 811754)
thank you for replying, I am using OpenFOAM 8,
One suggestion for me was to use " Interisofoam" at OpenFoam 18.12 because the "interFoam" does not work well for hydraulic jumping and also to avoid bed roughness. Do you have an opinion on this?

Yes, it is a terrible suggestion. 99.9999% of the problems people experience with interFoam has nothing to do with the interface reconstruction scheme. The simulation I have shown above uses MULES; and verification is quite satisfactory.

MY SUGGESTION: Choose a "flavor" of OpenFOAM, and stick to it.

indy07cz September 13, 2021 15:43

Also recommend you to choose right turbulent model. I performed this simulation with interFoam few moths ago and different turbulent model gives different results. For me most stable was kEpsilon. Also consider 2.5D and 3D approach. There are tons of articles around web.

luccy October 10, 2021 12:12

a question about the link you shared
 
Quote:

Originally Posted by Santiago (Post 811959)
A URANS classic hydraulic jump at Fr = 8.5. On top an instantaneous snapshot, and on the bottom the mean fields.

https://imgur.com/NnsyGNt

Dear Santiago

https://imgur.com/NnsyGNt

Whose simulation was this? was it yours?

Santiago October 11, 2021 07:40

Quote:

Originally Posted by luccy (Post 813979)
Dear Santiago

https://imgur.com/NnsyGNt

Whose simulation was this? was it yours?

Hahaha, yes, of course is mine. Done in OpenFOAM, I swear.

luccy October 11, 2021 14:31

Quote:

Originally Posted by Santiago (Post 814020)
Hahaha, yes, of course is mine. Done in OpenFOAM, I swear.

Please don't take any offense. I wanted to know if it is possible for you to send me the boundary conditions of this simulation.
thank you

Santiago October 12, 2021 03:08

Quote:

Originally Posted by luccy (Post 814051)
Please don't take any offense. I wanted to know if it is possible for you to send me the boundary conditions of this simulation.
thank you

None taken... I just found your incredulity a bit, ehm, refreshing.

Anyway, I assume you read my previous post where I talked about the importance of over-dissipation and the reason for the dremple. But if you think the problem is with your BCs, then of course I can show you mine.

U:

Code:

boundaryField
{
    atmosphere
    {
        type            pressureInletOutletVelocity;
        value          uniform (0 0 0);
    }
    inlet
    {
      // meaningless to you, just fixedValue
        type          powerLawVelocity;
        maxValue        4.3;
        n                (1 0 0);
        y                (0 1 0);
        delta                0.02;
        value        uniform (0 0 0);
    }
    outlet
    {
        type          inletOutlet;
        inletValue        uniform (0 0 0);
        value        uniform (0 0 0);
    }
    wallsBottom
    {
        type            noSlipWall;
        value          uniform (0 0 0);
    }
    wallsSides
    {
        type            noSlipWall;
        value          uniform (0 0 0);
    }
}

and pd:

Code:

boundaryField
{
    atmosphere
    {
        type            entrainmentPressure;
        rho            rho;
        psi              none;
        gamma      1;
        p0              uniform 0;
        value          uniform 0;
    }
    outlet
    {

        type          totalPressure;
        rho            rho;
        psi            none;
        gamma      1;
        p0            uniform 0;
        value        uniform 0;
    }
    wallsBottom
    {
        type            buoyantPressure;
    }
    wallsSides
    {
        type            buoyantPressure;
    }
    inlet
    {
        type            fixedFluxPressure;
    }
}

I use a blended k-e/k-omega model that I implemented, so the BCs for such will be useless for you. I can tell you, however, that I do use wall models for nut:

Code:

    wallsBottom
    {
        type            nutURoughWallFunction;
        roughnessHeight        <value here>;
        roughnessConstant 0.5;
        roughnessFactor        1;
        value          uniform 0;
    }


luccy October 15, 2021 06:24

1 Attachment(s)
Quote:

Originally Posted by Santiago (Post 814083)
None taken... I just found your incredulity a bit, ehm, refreshing.

Anyway, I assume you read my previous post where I talked about the importance of over-dissipation and the reason for the dremple. But if you think the problem is with your BCs, then of course I can show you mine.

U:

Code:

boundaryField
{
    atmosphere
    {
        type            pressureInletOutletVelocity;
        value          uniform (0 0 0);
    }
    inlet
    {
      // meaningless to you, just fixedValue
        type          powerLawVelocity;
        maxValue        4.3;
        n                (1 0 0);
        y                (0 1 0);
        delta                0.02;
        value        uniform (0 0 0);
    }
    outlet
    {
        type          inletOutlet;
        inletValue        uniform (0 0 0);
        value        uniform (0 0 0);
    }
    wallsBottom
    {
        type            noSlipWall;
        value          uniform (0 0 0);
    }
    wallsSides
    {
        type            noSlipWall;
        value          uniform (0 0 0);
    }
}

and pd:

Code:

boundaryField
{
    atmosphere
    {
        type            entrainmentPressure;
        rho            rho;
        psi              none;
        gamma      1;
        p0              uniform 0;
        value          uniform 0;
    }
    outlet
    {

        type          totalPressure;
        rho            rho;
        psi            none;
        gamma      1;
        p0            uniform 0;
        value        uniform 0;
    }
    wallsBottom
    {
        type            buoyantPressure;
    }
    wallsSides
    {
        type            buoyantPressure;
    }
    inlet
    {
        type            fixedFluxPressure;
    }
}

I use a blended k-e/k-omega model that I implemented, so the BCs for such will be useless for you. I can tell you, however, that I do use wall models for nut:

Code:

    wallsBottom
    {
        type            nutURoughWallFunction;
        roughnessHeight        <value here>;
        roughnessConstant 0.5;
        roughnessFactor        1;
        value          uniform 0;
    }


No, I just wanted to know if that simulation is yours I can get the boundary condition code from you, anyway thank you.
I have another question about the inlet conditions. I want to set the boundary conditions as a velocity profile at the inlet, but I do not have access to the equation in three dimensions. Can you help with that? Also, in my open foam, there is no powerLawVelocity condition. Please pay attention to the attached photo.

luccy October 17, 2021 13:04

Quote:

Originally Posted by Santiago (Post 811754)
A free hydraulic jump is only mediated by its boundary conditions, that is, the location of the jump depends on the impulse at the inlet minus the impulse at the outlet, plus the force difference due to pressure at both inlet/outlet, AND FRICTION. The problem is that the sequent height given by belangér's formula may not be exactly what the code can resolve (the sequent depth can be lower or higher, a bit), hence your jump might either drown or just not happen if you enforce Belanger's depth on the outlet.

A first suggestion is to put a weir at the downstream section, with the height necessary to produce the critical height above it. The calculation of the critical height is an exact measure (not its location, though) so you can use that as a reference on how good the simulation is running, in terms of turbulence/physics. From there, it's a matter of patience: you need to test turbulence models and different schemes for the divergence operator. Excessive dissipation will produce spurious recirculations on the bottom of the channel, below the roller. Be particularly mindful of using "Bouyancy aware" URANS models. Wall models also play an important role here, particularly with the location of the jump.

IMPORTANT NOTE: Inertial-scale processes happen on the cross normal direction of the jump, hence it is necessary to run 3D (or 2.5D) simulations. In 2D you'll see spurious behaviour and a Richardson Analysis will show instability. You can try it out...
Question: What version/flavor of OpenFOAM you're using?

How did you get the required height for Weir? By trial and error?

Santiago October 18, 2021 05:33

Quote:

Originally Posted by luccy (Post 814434)
How did you get the required height for Weir? By trial and error?

No. The weir is a hydraulic control, hence you can calculate by means of Bernoulli's theorem the height of the weir.

luccy October 19, 2021 05:09

Quote:

Originally Posted by Santiago (Post 814465)
No. The weir is a hydraulic control, hence you can calculate by means of Bernoulli's theorem the height of the weir.

what about the above question?do you have any idea?
I have another question about the inlet conditions. I want to set the boundary conditions as a velocity profile at the inlet, but I do not have access to the equation in three dimensions. Can you help with that? Also, in my open foam, there is no powerLawVelocity condition. Please pay attention to the attached photo.


All times are GMT -4. The time now is 07:12.