View Issue Details

IDProjectCategoryView StatusLast Update
0002236OpenFOAMBugpublic2016-09-07 15:21
ReporterTomasR Assigned Tohenry  
PriorityhighSeveritymajorReproducibilityalways
Status resolvedResolutionfixed 
PlatformUnixOSUbuntuOS Version16.04
Summary0002236: Compute crash when z coordinate is higher in interFoam
DescriptionI have two identical models, one has min. elevation of bottom at coordinate z = 0, another at z = 100. Water should flow from inflow to outflow, inflow has water level 0,4 m higher than outflow. I would like to have a fixed water levels and evaluate U and flowrate of water, the behavior of air is not important for me so I divided inflow and outflow faces to two which one is patch, second wall. Top is atmosphere. So I have a boundary conditions:
inlet:
alpha - fixedValue, value uniform 1
p_rgh - fixedValue, value uniform rho(water)*g*zcoord_of_waterlevel_at_inlet
U - outletInlet, outletValue uniform (0 0 0) (I don't expect back flow)

outlet:
alpha - inletOutlet, inletValue uniform 1
p_rgh - fixedValue, value uniform rho(water)*g*zcoord_of_waterlevel_at_outlet
U - zeroGradient (if there could be back flow)

atmosphere:
alpha - inletOutlet, inletValue uniform 0
p_rgh - totalPressure, p0 rho(air)*g*zcoord_of_patch
U - pressureInletOutletVelocity

other faces are walls.

The model with bottom situated at z=0 run well. The model with bottom at z=100 crashes but at pathes are the prediscribe conditions. Inside of model appears a locations with high negative pressure and than compute crash or not convergate. I also tried to add a pRefValue and pRefPoint do PIMPLE in fvSolution but with no success.
Steps To ReproduceblockMesh
setFields
interFoam
TagsinterFoam

Activities

TomasR

2016-09-06 07:28

reporter  

TESTINTERFOAM.7z (1,379,647 bytes)

TomasR

2016-09-07 13:09

reporter   ~0006840

I tried to do the same with tutorial weirOverflow and also there occur a problem with model with baseplane higher (y = 100 in my example). At inlet patch a higher water level appears then in internal it drop to normal. Model with baseline near 0 run correct.
I would like to use interFoam to compute flux at high structures (up to just 100 m), so I'm affraid about precision. I hope that I make somewhere mistake but where...
weirOverflow100.7z (88,287 bytes)

henry

2016-09-07 13:38

manager   ~0006841

The weirOverflow tutorial is currently setup for the lowerWall to be at y=0, to run it at a different height you will need to use the fixedFluxPressure BC for p_rgh:

    lowerWall
    {
        type fixedFluxPressure;
    }

I will update the tutorial in 4.x and dev to avoid this confusion in the future.

henry

2016-09-07 13:46

manager   ~0006842

The inlet perturbation relates to the upperBound set in the alpha.water file, if you set it to 1:

    inlet
    {
        type variableHeightFlowRate;
        lowerBound 0;
        upperBound 1;
        value uniform 0;
    }

the inlet behavior is better. I will test the standard tutorial setup and if it runs OK with 1 for upperBound I will make that the default.

henry

2016-09-07 13:53

manager   ~0006843

One more thing, in order to get the same results with an off-set on height of 100m you need to use a tighter tolerance when solving for p_rgh due to the loss of precision from the rho*g*h off-set.

TomasR

2016-09-07 14:29

reporter   ~0006844

Excuse me, do you mean solver tolerance or relTol?
At first sight I guess it could be the relTol...default set is 0,05 for p_rgh so is it mean that for 100m off-set and water is 100*9,81*1000*0,05 = 49050 Pa so it is 5 m of water column tolerance?
The tolerance is default 1e-7, it means absolute tolerance with 0,0000001 precision? When the solver use relTol and tolerance?

henry

2016-09-07 14:37

manager   ~0006845

I reduced both the tolerance and the relTol in my tests to check that I then get the same results with and without the 100m offset. I did not check if both changes are required, I would expect that a reduction in tolerance only should be sufficient.

TomasR

2016-09-07 15:00

reporter   ~0006846

I make a test and in my test is relTol limiting.
Also upperBound 1 in variableHeightFlowRate is better.
Thank you.

henry

2016-09-07 15:21

manager   ~0006847

Resolved in OpenFOAM-dev by commit 7b971a9ebf1e53483f1cfa88470e88978f917d3d

Resolved in OpenFOAM-4.x by commit 8efaef8c300a575ba01943cffba45172df279eea

Issue History

Date Modified Username Field Change
2016-09-06 07:28 TomasR New Issue
2016-09-06 07:28 TomasR File Added: TESTINTERFOAM.7z
2016-09-06 07:28 TomasR Tag Attached: interFoam
2016-09-07 13:09 TomasR File Added: weirOverflow100.7z
2016-09-07 13:09 TomasR Note Added: 0006840
2016-09-07 13:38 henry Note Added: 0006841
2016-09-07 13:46 henry Note Added: 0006842
2016-09-07 13:53 henry Note Added: 0006843
2016-09-07 14:29 TomasR Note Added: 0006844
2016-09-07 14:37 henry Note Added: 0006845
2016-09-07 15:00 TomasR Note Added: 0006846
2016-09-07 15:21 henry Assigned To => henry
2016-09-07 15:21 henry Status new => resolved
2016-09-07 15:21 henry Resolution open => fixed
2016-09-07 15:21 henry Fixed in Version => 4.x
2016-09-07 15:21 henry Note Added: 0006847