CFD Online Logo CFD Online URL
www.cfd-online.com
[Sponsors]
Home > Forums > OpenFOAM Post-Processing

Sum over non-boundary cells

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

Reply
 
LinkBack Thread Tools Display Modes
Old   June 6, 2012, 09:11
Default Sum over non-boundary cells
  #1
New Member
 
Martin Söder
Join Date: Jun 2011
Posts: 8
Rep Power: 6
Soder is on a distinguished road
Hi,
I would like to make a post-process skript where I sum only non-boundary cell values. Does anyone know how this can be done?


Example mass (pseudo-code)

forAll(mesh.V(), celli)
{
if cell != boundaryCell
{
mass = (mesh.V()[celli]*rho[celli]);forAll(mesh.V(), celli)
massSum += mass;
}
}

best regards
Martin Soder
Soder is offline   Reply With Quote

Old   June 8, 2012, 08:03
Default
  #2
Senior Member
 
Mark Olesen
Join Date: Mar 2009
Location: http://olesenm.github.io/
Posts: 777
Rep Power: 18
olesen will become famous soon enough
Quote:
Originally Posted by Soder View Post
Hi,
I would like to make a post-process skript where I sum only non-boundary cell values. Does anyone know how this can be done?


Example mass (pseudo-code)

forAll(mesh.V(), celli)
{
if cell != boundaryCell
{
mass = (mesh.V()[celli]*rho[celli]);forAll(mesh.V(), celli)
massSum += mass;
}
}

best regards
Martin Soder
Just an idea (no code):

Create a list of bools for each cell of your mesh and mark each with "true", for example,
Code:
 
PackedBoolList isInterior(mesh.nCells(), true);

Loop over the boundary faces, marking the cell owner (which is a boundary cell) as being non-interior:
Code:
const labelUList& owner = mesh.faceOwner();
for (label faceI=mesh.nInternalFaces(); faceI < mesh.nFaces(); ++faceI)
{
     isInterior.unset(owner[faceI]);
     //OR isInterior.set(owner[faceI], false);
}
The cells in isInterior that are still 'true' must be your interior cells.
The easiest is probably to use this as a mask when iterating over all cells:
Code:
forAll(mesh.V(), cellI)
{
    if (isInterior[cellI])
    {
    ...
    }
}
There may be a more elegant way, but this should at least get you going.
olesen 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
SnappyHexMesh for internal Flow vishwa OpenFOAM Native Meshers: snappyHexMesh and Others 23 August 6, 2014 03:50
How to write k and epsilon before the abnormal end xiuying OpenFOAM Running, Solving & CFD 8 August 27, 2013 15:33
Automobile aero ground boundary layer OR simpleFoam/GAMG and high aspect ratio cells kyle OpenFOAM Running, Solving & CFD 4 January 4, 2011 12:17
help:uds source added to boundary cells FredPacheo FLUENT 5 September 5, 2008 05:45
Convective Heat Transfer - Heat Exchanger Mark CFX 6 November 15, 2004 16:55


All times are GMT -4. The time now is 11:37.