|
[Sponsors] |
January 10, 2022, 03:08 |
openfoam weiroverflow tutorial
|
#1 |
New Member
Join Date: Jan 2022
Posts: 27
Rep Power: 4 |
Hello, I'm a beginner of open form CFD code.
I am learning the structure of the open form etc .. while running the tutorial in open form. A few questions arose as "weiroverflow" openfoam example, that is related to water injection and flow over, was executed originally, in the weiroverflow example, the boundary condition of left face (inlet) is patch type. so, from left face (inlet), the water flow inside. the right face (outlet) is also patch type. so the water from left face (inlet) goes out to the right face (outlet). however i changed the example a little bit. i changed the right face from patch to wall. so the water from left face does not go out anymore to right face because right face is wall type in my modified weiroverflow example. from this, i had some questions 1. i want to regulate the water level. however i don't know the way to adjust the water level. in any case, the water becomes full in the region. for example, if i want to full the water in the only one third of region (if the water is full until the setting region, the water supply is stop ), how i do this? 2. I want to adjust the size of where the water comes out. i know the option to control the flow rate exists (0/include/initialConditions). however, i don't know whether the size(location) control of water coming out exists or not. for example, Assuming that the total size is 0 to 1 (1 * 1 size, based on 2D), we want water to come out only at 0.5 to 0.7 of the inlet. i think the option related to this is variableHeightFlowRate (lowerBound, upperBound) but it didn't work well when i run.. thank you ! |
|
January 10, 2022, 04:48 |
|
#2 |
Senior Member
Lucky
Join Date: Apr 2011
Location: Orlando, FL USA
Posts: 5,747
Rep Power: 66 |
If you want to fix the water height then you need to change the boundary condition on the inlet for alpha.water and make it 0 above the height that you want and 1 below that height.
For changing the physical size of the outlet, you need to edit system/blockMeshDict and change the vertices such that the outlet patch is whatever size you want. If you want water to come out of only a portion of the outlet then you can specify the correct profile for alpha.water, keeping in mind that whatever is your other phase will be coming through the remaining area. |
|
January 10, 2022, 05:40 |
weiroverflow additional question!
|
#3 | |
New Member
Join Date: Jan 2022
Posts: 27
Rep Power: 4 |
Quote:
very thank you for kind and detailed explanation! If you don't mind, can I ask you another question? you mentioned "If you want water to come out of only a portion of the outlet then you can specify the correct profile for alpha.water, ~" i want to do this way as you mentioned. In alpha.water folder, there are lowerBound and upperBound. So, Does "specify the correct profile" mean that i have to adjust the two Bounds ? Actually i don't know the roles of two Bounds .. becaues when i adjust two bounds, the results didn't come out as i intended... thank you ! |
||
January 10, 2022, 06:57 |
|
#4 |
Senior Member
Lucky
Join Date: Apr 2011
Location: Orlando, FL USA
Posts: 5,747
Rep Power: 66 |
Lower and upper bound is for limiting the min and max values of the phase fraction (alpha).
I'm not sure what you're actually trying to do by making water do blah blah blah. You are using a multiphase solver, and it's not clear to me what you are doing with the two phases. If the language can be more precise, I might be able to offer more advice. I.e. can you write it out mathematically? If specifying a profile for alpha solves your issue then you can use a utility like setFields to generate a non-uniform list. |
|
January 10, 2022, 23:50 |
|
#5 | |
New Member
Join Date: Jan 2022
Posts: 27
Rep Power: 4 |
Quote:
first of all, sorry for repeated questions. i knew the role of "bound (upper, lower)" thanks to your explanation! As i mentioned before, actually i have two questions, one, how can i adjust the water level, and the other, how can i adjust the (size)position of water coming out (some region of outlet).. As the answer on a first question (adjusting the water level), you said "if the water level becomes higher than value that i set, inlet condition is 0, the opposite situation, inlet condition is 1" .. but i didn't find the 0 or 1 option.. How can i set the option to 0 or 1? if you don't mind, could you show me some example code about this..? Likewise the first question, i also tried to solve the second quesion by adjusting alpha(upper bound and lower bound). however, the water coming out from inlet does not come as i intended.. for example, i set the lower bound 0.5 and upper bound 0.8. however, The area where the water comes out always starts at 0 (bottom of the inlet) like 0~ 0.5 / 0 ~ 0.3 etc.. --> Assume that the entire region is one by one (1*1) i want to know the example code or mathematical equation about two questions.. thank you very much to answer my repeated questions..! |
||
January 11, 2022, 01:31 |
|
#6 |
Senior Member
Lucky
Join Date: Apr 2011
Location: Orlando, FL USA
Posts: 5,747
Rep Power: 66 |
interFoam is a volume-of-fluid based multiphase solver. alpha is your phase fraction. It represents the % of volume of each cell occupied by that phase. alpha.water is the phase fraction of water. It is a field that takes continuous values between 0 and 1. That is, alpha can be 0.01, 0.359, 0.498, 0.999, 1, 0, etc. Alpha of 1 represents pure water. Alpha of 0 represents not water (whatever is your other phase that you have defined). If you make a plot of alpha.water over your domain, it should be mostly pure 0's and pure 1's, with the region where alpha takes intermediate values demarcating the interface between water and whatever-is-not-water.
upperBound and lowerBound limits the values of alpha at the boundary to whatever you set. If I set upperBound to 0.5 for example, I'll never have pure water entering the boundary (or anything more than 50% water). It has nothing to do with establishing a water level. To not waste your time going back and forth, I would re-suggest two general approaches that may help you. 1) inserting vertices to define a patch which is where your water enters. Then you just use fixedValue alpha.water equal to 1 on that patch. Every other surface will likely be another type of boundary condition (i.e. walls). 2) Let me ask you something... do you know how to set a velocity profile at an inlet? Do that, but for alpha.water. What I mean is something like: if y.position > 0.5 m then alpha = 0, if y.position < 0.5 m then alpha.water = 1. This makes a profile alpha.water(y) on that boundary such that only water enters for y less than 0.5 m and not-water for y greater than 0.5 m. This manifests in your 0/alpha.water dict as a non-uniform list for BC type fixedValues. There are also derived BC types and utilities that can do this for you as well. |
|
January 11, 2022, 04:15 |
|
#7 | |
New Member
Join Date: Jan 2022
Posts: 27
Rep Power: 4 |
Quote:
i will try it, thank you very much ! |
||
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
Getting Started with OpenFOAM | wyldckat | OpenFOAM | 26 | June 21, 2024 07:54 |
Map of the OpenFOAM Forum - Understanding where to post your questions! | wyldckat | OpenFOAM | 10 | September 2, 2021 06:29 |
elipsKKlOmega openFoam Tutorial | losiola | OpenFOAM | 0 | May 18, 2019 17:29 |
fluxRequired OpenFoam Versions SimpleFoam Taylor Couette flow tutorial | mörli | OpenFOAM Running, Solving & CFD | 0 | April 9, 2019 12:50 |
OpenFOAM v5 tutorial interFoam wave | lsb1292 | OpenFOAM Running, Solving & CFD | 2 | September 13, 2018 03:02 |