faceBitSet.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) 2018 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 "faceBitSet.H"
29#include "polyMesh.H"
30#include "mapPolyMesh.H"
31#include "syncTools.H"
33
34// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
35
36namespace Foam
37{
39}
40
41
42// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
43
45:
46 faceBitSet(mesh, false)
47{}
48
49
51:
52 topoBitSet(mesh, "faceBitSet", mesh.nFaces(), val)
53{}
54
55
57(
58 const polyMesh& mesh,
59 const bitSet& bits
60)
61:
62 topoBitSet(mesh, "faceBitSet", mesh.nFaces(), bits)
63{}
64
65
67(
68 const polyMesh& mesh,
69 bitSet&& bits
70)
71:
72 topoBitSet(mesh, "faceBitSet", mesh.nFaces(), std::move(bits))
73{}
74
75
76// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
77
79{
81}
82
83
84Foam::label Foam::faceBitSet::maxSize(const polyMesh& mesh) const
85{
86 return mesh.nFaces();
87}
88
89
91{
92 updateLabels(morphMap.reverseFaceMap());
93}
94
95
97{
98 bitSet& labels = selected_;
99
100 boolList contents(labels.values());
101
102 map.distributeFaceData(contents);
103
104 // The new length is contents.size();
105 labels.assign(contents);
106}
107
108
110(
111 Ostream& os,
112 const primitiveMesh& mesh,
113 const label maxLen
114) const
115{
117}
118
119
120// ************************************************************************* //
label maxSize() const
The max row length used.
An Ostream is an abstract base class for all output systems (streams, files, token lists,...
Definition: Ostream.H:62
A bitSet stores bits (elements with only two states) in packed internal format and supports a variety...
Definition: bitSet.H:66
void assign(const UList< bool > &bools)
Copy assign all entries from a list of bools.
Definition: bitSet.C:274
List< bool > values() const
Return the bitset values as a boolList.
Definition: bitSet.C:513
A special purpose topoSet with the face labels stored as a bitSet. It does not correspond to a faceSe...
Definition: faceBitSet.H:54
virtual void distribute(const mapDistributePolyMesh &map)
Update any stored data for mesh redistribution.
Definition: faceBitSet.C:96
void sync()
Do all: synchronise all IOFields and objectRegistry.
Definition: syncObjects.C:70
Class containing mesh-to-mesh mapping information after a mesh distribution where we send parts of me...
void distributeFaceData(List< T > &values) const
Distribute list of face data.
Class containing mesh-to-mesh mapping information after a change in polyMesh topology.
Definition: mapPolyMesh.H:162
const labelList & reverseFaceMap() const
Reverse face map.
Definition: mapPolyMesh.H:501
void updateMesh()
Update for new mesh topology.
Mesh consisting of general polyhedral cells.
Definition: polyMesh.H:81
Cell-face mesh analysis engine.
Definition: primitiveMesh.H:79
const vectorField & faceCentres() const
label nFaces() const noexcept
Number of mesh faces.
void writeDebug() const
Debug write.
static void syncFaceList(const polyMesh &mesh, UList< T > &faceValues, const CombineOp &cop)
Synchronize values on all mesh faces.
Definition: syncTools.H:396
Base for a special purpose topoSet using labels stored as a bitSet.
Definition: topoBitSet.H:54
#define defineTypeNameAndDebug(Type, DebugSwitch)
Define the typeName and debug information.
Definition: className.H:121
dynamicFvMesh & mesh
OBJstream os(runTime.globalPath()/outputName)
const labelList nFaces(UPstream::listGatherValues< label >(aMesh.nFaces()))
Namespace for OpenFOAM.