Stokes Flow Simulation
I am trying to find the steadystate velocity field for laminar flow transverse to a random array of parallel cylinders using simpleFoam in OpenFOAM 2.2.1. I am using empty boundary conditions on faces normal to the cylinder axes and cyclic boundary conditions for the other faces. The flow is supposed to be driven by gravity acting in one of the two cyclic directions.
The simulation does not work. It converges to a velocity that approaches 0, if seeded with nonzero velocities (as the attached case does). It appears that the gravitational term is ignored, though I have included "g" in the constants directory. The case is zipped here. I'm sure I'm doing something stupid. Any help, especially if it wittily points out just how stupid I am, is much appreciated. 
Quote:
take a look to this project specially page 23 ;) I think it would be helpful for your case http://www.divaportal.org/smash/get...T01.pdf best regards Mohsen 
Thanks for the response to my question. I read the paper you linked, and while it is broadly related (i.e., flow around cylinders), I don't find a discussion of the problem I am having. That is, in my case I need to generate bodyforce (i.e., gravity) driven flow.

There is something physically wrong with what you expect. You have a fluid with constant density. How would gravity act on it? E.g.: in a bottle of water there is no movement.

The simulation is set up so that it has cyclic boundary conditions top and bottom. With gravity acting downward, I expect that all the fluid will fall, exiting the bottom and reentering at the top. Because of the noslip boundary conditions on the cylinders within the domain, I expect that it will eventually reach a steady state where the momentum added by gravity is equal to the momentum lost at the solid surfaces.
I recognize that if gravity is added as a modified pressure, then there will be no flow, and so an explicit body force term may be necessary. I don't know how to add this if it is. 
Solution using a vectorSemiImplicitSource
Putting the following in system/fvOptions is my current approach. It seems to work.
momentumSource1 { type vectorSemiImplicitSource; active true; selectionMode all; vectorSemiImplicitSourceCoeffs { volumeMode absolute; injectionRateSuSp { U ((1e6 0 0) 0); } } } 
All times are GMT 4. The time now is 06:40. 