cellBox.C
Go to the documentation of this file.
1 /*---------------------------------------------------------------------------*\
2  ========= |
3  \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
4  \\ / O peration |
5  \\ / A nd | www.openfoam.com
6  \\/ M anipulation |
7 -------------------------------------------------------------------------------
8  Copyright (C) 2017-2023 OpenCFD Ltd.
9 -------------------------------------------------------------------------------
10 License
11  This file is part of OpenFOAM.
12 
13  OpenFOAM is free software: you can redistribute it and/or modify it
14  under the terms of the GNU General Public License as published by
15  the Free Software Foundation, either version 3 of the License, or
16  (at your option) any later version.
17 
18  OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
19  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
20  FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
21  for more details.
22 
23  You should have received a copy of the GNU General Public License
24  along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
25 
26 \*---------------------------------------------------------------------------*/
27 
28 #include "cellBox.H"
29 #include "mapDistribute.H"
30 
31 namespace Foam
32 {
33 namespace processorLODs
34 {
35  defineTypeNameAndDebug(cellBox, 0);
36 }
37 }
38 
39 
40 // * * * * * * * * * * * * Protected Member Functions * * * * * * * * * * * //
41 
43 (
44  const label srcObji
45 ) const
46 {
47  treeBoundBox bb;
48 
49  for (const label facei : srcCells_[srcObji])
50  {
51  bb.add(srcPoints_, srcFaces_[facei]);
52  }
53 
54  return bb;
55 }
56 
57 
59 (
60  const label tgtObji
61 ) const
62 {
63  treeBoundBox bb;
64 
65  for (const label facei : tgtCells_[tgtObji])
66  {
67  bb.add(tgtPoints_, tgtFaces_[facei]);
68  }
69 
70  return bb;
71 }
72 
73 
74 // * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * * //
75 
77 (
78  const cellList& srcCells,
79  const faceList& srcFaces,
80  const UList<point>& srcPoints,
81  const cellList& tgtCells,
82  const faceList& tgtFaces,
83  const UList<point>& tgtPoints,
84  const label maxObjectsPerLeaf,
85  const label nObjectsOfType,
86  const label nRefineIterMax
87 )
88 :
89  processorLODs::faceBox
90  (
91  srcFaces,
92  srcPoints,
93  tgtFaces,
94  tgtPoints,
95  maxObjectsPerLeaf,
96  nObjectsOfType,
97  nRefineIterMax
98  ),
99  srcCells_(srcCells),
100  tgtCells_(tgtCells)
101 {}
102 
103 
104 // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
105 
108 (
109  const mapDistributeBase::layoutTypes constructLayout
110 )
111 {
112  return createMap(srcCells_.size(), tgtCells_.size(), constructLayout);
113 }
114 
115 
116 // ************************************************************************* //
defineTypeNameAndDebug(box, 0)
const cellList & srcCells_
Reference to the source cell list.
Definition: cellBox.H:62
void add(const boundBox &bb)
Extend to include the second box.
Definition: boundBoxI.H:323
layoutTypes
The map layout (eg, of the constructMap)
cellBox(const cellList &srcCells, const faceList &srcFaces, const UList< point > &srcPoints, const cellList &tgtCells, const faceList &tgtFaces, const UList< point > &tgtPoints, const label maxObjectsPerLeaf, const label nObjectsOfType, const label nRefineIterMax=100)
Construct from list of points/faces/cells for source and target.
Definition: cellBox.C:70
virtual autoPtr< mapDistribute > map(const mapDistributeBase::layoutTypes constructLayout)
Return the parallel distribution map (usually linear construct order)
Definition: cellBox.C:101
A 1D vector of objects of type <T>, where the size of the vector is known and can be used for subscri...
Definition: HashTable.H:105
const UList< point > & srcPoints_
Reference to the source points.
Definition: box.H:81
Creates the parallel distribution map by describing the source and target objects using box shapes...
Definition: faceBox.H:50
Standard boundBox with extra functionality for use in octree.
Definition: treeBoundBox.H:90
const faceList & srcFaces_
Reference to the source face list.
Definition: faceBox.H:61
virtual treeBoundBox calcTgtBox(const label tgtObji) const
The local boundBox associated with given target object.
Definition: cellBox.C:52
Namespace for OpenFOAM.
virtual treeBoundBox calcSrcBox(const label srcObji) const
The local boundBox associated with given source object.
Definition: cellBox.C:36