boundaryToCell.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 -------------------------------------------------------------------------------
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 "boundaryToCell.H"
29 #include "polyMesh.H"
31 
32 // * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
33 
34 namespace Foam
35 {
36  defineTypeNameAndDebug(boundaryToCell, 0);
37  addToRunTimeSelectionTable(topoSetSource, boundaryToCell, word);
38  addToRunTimeSelectionTable(topoSetSource, boundaryToCell, istream);
39  addToRunTimeSelectionTable(topoSetCellSource, boundaryToCell, word);
40  addToRunTimeSelectionTable(topoSetCellSource, boundaryToCell, istream);
42  (
43  topoSetCellSource,
44  boundaryToCell,
45  word,
46  boundary
47  );
49  (
50  topoSetCellSource,
51  boundaryToCell,
52  istream,
53  boundary
54  );
55 }
56 
57 
58 Foam::topoSetSource::addToUsageTable Foam::boundaryToCell::usage_
59 (
60  boundaryToCell::typeName,
61  "\n Usage: boundaryToCell\n\n"
62  " Select all boundary cells\n\n"
63 );
64 
65 
66 // * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * //
67 
68 void Foam::boundaryToCell::combine(topoSet& set, const bool add) const
69 {
70  for
71  (
72  label facei = mesh().nInternalFaces();
73  facei < mesh().nFaces();
74  ++facei
75  )
76  {
77  addOrDelete(set, mesh().faceOwner()[facei], add);
78  }
79 }
80 
81 
82 // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
83 
85 :
87 {}
88 
89 
91 (
92  const polyMesh& mesh,
93  const dictionary&
94 )
95 :
97 {}
98 
99 
101 (
102  const polyMesh& mesh,
103  Istream&
104 )
105 :
107 {}
108 
109 
110 // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
111 
113 (
114  const topoSetSource::setAction action,
115  topoSet& set
116 ) const
117 {
118  if (action == topoSetSource::ADD || action == topoSetSource::NEW)
119  {
120  if (verbose_)
121  {
122  Info<< " Adding all boundary cells ..." << endl;
123  }
124 
125  combine(set, true);
126  }
127  else if (action == topoSetSource::SUBTRACT)
128  {
129  if (verbose_)
130  {
131  Info<< " Removing all boundary cells ..." << endl;
132  }
133 
134  combine(set, false);
135  }
136 }
137 
138 
139 // ************************************************************************* //
faceListList boundary
A list of keyword definitions, which are a keyword followed by a number of values (eg...
Definition: dictionary.H:129
Create a new set and ADD elements to it.
Add elements to current set.
virtual void applyToSet(const topoSetSource::setAction action, topoSet &set) const
Apply specified action to the topoSet.
An Istream is an abstract base class for all input systems (streams, files, token lists etc)...
Definition: Istream.H:57
Ostream & endl(Ostream &os)
Add newline and flush stream.
Definition: Ostream.H:531
The topoSetCellSource is a intermediate class for handling topoSet sources for selecting cells...
label nFaces() const noexcept
Number of mesh faces.
boundaryToCell(const polyMesh &mesh)
Construct from components.
void addOrDelete(topoSet &set, const label id, const bool add) const
Add or delete id from set. Add when &#39;add&#39; is true.
Macros for easy insertion into run-time selection tables.
addNamedToRunTimeSelectionTable(topoSetCellSource, badQualityToCell, word, badQuality)
AccessType combine(const UList< T > &lists, AccessOp aop=accessOp< T >())
Combines sub-lists into a single list.
Definition: ListListOps.C:62
dynamicFvMesh & mesh
const polyMesh & mesh() const noexcept
Reference to the mesh.
setAction
Enumeration defining various actions.
void add(FieldField< Field1, typename typeOfSum< Type1, Type2 >::type > &f, const FieldField< Field1, Type1 > &f1, const FieldField< Field2, Type2 > &f2)
defineTypeNameAndDebug(combustionModel, 0)
General set of labels of mesh quantity (points, cells, faces).
Definition: topoSet.H:59
Subtract elements from current set.
Class with constructor to add usage string to table.
messageStream Info
Information stream (stdout output on master, null elsewhere)
Mesh consisting of general polyhedral cells.
Definition: polyMesh.H:74
Namespace for OpenFOAM.
addToRunTimeSelectionTable(functionObject, pointHistory, dictionary)