# Poiseuille flow (flow in a pipe) in SOLA-VOF. Parabolic distribution of velocities.

 Register Blogs Members List Search Today's Posts Mark Forums Read

 April 26, 2009, 04:36 Poiseuille flow (flow in a pipe) in SOLA-VOF. Parabolic distribution of velocities. #1 New Member   Anton Join Date: Apr 2009 Posts: 7 Rep Power: 9 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. ---------------------------------------- -------------> ---------------> -----------------> ------------------> -------- ----------> ------------------> -----------------> ---------------> -------------> ----------------------------------------

 April 27, 2009, 10:39 #2 Member   private Join Date: Mar 2009 Posts: 74 Rep Power: 9 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

 April 27, 2009, 23:52 #3 New Member   Anton Join Date: Apr 2009 Posts: 7 Rep Power: 9 >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.

 April 28, 2009, 00:02 #4 New Member   Anton Join Date: Apr 2009 Posts: 7 Rep Power: 9 >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

 April 28, 2009, 10:56 #5 Member   private Join Date: Mar 2009 Posts: 74 Rep Power: 9 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

 April 28, 2009, 11:00 #6 Member   private Join Date: Mar 2009 Posts: 74 Rep Power: 9 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.

 April 29, 2009, 08:22 #7 New Member   Anton Join Date: Apr 2009 Posts: 7 Rep Power: 9 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!

April 29, 2009, 08:30
#8
New Member

Anton
Join Date: Apr 2009
Posts: 7
Rep Power: 9
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.

Last edited by Anton; April 29, 2009 at 09:52.

 April 29, 2009, 09:58 #9 Member   private Join Date: Mar 2009 Posts: 74 Rep Power: 9 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!

April 29, 2009, 10:31
#10
New Member

Anton
Join Date: Apr 2009
Posts: 7
Rep Power: 9
Quote:
 Originally Posted by otd 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!