/*---------------------------------------------------------------------------*\ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | \\ / A nd | www.openfoam.com \\/ M anipulation | ------------------------------------------------------------------------------- Copyright (C) 2012-2016 OpenFOAM Foundation ------------------------------------------------------------------------------- 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 3 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, see . Class Foam::DistributedDelaunayMesh Description SourceFiles DistributedDelaunayMeshI.H DistributedDelaunayMesh.C DistributedDelaunayMeshIO.C \*---------------------------------------------------------------------------*/ #ifndef DistributedDelaunayMesh_H #define DistributedDelaunayMesh_H #include "DelaunayMesh.H" #include "backgroundMeshDecomposition.H" #include "autoPtr.H" #include "boundBox.H" #include "indexedVertex.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // namespace Foam { class mapDistribute; /*---------------------------------------------------------------------------*\ Class DistributedDelaunayMesh Declaration \*---------------------------------------------------------------------------*/ template class DistributedDelaunayMesh : public DelaunayMesh { public: typedef typename Triangulation::Vertex_handle Vertex_handle; typedef typename Triangulation::Cell_handle Cell_handle; typedef typename Triangulation::Point Point; typedef typename Triangulation::Finite_vertices_iterator Finite_vertices_iterator; typedef typename Triangulation::Finite_cells_iterator Finite_cells_iterator; typedef typename Triangulation::All_cells_iterator All_cells_iterator; private: autoPtr> allBackgroundMeshBounds_; // Private Member Functions //- bool distributeBoundBoxes(const boundBox& bb); //- bool isLocal(const Vertex_handle& v) const; bool isLocal(const label localProcIndex) const; labelList overlapProcessors ( const point& centre, const scalar radiusSqr ) const; bool checkProcBoundaryCell ( const Cell_handle& cit, Map& circumsphereOverlaps ) const; void findProcessorBoundaryCells ( Map& circumsphereOverlaps ) const; void markVerticesToRefer ( const Map& circumsphereOverlaps, PtrList& referralVertices, DynamicList