CFD Online Discussion Forums

CFD Online Discussion Forums (
-   OpenFOAM Programming & Development (
-   -   boundary cells (

Martin80 September 29, 2010 04:36

boundary cells

I have given a volVectorField U. U contains a boundaryField.

I want to set the values of U at the cellcenter of the cells next to the boundary eqal to the values of U on the boundaryField.



1 0 | 0 | 0 --> 1 1 | 0 | 0
2 0 | 0 | 0 --> 2 2 | 0 | 0
3 0 | 0 | 0 --> 3 3 | 0 | 0

Maybe someone has a useful hint,
thanks, Martin.

herbert September 29, 2010 07:13

Hi Martin,

you get the adjacent cell of a boundary face by using mesh.owner(). Take care, that owner is not defined for local face numbers inside a patch but for global face numbers.

Example that should do your job:

forAll(U.boundaryField()[wall], iFaceLocal)
    label iFaceGlobal = iFaceLocal + mesh.boundaryMesh()[wall].start();
    label adjacentCell = mesh.owner()[iFaceGlobal];
    U[adjacentCell] = U.boundaryField()[wall][iFace];


Martin80 September 29, 2010 09:13

Hi Stefan,

great, this is exactly what I was seeking for. Thanks a lot!
(Just in case someone else also uses it: the last iFace is a iFaceLocal, of course).

Best wishes,

heavy_user January 5, 2012 11:43

boundary face owning cell
Hey Foamers,

im am a little stuck here..
I am looping over faces in my boundary patch.
I need to check for a property in the cell belonging to the face.

So I do something like:


In the loop:
forAll(boundaryPatchI, faceI)
Info << "###jet- ownercell:"<< mesh_.owner()[faceI] << " ,face: "  << faceI  << " ,current population:" <<  cellOccupancy_[mesh_.owner()[faceI]].size() << endl;

The result is e.g.:


###jet- ownercell:37 ,face: 129 ,current population:5
###jet- ownercell:37 ,face: 130 ,current population:5
###jet- ownercell:37 ,face: 131 ,current population:5

So one cell is the owner for three faces.
The number of faces for the patch is correct (145) but i have way less owners (and dividing 145 by three does not give me an integer anyways).

The manual says:


In the case of boundaries, the connected cell is the owner and the neighbour is assigned the label ‘-1’. With this in mind, the I/O specification consists of the following files
In the case of faces in my boundary patch I have a hard time imagining three different faces being connected to one cell.
So why do three faces belong to one cell? And how do I adress the 145 cells above my 145 boundary faces?

Thanks a bunch!

All times are GMT -4. The time now is 03:05.