OpenFOAM logo
Open Source CFD Toolkit

parallelInfo.H File Reference


Detailed Description

View parallelInfo.H
License
This file is part of OpenFOAM.

OpenFOAM is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
Free Software Foundation; either version 2 of the License, or (at your
option) any later version.

OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
for more details.

You should have received a copy of the GNU General Public License
along with OpenFOAM; if not, write to the Free Software Foundation,
Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
Description
Various mesh related information for a parallel run. Upon construction
constructs all info by using parallel communication. 

Requires: 
- all processor patches to have correct ordering.
- all processorPatches to have their transforms set ('makeTransforms')

The shared point addressing is quite interesting. It gives on each processor
the vertices that cannot be set using a normal swap on processor patches.
These are the vertices that are shared between more than 2 processors.

There is an issue with these shared vertices if they originate from
cyclics (i.e. are now separated processor patches). They will all be
mapped to the same global point (so even though the processor points are
not on the same location) since topologically they are one and the same.

So if you ask for sharedPoints() you get only one of the coordinates of
the topologically shared points.

All the hard work of these shared points is done by the globalPoints class.

Shared edges: similar to shared points gives on all processors the edges
that are shared between more than two patches (i.e. the edges on which
data cannot be synchronized by a straightforward edge data swap). Note
that shared edges will use shared points but not all edges between shared
points need to be shared edges (e.g. there might be an edge connecting
two disconnected regions of shared points).

Currently an edge is considered shared
if it uses two shared points and is used more than once. This is not
correct on processor patches but it only slightly overestimates the number
of shared edges. Doing full analysis of how many patches use the edge
would be too complicated.

Shared edge calculation is demand driven so always make sure to have
your first call to one of the access functions synchronous amongst all
processors!


Source files

Definition in file parallelInfo.H.

Go to the source code of this file.

Namespaces

namespace  Foam

Classes

class  parallelInfo
class  parallelInfo::plusEqOp

For further information go to www.openfoam.org