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 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
42Foam::boundBox Foam::processorLODs::cellBox::calcSrcBox
43(
44 const label srcObji
45) const
46{
47 const UList<label>& cellFaces = srcCells_[srcObji];
48
49 boundBox bb(srcPoints_, srcFaces_[cellFaces[0]], false);
50 for (label i = 1; i < cellFaces.size(); ++i)
51 {
52 bb.add(srcPoints_, srcFaces_[cellFaces[i]]);
53 }
54
55 return bb;
56}
57
58
59Foam::boundBox Foam::processorLODs::cellBox::calcTgtBox
60(
61 const label tgtObji
62) const
63{
64 const UList<label>& cellFaces = tgtCells_[tgtObji];
65
66 boundBox bb(tgtPoints_, tgtFaces_[cellFaces[0]], false);
67 for (label i = 1; i < cellFaces.size(); ++i)
68 {
69 bb.add(tgtPoints_, tgtFaces_[cellFaces[i]]);
70 }
71
72 return bb;
73}
74
75
76// * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * * //
77
79(
80 const cellList& srcCells,
81 const faceList& srcFaces,
82 const UList<point>& srcPoints,
83 const cellList& tgtCells,
84 const faceList& tgtFaces,
85 const UList<point>& tgtPoints,
86 const label maxObjectsPerLeaf,
87 const label nObjectsOfType,
88 const label nRefineIterMax
89)
90:
92 (
93 srcFaces,
94 srcPoints,
95 tgtFaces,
96 tgtPoints,
97 maxObjectsPerLeaf,
98 nObjectsOfType,
99 nRefineIterMax
100 ),
101 srcCells_(srcCells),
102 tgtCells_(tgtCells)
103{}
104
105
107{
108 return createMap(srcCells_.size(), tgtCells_.size());
109}
110
111
112// ************************************************************************* //
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:94
Pointer management similar to std::unique_ptr, with some additional methods and type checking.
Definition: autoPtr.H:66
A bounding box defined in terms of min/max extrema points.
Definition: boundBox.H:64
const UList< point > & srcPoints_
Reference to the source points.
Definition: box.H:80
Creates the parallel distribution map by describing the source and target objects using box shapes.
Definition: cellBox.H:61
virtual autoPtr< mapDistribute > map()
Return the parallel distribution map.
Definition: cellBox.C:106
Creates the parallel distribution map by describing the source and target objects using box shapes.
Definition: faceBox.H:60
const faceList & srcFaces_
Reference to the source face list.
Definition: faceBox.H:66
#define defineTypeNameAndDebug(Type, DebugSwitch)
Define the typeName and debug information.
Definition: className.H:121
Namespace for OpenFOAM.