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
00039
00040
00041 #ifndef mapDistributePolyMesh_H
00042 #define mapDistributePolyMesh_H
00043
00044 #include <OpenFOAM/mapDistribute.H>
00045
00046
00047
00048 namespace Foam
00049 {
00050
00051 class mapPolyMesh;
00052 class polyMesh;
00053
00054
00055
00056
00057
00058 class mapDistributePolyMesh
00059 {
00060
00061
00062 const polyMesh& mesh_;
00063
00064
00065 const label nOldPoints_;
00066
00067
00068 const label nOldFaces_;
00069
00070
00071 const label nOldCells_;
00072
00073
00074 labelList oldPatchSizes_;
00075
00076
00077 const labelList oldPatchStarts_;
00078
00079
00080 const labelList oldPatchNMeshPoints_;
00081
00082
00083
00084 const mapDistribute pointMap_;
00085
00086
00087 const mapDistribute faceMap_;
00088
00089
00090 const mapDistribute cellMap_;
00091
00092
00093 const mapDistribute patchMap_;
00094
00095
00096
00097
00098
00099 void calcPatchSizes();
00100
00101
00102 mapDistributePolyMesh(const mapDistributePolyMesh&);
00103
00104
00105 void operator=(const mapDistributePolyMesh&);
00106
00107
00108 public:
00109
00110
00111
00112
00113
00114 mapDistributePolyMesh
00115 (
00116 const polyMesh& mesh,
00117
00118
00119 const label nOldPoints,
00120 const label nOldFaces,
00121 const label nOldCells,
00122 const labelList& oldPatchStarts,
00123 const labelList& oldPatchNMeshPoints,
00124
00125
00126 const labelListList& subPointMap,
00127 const labelListList& subFaceMap,
00128 const labelListList& subCellMap,
00129 const labelListList& subPatchMap,
00130
00131
00132 const labelListList& constructPointMap,
00133 const labelListList& constructFaceMap,
00134 const labelListList& constructCellMap,
00135 const labelListList& constructPatchMap
00136 );
00137
00138
00139
00140 mapDistributePolyMesh
00141 (
00142 const polyMesh& mesh,
00143 const label nOldPoints,
00144 const label nOldFaces,
00145 const label nOldCells,
00146 labelList& oldPatchStarts,
00147 labelList& oldPatchNMeshPoints,
00148
00149 labelListList& subPointMap,
00150 labelListList& subFaceMap,
00151 labelListList& subCellMap,
00152 labelListList& subPatchMap,
00153 labelListList& constructPointMap,
00154 labelListList& constructFaceMap,
00155 labelListList& constructCellMap,
00156 labelListList& constructPatchMap,
00157 const bool reUse
00158 );
00159
00160
00161
00162
00163
00164
00165 const polyMesh& mesh() const
00166 {
00167 return mesh_;
00168 }
00169
00170
00171 label nOldPoints() const
00172 {
00173 return nOldPoints_;
00174 }
00175
00176
00177 label nOldFaces() const
00178 {
00179 return nOldFaces_;
00180 }
00181
00182
00183 label nOldCells() const
00184 {
00185 return nOldCells_;
00186 }
00187
00188
00189 const labelList& oldPatchSizes() const
00190 {
00191 return oldPatchSizes_;
00192 }
00193
00194
00195 const labelList& oldPatchStarts() const
00196 {
00197 return oldPatchStarts_;
00198 }
00199
00200
00201 const labelList& oldPatchNMeshPoints() const
00202 {
00203 return oldPatchNMeshPoints_;
00204 }
00205
00206
00207 const mapDistribute& pointMap() const
00208 {
00209 return pointMap_;
00210 }
00211
00212
00213 const mapDistribute& faceMap() const
00214 {
00215 return faceMap_;
00216 }
00217
00218
00219 const mapDistribute& cellMap() const
00220 {
00221 return cellMap_;
00222 }
00223
00224
00225 const mapDistribute& patchMap() const
00226 {
00227 return patchMap_;
00228 }
00229
00230
00231
00232
00233
00234 template<class T>
00235 void distributePointData(List<T>& lst) const
00236 {
00237 pointMap_.distribute(lst);
00238 }
00239
00240
00241 template<class T>
00242 void distributeFaceData(List<T>& lst) const
00243 {
00244 faceMap_.distribute(lst);
00245 }
00246
00247
00248 template<class T>
00249 void distributeCellData(List<T>& lst) const
00250 {
00251 cellMap_.distribute(lst);
00252 }
00253
00254
00255 template<class T>
00256 void distributePatchData(List<T>& lst) const
00257 {
00258 patchMap_.distribute(lst);
00259 }
00260
00261
00262
00263
00264 void distributePointIndices(labelList& pointIDs) const;
00265
00266 void distributeFaceIndices(labelList& faceIDs) const;
00267 void distributeCellIndices(labelList& cellIDs) const;
00268 void distributePatchIndices(labelList& patchIDs) const;
00269
00270
00271
00272 void updateMesh(const mapPolyMesh&)
00273 {
00274 notImplemented
00275 (
00276 "mapDistributePolyMesh::updateMesh(const mapPolyMesh&)"
00277 );
00278 }
00279 };
00280
00281
00282
00283
00284 }
00285
00286
00287
00288 #endif
00289
00290