CFD Online Discussion Forums

CFD Online Discussion Forums (https://www.cfd-online.com/Forums/)
-   Main CFD Forum (https://www.cfd-online.com/Forums/main/)
-   -   Poiseuille flow (flow in a pipe) in SOLA-VOF. Parabolic distribution of velocities. (https://www.cfd-online.com/Forums/main/63982-poiseuille-flow-flow-pipe-sola-vof-parabolic-distribution-velocities.html)

Anton April 26, 2009 04:36

Poiseuille flow (flow in a pipe) in SOLA-VOF. Parabolic distribution of velocities.
 
Hello.
Is it possible to simulate Poiseuille flow in SOLA-VOF program? How to define parabolic distribution of velocities at the free surface in this program?
Thank you.

----------------------------------------
------------->
--------------->
----------------->
------------------>
-------- ---------->
------------------>
----------------->
--------------->
------------->
----------------------------------------

otd April 27, 2009 10:39

Could you be a bit more definite about your problem?

Pouiselle (I think) is a bounded flow (no free surface). Two examples are flows (2d) between parallel plates or flow through a tube.

sola-vof of was designed especially for flows with a free surface. But it can handle Pouiselle flow (tube or between plates) by turning off the free surface logic.

The flag "ifstf" selects for single fluid (no free surface = 0) or free surface or two-fluid ( = 1). For some reason this seems to have been omitted from the documentation. And, in some releases of the code, it is 'hard-coded =1. You'll need to check your source carefully.

I hope this is helpful.

otd

Anton April 27, 2009 23:52

>Pouiselle (I think) is a bounded flow (no free surface). Two examples are
>flows (2d) between parallel plates or flow through a tube.

Sorry, you right.

>The flag "ifstf" selects for single fluid (no free surface = 0) or free surface
>or two-fluid ( = 1). For some reason this seems to have been omitted from
>the documentation. And, in some releases of the code, it is 'hard-coded =1.
>You'll need to check your source carefully.

There is no flag "ifstr" in my copy of sola-vof :( Does it means,
that I can't modelling Pouiselle flow without large changes of code?

>I hope this is helpful.
Yes, thank you.

Anton April 28, 2009 00:02

>Could you be a bit more definite about your problem?

In first time I wish only modeling flow in tube in SOLA-VOF program, not more:)
Something similar to this:

t=1 seconds
---------------------------
->
-->
--->
-->
->
---------------------------

t=n seconds
---------------------------
--------->
------------>
-------------->
------------>
--------->
---------------------------

but I can't define necessary input data for this flow :(

otd April 28, 2009 10:56

You are correct! It's been a long time since I looked at the details - it appears that I inserted the flag in the necessary places. As published, it's good for free surface or two fluid flows. Thus ifstf = "FressSurfaceTwoFluids" must be defined to skip the extra logic that vof requires.

As to modifications, you'll need to find a way to input the parameter. I did a quick search and find three calls: call vfconv, call lavore, and call cavovo. These are used for the vof implementation.

You'll need to determine for yourself whether other parts of the code need to be skipped if you aren't doing vof. I've used my modified code for driven cavity, tube flows, most of the usual 'standard' test cases. Unfortunately I can not share the code itself.

I'm sorry I fired off my reply without checking the detail. Hope it works out for you!

otd

otd April 28, 2009 11:00

If you look in the code at the bottom of the boundary condition section, there're some empty do loops to let you specify non-standard boundary conditions.

As in your sketch the flow is from left to right. specify u = u_o at the left and specify a 'continuitive boundary' at the right. You'll have to specify u_o in that code block. The outflow at the right can be set with the input flags provided in the code.

Again, good luck.

Anton April 29, 2009 08:22

otd, Thank You Very Much. You give golden advice:)

Can you answer to only one question, please?
I have trouble with boundary conditionals.
How to define asymmetrical walls with interrupt?

for example:

|........................ |
|.........................|
|.........................|
--------------| |---

or

|........................ |
|.........................|
|.........................|
-----| |------| |---

It's possible only by changing source? or I can define this configuration by standart input flags provided in the code (NKX, NXL, NYL, XC, XL, YC, YL)?
Thank you!

Anton April 29, 2009 08:30

Oh, sorry for stupid question :( It's possible by NKX, etc..

My input flags:
Quote:

DATA NU /0.0/, ICYL /1/, EPSI /1.0E-03/, GX /0.0/, GY /0.0/
DATA UI /0.0/, VI /0.0/, VELMX /1.0/, TWFIN /500.0/, PRTDT /99999.0/
DATA PLTDT /1.0/, DELT /0.2/
DATA IMOVY /0/, OMG /1.7/, ALPHA /1.0/, WL /1/, WR /1/, WT /1/, WB /1/
DATA CSQ /-1.0/, AUTOT /1.0/, ISYMPLT /1/, ISURF10 /1/, SIGMA /0.0/
DATA CANGLE /5.0/, NMAT /1/, RHOF /1.0/, RHOFC /1.0/, FLHT /3.0/
DATA XPL /0.0/, YPB /0.0/, XPR /0.0/, YPT /0.0/, NPX /0/, NPY /0/
DATA NKX /2/, XL /0.0, 0.2, 1.0/, XC /0.1, 0.95/, NXL /1, 8/
DATA DXMN /0.1, 0.05/, NXR /1, 1/
DATA NKY /1/, YL /0.0, 1.6/, YC /0.8/, NYL /4/, NYR /4/, DYMN /0.2/
But this configuration doesn't work :(

Quote:

PARAMETER (IBAR2=22, JBAR2=10, NPRTS=1, MESHX=1, MESHY=1, NVOR=10)
PARAMETER (MSHX=MESHX+1, MSHY=MESHY+1)

COMMON /ME/ X(IBAR2), XI(IBAR2), RXI(IBAR2), DELX(IBAR2), RDX
(IBAR2), RX(IBAR2), Y(JBAR2), YJ(JBAR2), RYJ(JBAR2), DELY(JBAR2),
RDY(JBAR2), XL(MSHX), XC(MESHX), DXMN(MESHX), NXL(MESHX), NXR
(MESHX), YL(MSHY), YC(MESHY), DYMN(MESHY), NYL(MESHY), NYR(MESHY)
In source I change variable MESHX = 1, and set it MESHX = 2.
And after this action program with my input flags is work. But
crash with error in another place after 1 second (array bounds exeed in DELTADJ).

Please, can you give me example of input variables for simple configuration of boundaries
(for 2 submesh regions)?

Thank you.

otd April 29, 2009 09:58

Anton, few questions are stupid - and none of yours are!

The flags that you've asked about are used to construct the mesh. It's a straightforward way to construct a smoothly-varying (Cartesian) mesh in the x and y dimensions. It's described on pages 37 and 38 of the original LASL (now LANL) report, LA-8355.

The boundary conditions are described on pages 26 to 29. As the code is written, a boundary value must be constant along an entire boundary. For example, for your slot flow problem, u(0,y) = u_o, one inflow value along the entire side of the mesh. It's easy in theory to make this general [u(0,y) = u(x = 0, y_o < y < y_L) ]. The coding could take some time.

It's also possible in theory to specify a row of blocked cells along the boundary, skipping the locations where you wish inflow. This will compromise the accuracy of the tangent boundary condition along that wall. And, like the other, careful coding is needed.

For example, to specify w(x_L < x < x_H, y = 0) = w_o with noflow on the rest of that boundary, set up obstacle cells ("b") as shown:

------------------------------------ top boundary



bbbbbbbbbb ^ bbbbbbbbbbbbbbbbbbb bottom boundary for flow

------------ | ---------------------bottom boundary for mesh
w_o

I guess this is why 'free codes' can really be expensive!

Anton April 29, 2009 10:31

Quote:

Originally Posted by otd (Post 214638)
Anton, few questions are stupid - and none of yours are!

The flags that you've asked about are used to construct the mesh. It's a straightforward way to construct a smoothly-varying (Cartesian) mesh in the x and y dimensions. It's described on pages 37 and 38 of the original LASL (now LANL) report, LA-8355.

The boundary conditions are described on pages 26 to 29. As the code is written, a boundary value must be constant along an entire boundary. For example, for your slot flow problem, u(0,y) = u_o, one inflow value along the entire side of the mesh. It's easy in theory to make this general [u(0,y) = u(x = 0, y_o < y < y_L) ]. The coding could take some time.

It's also possible in theory to specify a row of blocked cells along the boundary, skipping the locations where you wish inflow. This will compromise the accuracy of the tangent boundary condition along that wall. And, like the other, careful coding is needed.

For example, to specify w(x_L < x < x_H, y = 0) = w_o with noflow on the rest of that boundary, set up obstacle cells ("b") as shown:

------------------------------------ top boundary



bbbbbbbbbb ^ bbbbbbbbbbbbbbbbbbb bottom boundary for flow

------------ | ---------------------bottom boundary for mesh
w_o

I guess this is why 'free codes' can really be expensive!

Big thanks for you advices! It's very helpfull.


All times are GMT -4. The time now is 14:33.