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
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038 #ifndef removeFaces_H
00039 #define removeFaces_H
00040
00041 #include <OpenFOAM/Pstream.H>
00042 #include <OpenFOAM/HashSet.H>
00043 #include <OpenFOAM/Map.H>
00044 #include <OpenFOAM/boolList.H>
00045 #include <OpenFOAM/indirectPrimitivePatch.H>
00046
00047
00048
00049 namespace Foam
00050 {
00051
00052
00053 class polyMesh;
00054 class polyTopoChange;
00055 class face;
00056 class mapPolyMesh;
00057 class mapDistributePolyMesh;
00058
00059
00060
00061
00062
00063 class removeFaces
00064 {
00065
00066
00067
00068 const polyMesh& mesh_;
00069
00070
00071
00072 const scalar minCos_;
00073
00074
00075
00076
00077
00078
00079 void changeCellRegion
00080 (
00081 const label cellI,
00082 const label oldRegion,
00083 const label newRegion,
00084 labelList& cellRegion
00085 ) const;
00086
00087
00088 label changeFaceRegion
00089 (
00090 const labelList& cellRegion,
00091 const boolList& removedFace,
00092 const labelList& nFacesPerEdge,
00093 const label faceI,
00094 const label newRegion,
00095 const labelList& fEdges,
00096 labelList& faceRegion
00097 ) const;
00098
00099
00100 boolList getFacesAffected
00101 (
00102 const labelList& cellRegion,
00103 const labelList& cellRegionMaster,
00104 const labelList& facesToRemove,
00105 const labelHashSet& edgesToRemove,
00106 const labelHashSet& pointsToRemove
00107 ) const;
00108
00109
00110
00111
00112
00113 static void writeOBJ
00114 (
00115 const indirectPrimitivePatch&,
00116 const fileName&
00117 );
00118
00119
00120 void mergeFaces
00121 (
00122 const labelList& cellRegion,
00123 const labelList& cellRegionMaster,
00124 const labelHashSet& pointsToRemove,
00125 const labelList& faceLabels,
00126 polyTopoChange& meshMod
00127 ) const;
00128
00129
00130 void getFaceInfo
00131 (
00132 const label faceI,
00133 label& patchID,
00134 label& zoneID,
00135 label& zoneFlip
00136 ) const;
00137
00138
00139 face filterFace(const labelHashSet& pointsToRemove, const label)
00140 const;
00141
00142
00143 void modFace
00144 (
00145 const face& f,
00146 const label masterFaceID,
00147 const label own,
00148 const label nei,
00149 const bool flipFaceFlux,
00150 const label newPatchID,
00151 const bool removeFromZone,
00152 const label zoneID,
00153 const bool zoneFlip,
00154
00155 polyTopoChange& meshMod
00156 ) const;
00157
00158
00159
00160
00161 removeFaces(const removeFaces&);
00162
00163
00164 void operator=(const removeFaces&);
00165
00166
00167 public:
00168
00169
00170 ClassName("removeFaces");
00171
00172
00173
00174
00175
00176
00177
00178 removeFaces(const polyMesh&, const scalar minCos);
00179
00180
00181
00182
00183
00184
00185
00186
00187
00188
00189 label compatibleRemoves
00190 (
00191 const labelList& inPiercedFaces,
00192 labelList& cellRegion,
00193 labelList& cellRegionMaster,
00194 labelList& outPiercedFaces
00195 ) const;
00196
00197
00198
00199 void setRefinement
00200 (
00201 const labelList& piercedFaces,
00202 const labelList& cellRegion,
00203 const labelList& cellRegionMaster,
00204 polyTopoChange&
00205 ) const;
00206
00207
00208 void updateMesh(const mapPolyMesh&)
00209 {}
00210
00211
00212 void distribute(const mapDistributePolyMesh&)
00213 {}
00214 };
00215
00216
00217
00218
00219 }
00220
00221
00222
00223 #endif
00224
00225