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 cellZone_H
00042 #define cellZone_H
00043
00044 #include <OpenFOAM/labelList.H>
00045 #include <OpenFOAM/typeInfo.H>
00046 #include <OpenFOAM/dictionary.H>
00047 #include <OpenFOAM/cellZoneMeshFwd.H>
00048 #include <OpenFOAM/pointFieldFwd.H>
00049 #include <OpenFOAM/Map.H>
00050
00051
00052
00053 namespace Foam
00054 {
00055
00056
00057
00058 class cellZone;
00059 Ostream& operator<<(Ostream&, const cellZone&);
00060
00061
00062
00063
00064
00065
00066 class cellZone
00067 :
00068 public labelList
00069 {
00070
00071
00072
00073 word name_;
00074
00075
00076 label index_;
00077
00078
00079 const cellZoneMesh& zoneMesh_;
00080
00081
00082
00083
00084 mutable Map<label>* cellLookupMapPtr_;
00085
00086
00087
00088
00089
00090 cellZone(const cellZone&);
00091
00092
00093 const Map<label>& cellLookupMap() const;
00094
00095
00096 void calcCellLookupMap() const;
00097
00098
00099 public:
00100
00101
00102 TypeName("cellZone");
00103
00104
00105
00106
00107 declareRunTimeSelectionTable
00108 (
00109 autoPtr,
00110 cellZone,
00111 dictionary,
00112 (
00113 const word& name,
00114 const dictionary& dict,
00115 const label index,
00116 const cellZoneMesh& zm
00117 ),
00118 (name, dict, index, zm)
00119 );
00120
00121
00122
00123
00124
00125 cellZone
00126 (
00127 const word& name,
00128 const labelList& addr,
00129 const label index,
00130 const cellZoneMesh&
00131 );
00132
00133
00134 cellZone
00135 (
00136 const word& name,
00137 const Xfer<labelList>& addr,
00138 const label index,
00139 const cellZoneMesh&
00140 );
00141
00142
00143 cellZone
00144 (
00145 const word& name,
00146 const dictionary&,
00147 const label index,
00148 const cellZoneMesh&
00149 );
00150
00151
00152
00153 cellZone
00154 (
00155 const cellZone&,
00156 const labelList& addr,
00157 const label index,
00158 const cellZoneMesh&
00159 );
00160
00161
00162
00163 cellZone
00164 (
00165 const cellZone&,
00166 const Xfer<labelList>& addr,
00167 const label index,
00168 const cellZoneMesh&
00169 );
00170
00171
00172 virtual autoPtr<cellZone> clone(const cellZoneMesh& zm) const
00173 {
00174 return autoPtr<cellZone>
00175 (
00176 new cellZone(*this, *this, index(), zm)
00177 );
00178 }
00179
00180
00181
00182 virtual autoPtr<cellZone> clone
00183 (
00184 const labelList& addr,
00185 const label index,
00186 const cellZoneMesh& zm
00187 ) const
00188 {
00189 return autoPtr<cellZone>
00190 (
00191 new cellZone(*this, addr, index, zm)
00192 );
00193 }
00194
00195
00196
00197
00198
00199
00200 static autoPtr<cellZone> New
00201 (
00202 const word& name,
00203 const dictionary&,
00204 const label index,
00205 const cellZoneMesh&
00206 );
00207
00208
00209
00210
00211 virtual ~cellZone();
00212
00213
00214
00215
00216
00217 const word& name() const
00218 {
00219 return name_;
00220 }
00221
00222
00223
00224
00225
00226 label whichCell(const label globalCellID) const;
00227
00228
00229 label index() const
00230 {
00231 return index_;
00232 }
00233
00234
00235 const cellZoneMesh& zoneMesh() const;
00236
00237
00238 void clearAddressing();
00239
00240
00241 bool checkDefinition(const bool report = false) const;
00242
00243
00244 virtual void movePoints(const pointField&)
00245 {}
00246
00247
00248 virtual void write(Ostream&) const;
00249
00250
00251 virtual void writeDict(Ostream&) const;
00252
00253
00254
00255
00256
00257 void operator=(const cellZone&);
00258
00259
00260 void operator=(const labelList&);
00261
00262
00263
00264
00265 friend Ostream& operator<<(Ostream&, const cellZone&);
00266 };
00267
00268
00269
00270
00271 }
00272
00273
00274
00275 #endif
00276
00277