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