|
[Sponsors] |
Fluid stuck in pipe simulating jet in crossflow |
|
LinkBack | Thread Tools | Search this Thread | Display Modes |
May 20, 2020, 06:57 |
Fluid stuck in pipe simulating jet in crossflow
|
#1 |
New Member
Jamie MacLeod
Join Date: May 2020
Posts: 9
Rep Power: 6 |
Hi all, I'm trying to simulate a liquid jet in gaseous crossflow, using compressibleInterFoam, since the flow speeds are reasonably high. I've been wrestling with it in various forms for quite some time, and just run out of options that I think might work.
The geometry is set up so that I have a large box for a distant freestream, and a short length of pipe that the jet comes out of (I've attached some images of the mesh and pipe with fluid). The mesh is created using Pointwise, joined into a single domain, and has been renumbered. Gas enters from the left (inlet) and the top is the atmosphere, and right face is the outlet. This example is rotated, just to see if that would have any effect. My issue is that for some reason the fluid will come up the pipe a little bit, but then gets stuck at that point. I've done some simulations before where this hasn't happened, but I have no idea what's changed between them to inspire this issue. Any advice on usual suspects would be appreciated, as I'm at a loss about what to try! U.orig: Code:
internalField uniform (0 -40.62 0); boundaryField { atmosphere { type zeroGradient; } bottom { type slip; } inlet { type fixedValue; value uniform (0 -40.62 0); } outlet { type zeroGradient; } pipe { type fixedValue; value uniform (10.633 0 0); } pipe_wall { type slip; } BaseAndTop { type empty; } } Code:
internalField uniform 98800; boundaryField { atmosphere { type freestreamPressure; freestreamValue uniform 98800; value uniform 98800; } bottom { type fixedFluxPressure; gradient uniform 0; value uniform 98800; } inlet { type fixedFluxPressure; gradient uniform 0; value uniform 98800; } outlet { type freestreamPressure; freestreamValue uniform 98800; value uniform 98800; } pipe { type fixedFluxPressure; gradient uniform 0; value uniform 98800; } pipe_wall { type fixedFluxPressure; gradient uniform 0; value uniform 98800; } BaseAndTop { type empty; } } Code:
internalField uniform 98800; boundaryField { atmosphere { type calculated; value uniform 98800; } bottom { type calculated; value uniform 98800; } inlet { type calculated; value uniform 98800; } outlet { type calculated; value uniform 98800; } pipe { type calculated; value uniform 98800; } pipe_wall { type calculated; value uniform 98800; } BaseAndTop { type empty; } } Code:
internalField uniform 0; boundaryField { atmosphere { type inletOutlet; inletValue uniform 0; value uniform 0; } bottom { type zeroGradient; } inlet { type fixedValue; value uniform 0; } outlet { type inletOutlet; inletValue uniform 0; value uniform 0; } pipe { type fixedValue; value uniform 1; } pipe_wall { type zeroGradient; } BaseAndTop { type empty; } } Code:
internalField uniform 298; boundaryField { atmosphere { type inletOutlet; inletValue uniform 298; value uniform 298; } bottom { type zeroGradient; } inlet { type inletOutlet; inletValue uniform 298; value uniform 298; } outlet { type inletOutlet; inletValue uniform 298; value uniform 298; } pipe { type inletOutlet; inletValue uniform 298; value uniform 298; } pipe_wall { type zeroGradient; } BaseAndTop { type empty; } } Code:
ddtSchemes { default Euler; } gradSchemes { default Gauss linear 1; grad(U) cellLimited Gauss linear 1; } divSchemes { div(rhoPhi,U) Gauss limitedLinearV 1; div(phi,alpha) Gauss vanLeer; div(phirb,alpha) Gauss interfaceCompression; energy Gauss upwind; div(phi,p) Gauss upwind; div(phid1,p_rgh) Gauss upwind; div(phid2,p_rgh) Gauss upwind; div(rhoPhi,K) $energy; div(rhoPhi,T) $energy; div(((rho*nuEff)*dev2(T(grad(U))))) Gauss linear; } laplacianSchemes { default Gauss linear orthogonal; } interpolationSchemes { default linear; } snGradSchemes { default orthogonal; } wallDist { method meshWave; } Code:
solvers { "alpha.water.*" { nAlphaCorr 1; nAlphaSubCycles 4; cAlpha 1; MULESCorr yes; nLimiterIter 5; solver smoothSolver; smoother symGaussSeidel; tolerance 1e-5; relTol 0; } ".*(rho|rhoFinal)" { solver diagonal; } p_rgh { solver GAMG; tolerance 1e-06; relTol 0; smoother DILU; // smoother DIC; nPreSweeps 0; nPostSweeps 1; nFinestSweeps 1; cacheAgglomeration true; nCellsInCoarsestLevel 700; agglomerator faceAreaPair; mergeLevels 1; } p_rghFinal { solver GAMG; tolerance 1e-06; relTol 0; smoother DILU; // smoother DIC; nPreSweeps 0; nPostSweeps 1; nFinestSweeps 1; cacheAgglomeration true; nCellsInCoarsestLevel 700; agglomerator faceAreaPair; mergeLevels 1; } "pcorr.*" { solver GAMG; tolerance 1e-06; relTol 0; smoother DILU; // smoother DIC; nPreSweeps 0; nPostSweeps 2; nFinestSweeps 2; cacheAgglomeration true; nCellsInCoarsestLevel 700; agglomerator faceAreaPair; mergeLevels 1; } "(U|T|K|UFinal|TFinal|KFinal).*" { solver PBiCG; preconditioner DILU; tolerance 1e-08; relTol 0; } } PIMPLE { transonic yes; momentumPredictor yes; nOuterCorrectors 1; nCorrectors 3; nNonOrthogonalCorrectors 0; } relaxationFactors { equations { ".*" 1; } } |
|
May 26, 2020, 05:57 |
|
#2 |
Senior Member
Join Date: Dec 2019
Location: Cologne, Germany
Posts: 369
Rep Power: 8 |
how many inlets/outlets do you have?
can it be possible that you overdefine your velocities across your domain? you have a velocity for the internal domain and also for boundaries. |
|
May 26, 2020, 06:07 |
|
#3 |
New Member
Jamie MacLeod
Join Date: May 2020
Posts: 9
Rep Power: 6 |
Thanks for replying!
I have one air inlet on the far left, and one liquid inlet at the base of the pipe, and then one outlet for the domain on the far right, and atmosphere on the top so closer to inletOutlet. I set the velocity in the domain just to set a starting state and avoid transience, since a real case would already have a steady air state before starting the jet. |
|
May 27, 2020, 03:00 |
|
#4 |
Senior Member
Join Date: Dec 2019
Location: Cologne, Germany
Posts: 369
Rep Power: 8 |
did you check if signs are set correctly?
i don't really know if you overdefine your velocity field, so there is nothing to move. i once had the problem that i didn't correctly adjust my signs so there was nothing exiting the domain and my fluid stuck just like yours. |
|
May 27, 2020, 05:33 |
|
#5 |
New Member
Jamie MacLeod
Join Date: May 2020
Posts: 9
Rep Power: 6 |
I have certainly checked the signs of the velocity fields, as that would be a rather mundane mistake, but a classic.
I'll have a play with different outlet conditions later in the week, and report back. I did have it working previously, and the outlet/atmosphere conditions may be one of the only things that is somewhat different. I changed them since I was getting either velocity or pressure artefacts at the outlet and atmosphere boundaries, but could have broken the simulation in the process. |
|
June 1, 2020, 08:00 |
|
#6 |
New Member
Jamie MacLeod
Join Date: May 2020
Posts: 9
Rep Power: 6 |
Had a chance to look at this again, and while I have changed the settings in the 0 folder, I think the real culprit is the tolerance on alpha in the solution file. I did tests on a coarse mesh with all other settings the same and fluid got stuck again, but when I added the increased tolerance, it stopped being stuck. A short test on the finer mesh suggested that it would simulate fine. Very odd!
My modfication to the 0 folder were just to change the atmosphere/outlet to: U Code:
type pressureInletOutletVelocity; value uniform (0 0 0); Code:
type totalPressure; p0 uniform 98800; value uniform 98800; |
|
June 2, 2020, 05:48 |
|
#7 |
Senior Member
Join Date: Dec 2019
Location: Cologne, Germany
Posts: 369
Rep Power: 8 |
when you changed your BC for U to pressureInletOutletVelocity, you gave your system some free space to adjust everything. so your flow right there is adjusted to the pressure there. in the other case, where you had velocities, i think a correct solution couldn't be found bc pressure-velocity coupling didn't work well.
|
|
June 2, 2020, 06:55 |
|
#8 |
New Member
Jamie MacLeod
Join Date: May 2020
Posts: 9
Rep Power: 6 |
Hi Geth,
I just tested with everything exactly as I posted originally (freestreamPressure for p_rgh, and zeroGradient for velocity on outlet and atmosphere) but with a higher tolerance on the alpha in the fvSolution file and the problem is solved, so I think that was the only issue. Since the inletOutlet conditions apply zeroGradient on outlets anyway, it is basically the same boundary condition. Truly the only factor in the effect of the alpha phase was the tolerance. Using total pressure I see a low velocity patch at the atmosphere boundary in the simulation, but I don't tend to see that with a zeroGradient boundary hence why I use it. |
|
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
Fluid flow in a vibrating pipe | meng9019 | OpenFOAM Running, Solving & CFD | 2 | July 29, 2014 03:42 |
Gridding a in and around a pipe dipped into fluid | A Krishnan | Main CFD Forum | 0 | February 20, 2005 18:21 |
My Revised "Time Vs Energy" Article For Review | Abhi | Main CFD Forum | 2 | July 9, 2002 10:08 |
Terrible Mistake In Fluid Dynamics History | Abhi | Main CFD Forum | 12 | July 8, 2002 10:11 |
fluid flow fundas | ram | Main CFD Forum | 5 | June 17, 2000 22:31 |