CFD Online Logo CFD Online URL
www.cfd-online.com
[Sponsors]
Home > Forums > OpenFOAM Programming & Development

Neighbour cell centre to face distance

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

Like Tree1Likes
  • 1 Post By KlasJ

Reply
 
LinkBack Thread Tools Display Modes
Old   July 15, 2013, 15:03
Default Neighbour cell centre to face distance
  #1
Member
 
Felipe Portela
Join Date: Dec 2012
Location: London
Posts: 58
Rep Power: 4
fportela is on a distinguished road
Hello all,

I feel my question is rather simple, but I've trying to solve this for quite a while without any success, so maybe you guys can help.

Consider two patches which are coupled, I need to know the distance between points A and B, where A is the centre of the cells which contain faces on the neighbour patch, and B is the centre of the faces on the neighbour patch.

I could just use the distance from A to the current faces, however, this becomes a problem whenever cyclic conditions come into play...

So, any suggestions?

Cheers,
Felipe
fportela is offline   Reply With Quote

Old   July 19, 2013, 09:44
Default
  #2
New Member
 
Klas J
Join Date: Oct 2011
Location: Göteborg, Sweden
Posts: 10
Rep Power: 5
KlasJ is on a distinguished road
Hi Felipe,

I am not sure that I interpret your question correctly. You want to get the distance from the cell next to the coupled patch to face centre on the neighbouring face?

Perhaps you could be helped by looking at the implementation of the patches. For example have a look at the function delta in the cyclic patch (src/finiteVolume/lnInclude/cyclicFvPatch.C). There you can see how the distance between the cells is calculated as a sum between the distance from the cell to the face for each side of the interface.

Note that the function delta has different meaning depending on the type of patch (src/finiteVolume/fvMesh/fvPatches/fvPatch/fvPatch.H):

Code:
//- Return cell-centre to face-centre vector
//  except for coupled patches for which the cell-centre
//  to coupled-cell-centre vector is returned
virtual tmp<vectorField> delta() const;
Hope this was of some help.

Best regards,

Klas
KlasJ is offline   Reply With Quote

Old   July 19, 2013, 10:11
Default
  #3
Member
 
Felipe Portela
Join Date: Dec 2012
Location: London
Posts: 58
Rep Power: 4
fportela is on a distinguished road
Hi Klas,

In fact, what I needed was not the cell-centre to coupled-cell vector (which can be obtained directly from delta()), but rather the coupled-cell-centre to coupled-cell-face vector (the face would be that which is coupled to the original cell).

In the meanwhile the following procedure seems to work:

Code:
myPatch.fvPatch::delta() - myPatch.delta();
Where myPatch is a coupled patch.

Nevertheless, thanks for the swift reply

Cheers,
Felipe
fportela is offline   Reply With Quote

Old   July 19, 2013, 10:35
Default
  #4
New Member
 
Klas J
Join Date: Oct 2011
Location: Göteborg, Sweden
Posts: 10
Rep Power: 5
KlasJ is on a distinguished road
Hi again,

Aha, I understand now.

Yes, it seems reasonable that what you are using works. As found in cyclicFvPatch.C you could get a reference to the neighbouring patch and then ask the patch for delta:

Code:
    const cyclicFvPatch& nbrPatch = neighbFvPatch();
    const scalarField deltas(nf() & fvPatch::delta());
    const scalarField nbrDeltas(nbrPatch.nf() & nbrPatch.fvPatch::delta());
But also since the coupled delta will anyway only be the difference of the fvPatch::delta for each patch what you are doing should be the same thing.

// Klas
fportela likes this.
KlasJ is offline   Reply With Quote

Old   April 15, 2014, 11:52
Default
  #5
Senior Member
 
Join Date: Jan 2013
Posts: 197
Rep Power: 4
openfoammaofnepo is on a distinguished road
Dear Klas,

About the returned quantities of function delta(), I also read the source files fvPatch.H and fvPatch.C. In the latter, the delta is defined as:

Code:
Cf-Cn
According to fvPatch.H, Cf is face centers while Cn is the neighboring cell centers. I have a question here. for those physical boundary faces (like inlet, outlet, wall..., not inter-processor faces), the cell that contains the boundary faces is always thought of as the owner cell. So here what does it mean by "Cn is the neighboring cell centers"?

After digging the source files, I found that

- for physical boundary faces: delat is Cf-Cn. That is, the delta vector points from the cell (which contains this face) to the face center.
- for inter-processor faces: delta is the vector from the owner (located in the local processor) to the neighbor cells (located in the neighboring processor).

Is what I am saying correct? Any comments are welcome.
~~~~
OFFO
openfoammaofnepo is offline   Reply With Quote

Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
how to set periodic boundary conditions Ganesh FLUENT 13 January 22, 2014 05:11
Hydrostatic Pressure and Gravity miliante OpenFOAM Running, Solving & CFD 132 October 7, 2012 22:50
BlockMesh FOAM warning gaottino OpenFOAM Native Meshers: blockMesh 7 July 19, 2010 14:11
Cell face values computation un unstructured grids Sergio Rossi Main CFD Forum 2 May 28, 2006 10:04
Trimmed cell and embedded refinement mesh conversion issues michele OpenFOAM Other Meshers: ICEM, Star, Ansys, Pointwise, GridPro, Ansa, ... 2 July 15, 2005 04:15


All times are GMT -4. The time now is 14:25.