
[Sponsors] 
April 23, 2012, 11:14 
Implementation of Periodic Boundary Condition

#1 
Member
Mosi Owa
Join Date: Nov 2011
Posts: 35
Rep Power: 7 
Hi all,
I am going to implement periodic boundary condition in my own code. FYI, I am modeling a 2D duct with two wall mounted objects at top and bottom walls with a code that works with both SIMPLE and PISO algorithms. Does anyone have an idea how to get started? I've already done that in FLUENT but I don't know how to implement it in my code. Suggestion of papers or CFD books in this area are highly appreciated. Thanks 

April 23, 2012, 14:11 

#2 
Senior Member
cfdnewbie
Join Date: Mar 2010
Posts: 557
Rep Power: 13 
Well, just connect your cells / grid points in a periodic way, i.e. in your grid management logic, and you are done!


April 23, 2012, 14:57 

#3 
Member
Mosi Owa
Join Date: Nov 2011
Posts: 35
Rep Power: 7 

April 23, 2012, 15:06 

#4 
Senior Member
cfdnewbie
Join Date: Mar 2010
Posts: 557
Rep Power: 13 
I'm sorry, I don't have a good source for that. Just imagine how you would do it in one dimension with a traveling wave, that should show you how it is done...what do you find confusing about it?


April 23, 2012, 15:28 

#5 
Member
Mosi Owa
Join Date: Nov 2011
Posts: 35
Rep Power: 7 

April 23, 2012, 15:42 

#6 
Senior Member
cfdnewbie
Join Date: Mar 2010
Posts: 557
Rep Power: 13 
well let's say your grid (in 1D) goes from 1 to N, which denotes the number of cells or grid points. So the periodic neighbor of cell 1 is N, and vice versa. (the other one being 2 and N1, of course). So just when you compute your fluxes or your derivatives from your stencil, you use the periodic neighbor at the boundaries.
Did that clear it up a bit? 

April 23, 2012, 16:36 

#7 
Senior Member
Chris DeGroot
Join Date: Nov 2011
Location: Canada
Posts: 388
Rep Power: 8 
As stated before it is a matter of connecting your inlets and outlets as neighbours in your code. However, if you want to specify a certain mass flow you need to be able to determine the appropriate pressure drop to drive such a flow. Similarly for a constant wall temperature; you need the temperature change across the domain. A good reference for that is
"Use of Streamwise Periodic Boundary Conditions for Problems in Heat and Mass Transfer", J. Heat Transfer, Volume 129, Issue 4, 601. I use a similar methodology in my 3D unstructured code. 

April 23, 2012, 16:50 

#8  
Member
Mosi Owa
Join Date: Nov 2011
Posts: 35
Rep Power: 7 
Quote:


April 24, 2012, 17:22 

#9 
Senior Member
Join Date: Aug 2011
Posts: 271
Rep Power: 9 
Let's recall the notation of cfdnewbie.
The way you can connect your boudary cells in a periodic way is very simple. You just have to specify for every variables involved in your simulation just set: PHI(1)= PHY(N1) PHI(N)=PHI(2) However it's true as cdegroot mentioned it that if you have a infllow mass rate, you have to specify as source term of your NavierStokes equation a pressure drop which will verify the mass rate you want to impose... 

April 24, 2012, 23:11 

#10  
Member
Mosi Owa
Join Date: Nov 2011
Posts: 35
Rep Power: 7 
Quote:


April 24, 2012, 23:21 

#11 
New Member
JMC
Join Date: Apr 2012
Posts: 9
Rep Power: 7 
It sounds like your problem might be that the physics are not periodic. Do you want to model it periodic in the direction of the flow? As CDE stated, there is a pressure drop that is driving the flow. If all your variables are not periodic, then you need to do adjust them to be periodic. After all, you want to conserve mass, momentum and energy, right?


April 24, 2012, 23:46 

#12  
Member
Mosi Owa
Join Date: Nov 2011
Posts: 35
Rep Power: 7 
Quote:


April 25, 2012, 00:28 

#13  
New Member
JMC
Join Date: Apr 2012
Posts: 9
Rep Power: 7 
Quote:
I'm not sure I understand how it is periodic. Probably this is my fault. What are the reasons for running this simulation with periodic boundary conditions? 

April 25, 2012, 04:11 

#14  
Senior Member
Join Date: Aug 2011
Posts: 271
Rep Power: 9 
Quote:
I'm not convinced that it is the case in your situation. To be precise there is periodic boundary conditions and cyclic boundary conditions (it is periodic without pressure drop). So you have to think what is the best option in your case... Quote:
What is your velocitypressure coupling algorithm ? Generally Neumann boundary conditions are used for pressure equation. What did you do for pressure in your case ? (still neumann or periodic boundary conditions for pressure too ?) 

April 25, 2012, 09:16 

#15 
Member
Mosi Owa
Join Date: Nov 2011
Posts: 35
Rep Power: 7 
I use SIMPLE to solve velocitypressure coupling. I use zero gradient to set pressure of boundaries.


April 25, 2012, 09:22 

