Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 #include "patchToFace.H"
00027 #include <OpenFOAM/polyMesh.H>
00028
00029 #include <OpenFOAM/addToRunTimeSelectionTable.H>
00030
00031
00032
00033 namespace Foam
00034 {
00035
00036 defineTypeNameAndDebug(patchToFace, 0);
00037
00038 addToRunTimeSelectionTable(topoSetSource, patchToFace, word);
00039
00040 addToRunTimeSelectionTable(topoSetSource, patchToFace, istream);
00041
00042 }
00043
00044
00045 Foam::topoSetSource::addToUsageTable Foam::patchToFace::usage_
00046 (
00047 patchToFace::typeName,
00048 "\n Usage: patchToFace patch\n\n"
00049 " Select all faces in the patch. Note:accepts wildcards for patch.\n\n"
00050 );
00051
00052
00053
00054
00055 void Foam::patchToFace::combine(topoSet& set, const bool add) const
00056 {
00057 bool hasMatched = false;
00058
00059 forAll(mesh_.boundaryMesh(), patchI)
00060 {
00061 const polyPatch& pp = mesh_.boundaryMesh()[patchI];
00062
00063 if (patchName_.match(pp.name()))
00064 {
00065 Info<< " Found matching patch " << pp.name()
00066 << " with " << pp.size() << " faces." << endl;
00067
00068 hasMatched = true;
00069
00070
00071 for
00072 (
00073 label faceI = pp.start();
00074 faceI < pp.start() + pp.size();
00075 faceI++
00076 )
00077 {
00078 addOrDelete(set, faceI, add);
00079 }
00080 }
00081 }
00082
00083 if (!hasMatched)
00084 {
00085 WarningIn("patchToFace::combine(topoSet&, const bool)")
00086 << "Cannot find any patch named " << patchName_ << endl
00087 << "Valid names are " << mesh_.boundaryMesh().names() << endl;
00088 }
00089 }
00090
00091
00092
00093
00094
00095 Foam::patchToFace::patchToFace
00096 (
00097 const polyMesh& mesh,
00098 const word& patchName
00099 )
00100 :
00101 topoSetSource(mesh),
00102 patchName_(patchName)
00103 {}
00104
00105
00106
00107 Foam::patchToFace::patchToFace
00108 (
00109 const polyMesh& mesh,
00110 const dictionary& dict
00111 )
00112 :
00113 topoSetSource(mesh),
00114 patchName_(dict.lookup("name"))
00115 {}
00116
00117
00118
00119 Foam::patchToFace::patchToFace
00120 (
00121 const polyMesh& mesh,
00122 Istream& is
00123 )
00124 :
00125 topoSetSource(mesh),
00126 patchName_(checkIs(is))
00127 {}
00128
00129
00130
00131
00132 Foam::patchToFace::~patchToFace()
00133 {}
00134
00135
00136
00137
00138 void Foam::patchToFace::applyToSet
00139 (
00140 const topoSetSource::setAction action,
00141 topoSet& set
00142 ) const
00143 {
00144 if ((action == topoSetSource::NEW) || (action == topoSetSource::ADD))
00145 {
00146 Info<< " Adding all faces of patch " << patchName_ << " ..." << endl;
00147
00148 combine(set, true);
00149 }
00150 else if (action == topoSetSource::DELETE)
00151 {
00152 Info<< " Removing all faces of patch " << patchName_ << " ..."
00153 << endl;
00154
00155 combine(set, false);
00156 }
00157 }
00158
00159
00160