![]() |
|
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
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!
Definition in file parallelInfo.H.
Go to the source code of this file.
Namespaces | |
namespace | Foam |
Classes | |
class | parallelInfo |
class | parallelInfo::plusEqOp |