#16 
Member
Mosi Owa
Join Date: Nov 2011
Posts: 35
Rep Power: 7 
[QUOTE=leflix;356824]...
To be precise there is periodic boundary conditions and cyclic boundary conditions (it is periodic without pressure drop). So you have to think what is the best option in your case... Maybe I am wrong and as leflix mentioned, I need to consider it as cyclic. The reason I consider it as periodic (or cyclic) is that the flow is repeating. I don't want to model 10 blocks because of computational cost. If I want to model the 3 middle ones (as an example), I do not have the inlet flow because it is neither uniform in velocity or pressure nor fully developed. 

April 25, 2012, 09:51 

#17 
Senior Member
Chris DeGroot
Join Date: Nov 2011
Location: Canada
Posts: 388
Rep Power: 8 
You definitely need to specify a pressure drop then across the domain. However, you might be seeing the simulation diverge if you aren't setting the pressure level anywhere in the domain. If you just link up the inlet and outlet and specify a pressure drop, the actual pressure level is free to go wherever it wants and certainly will diverge. What I do is choose one volume adjacent to the outlet and set the pressure to zero at its neighbour. This keeps the pressure level from going to +/ infinity.


April 25, 2012, 11:25 

#18  
Member
Mosi Owa
Join Date: Nov 2011
Posts: 35
Rep Power: 7 
Quote:


April 25, 2012, 11:44 

#19 
Senior Member
Chris DeGroot
Join Date: Nov 2011
Location: Canada
Posts: 388
Rep Power: 8 
Sounds like you are probably correctly setting a reference pressure. Monitor your residuals though and make sure this isn't the place where the simulations starts diverging. I have found though that zeroing the pressure within an open domain can sometimes cause problems. If it is closed (like a lid driven cavity problem) there seems to be no issue. I use a fully coupled method though, so I'm not sure if you'd see the same issue using SIMPLE.
Adding the pressure drop is probably the most challenging part of implementing periodic boundary conditions. It sounds like you are considering flow past a series of bluff bodies which you are considering as periodic. I think we can agree that there should be a pressure drop across this domain. Thus, it is not sufficient to consider pressure as being periodic since the pressure at the outlet will be lower than the pressure at the inlet. Below is the way I approach the pressure drop in my code. Consider a volume "I" adjacent to the outlet and its periodic neighbour "J" adjacent to the inlet. Instead of taking the pressure at the neighbour of "I" to be P(J) take it to be P(J)+DELTAP. Similarly take the pressure at the neighbour of "J" to be P(I)DELTAP. DELTAP can either be specified if you know the pressure drop and want to find the mass flow. If you know the mass flow, then find DELTAP iteratively using the method of Beale described in his article "Use of Streamwise Periodic Boundary Conditions for Problems in Heat and Mass Transfer". To set the reference pressure I choose one volume adjacent to the outlet and instead of using P(J)+DELTAP as its neighbour pressure I instead use zero. Thus I am not actually forcing the pressure to zero in any of my internal control volumes, just at a "virtual" volume adjacent to the outlet. This is sufficient to keep the pressure bounded. I hope that made sense! 

April 26, 2012, 18:47 

#20  
Member
Mosi Owa
Join Date: Nov 2011
Posts: 35
Rep Power: 7 
Quote:
There is something with your comment that doesn't make sense to me. I am working with a collocated grid (not a staggered one). In my new geometry, my boundaries are 1 as left and N as right. As you can see it in attached file (Geometry.jpg), this is a cavity like problem with one inlet at 1 and one outlet at N. At 1, the lower half is wall and at N the upper half is wall. As long as I run this geometry as a single chamber, I have no problem and you could see the result. I just solve the equations from 2 to N1. At 1 the velocity is prescribed and at N it is derived using outflow assumption. The contours are for U (x direction) velocity. But suppose that this is periodic problem and I am going to have the same chamber (but upside down) immediately after the current chamber. Therefore, the outlet velocity profile for the first chamber would be the inlet profile for the next one (In fact, the outlet lower half U will be the same as inlet upper half U. the same story goes with V velocity but with a negative sign). As you see, my boundary condition at 1 and N are equal with each other and not with each other's neighbors. I impose the outlet velocity to inlet at every iteration. The code converges but the problem is that this new profile does not go forward and I have it and its effect only at the very first cells (You could probably see the very narrow red area in at the inlet). After that, the velocity profile is similar to single chamber (See Geometry2.jpg). I have no idea what to do! 

Thread Tools  
Display Modes  


Similar Threads  
Thread  Thread Starter  Forum  Replies  Last Post 
Periodic boundary condition  Arif  FLUENT  3  March 9, 2017 02:18 
Implementation of a relaxation boundary condition  fs82  OpenFOAM  2  December 19, 2011 08:04 
Simulating A water bubble in air with periodic boundary condition  cubicmatrixist  Main CFD Forum  0  October 14, 2010 12:26 
vorticity boundary condition  bearcharge  Main CFD Forum  0  May 14, 2010 11:32 
periodic boundary condition?  Sima Baheri  Phoenics  5  October 20, 2007 09:20 