Loading...
Searching...
No Matches
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-------------------------------------------------------------------------------
10License
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
31namespace Foam
32{
33namespace processorLODs
34{
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 {
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 }
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:
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// ************************************************************************* //
A 1D vector of objects of type <T>, where the size of the vector is known and can be used for subscri...
Definition UList.H:89
Pointer management similar to std::unique_ptr, with some additional methods and type checking.
Definition autoPtr.H:65
void add(const boundBox &bb)
Extend to include the second box.
Definition boundBoxI.H:323
layoutTypes
The map layout (eg, of the constructMap).
autoPtr< mapDistribute > createMap(const label nSrcElems, const label nTgtElems, const mapDistributeBase::layoutTypes constructLayout)
Return the parallel distribution map (often linear construct order).
Definition box.C:409
const UList< point > & tgtPoints_
Reference to the target points.
Definition box.H:86
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 cellBox.H:54
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 treeBoundBox calcTgtBox(const label tgtObji) const
The local boundBox associated with given target object.
Definition cellBox.C:52
virtual treeBoundBox calcSrcBox(const label srcObji) const
The local boundBox associated with given source object.
Definition cellBox.C:36
const cellList & tgtCells_
Reference to the target cell list.
Definition cellBox.H:67
const cellList & srcCells_
Reference to the source cell list.
Definition cellBox.H:62
virtual autoPtr< mapDistribute > map(const mapDistributeBase::layoutTypes constructLayout)
Return the parallel distribution map (usually linear construct order).
Definition cellBox.C:101
Creates the parallel distribution map by describing the source and target objects using box shapes.
Definition faceBox.H:53
const faceList & srcFaces_
Reference to the source face list.
Definition faceBox.H:61
faceBox(const faceList &srcFaces, const UList< point > &srcPoints, const faceList &tgtFaces, const UList< point > &tgtPoints, const label maxObjectsPerLeaf, const label nObjectsOfType, const label nRefineIterMax=100)
Construct from list of points/faces for source and target.
Definition faceBox.C:55
const faceList & tgtFaces_
Reference to the target face list.
Definition faceBox.H:66
Standard boundBox with extra functionality for use in octree.
#define defineTypeNameAndDebug(Type, DebugSwitch)
Define the typeName and debug information.
Definition className.H:142
Namespace for OpenFOAM.
List< face > faceList
List of faces.
Definition faceListFwd.H:41
List< cell > cellList
List of cell.
Definition cellListFwd.H:41