/usr/include/freefoam/OpenFOAM/mapPatchChange.H is in libfreefoam-dev 0.1.0+dfsg-1build1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 | /*---------------------------------------------------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 1991-2010 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
OpenFOAM is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
for more details.
You should have received a copy of the GNU General Public License
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
Class
Foam::mapPatchChange
Description
Class containing mesh-to-mesh mapping information after a patch change
operation.
SourceFiles
\*---------------------------------------------------------------------------*/
#ifndef mapPatchChange_H
#define mapPatchChange_H
#include <OpenFOAM/labelList.H>
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
namespace Foam
{
/*---------------------------------------------------------------------------*\
Class mapPatchChange Declaration
\*---------------------------------------------------------------------------*/
class mapPatchChange
{
// Private data
//- Old patches
const label nOldPatches_;
//- Patch mapping array
const labelList patchMap_;
public:
// Constructors
//- Construct from components
mapPatchChange(const label nOldPatches, const labelList& patchMap)
:
nOldPatches_(nOldPatches),
patchMap_(patchMap)
{}
// Member Functions
// Access
//- Number of old patches
label nOldPatches() const
{
return nOldPatches_;
}
//- Patch map. Size of current patches.
// -1 : patch was added
// >=0 : old position of patch
// any original patch which is not in the list has been deleted
const labelList& patchMap() const
{
return patchMap_;
}
// Utility functions
//- labels of added patches
labelList addedPatches() const
{
labelList added(patchMap_.size());
label addedI = 0;
forAll(patchMap_, patchI)
{
if (patchMap_[patchI] == -1)
{
added[addedI++] = patchI;
}
}
added.setSize(addedI);
return added;
}
//- labels (on old mesh) of deleted patches
labelList deletedPatches() const
{
labelList oldToNew(nOldPatches_, -1);
// Mark all preserved patches
forAll(patchMap_, patchI)
{
if (patchMap_[patchI] != -1)
{
oldToNew[patchMap_[patchI]] = patchI;
}
}
// Extract -1 elements from oldToNew. These are the deleted
// patches.
label deletedI = 0;
forAll(oldToNew, oldPatchI)
{
if (oldToNew[oldPatchI] == -1)
{
oldToNew[deletedI++] = oldPatchI;
}
}
oldToNew.setSize(deletedI);
return oldToNew;
}
};
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
} // End namespace Foam
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
#endif
// ************************ vim: set sw=4 sts=4 et: ************************ //
|