Changeset 460 for XIOS/trunk/src/parse_expr/expr_node.hpp
- Timestamp:
- 01/20/14 11:16:48 (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
XIOS/trunk/src/parse_expr/expr_node.hpp
r458 r460 193 193 CFieldNode(void) : CNodeExpr() {} 194 194 static CFieldNode* newNode(CSimpleNodeExpr* simpleNode) ; 195 virtual void reduce(CField* thisField = NULL) =0 ;195 virtual void reduce(CField* thisField, map<string,CField*>& associatedInstantField, map<string,CField*>& associatedAverageField) =0 ; 196 196 virtual CArray<double,1> compute(void)=0 ; 197 197 virtual void getFieldIds(set<string>& fieldIds)=0 ; 198 virtual void getInstantFieldIds(set<string>& fieldIds)=0 ; 199 virtual void getAverageFieldIds(set<string>& fieldIds)=0 ; 198 200 virtual void getFields(set<CField*>& fields)=0 ; 201 virtual void getInstantFields(set<CField*>& fields)=0 ; 202 virtual void getAverageFields(set<CField*>& fields)=0 ; 199 203 200 204 virtual ~CFieldNode() {} … … 212 216 public: 213 217 CInstantFieldNode(CSimpleNodeExpr* simpleNode) : CFieldNode(), fieldId(simpleNode->id) {} 214 virtual void reduce(CField* thisField = NULL) ;218 virtual void reduce(CField* thisField, map<string,CField*>& associatedInstantField, map<string,CField*>& associatedAverageField) ; 215 219 virtual CArray<double,1> compute(void) { return CArray<double,1>(*array);} 216 220 virtual ~CInstantFieldNode() { } 217 221 virtual void getFieldIds(set<string>& fieldIds) { fieldIds.insert(fieldId) ;} 222 virtual void getInstantFieldIds(set<string>& fieldIds) { fieldIds.insert(fieldId) ;} 223 virtual void getAverageFieldIds(set<string>& fieldIds) { } 218 224 virtual void getFields(set<CField*>& fields) { fields.insert(field) ;} 225 virtual void getInstantFields(set<CField*>& fields) { fields.insert(field) ;} 226 virtual void getAverageFields(set<CField*>& fields) { } 219 227 220 228 string fieldId; … … 238 246 CAverageFieldNode(CSimpleNodeExpr* simpleNode) : CFieldNode(), fieldId(simpleNode->id) {} 239 247 240 virtual void reduce(CField* thisField = NULL) ;248 virtual void reduce(CField* thisField, map<string,CField*>& associatedInstantField, map<string,CField*>& associatedAverageField) ; 241 249 virtual CArray<double,1> compute(void) { return CArray<double,1>(*array); } 242 250 virtual void getFieldIds(set<string>& fieldIds) { fieldIds.insert(fieldId) ;} 251 virtual void getInstantFieldIds(set<string>& fieldIds) { } 252 virtual void getAverageFieldIds(set<string>& fieldIds) { fieldIds.insert(fieldId) ;} 243 253 virtual void getFields(set<CField*>& fields) { fields.insert(field) ;} 254 virtual void getInstantFields(set<CField*>& fields) { } 255 virtual void getAverageFields(set<CField*>& fields) { fields.insert(field) ;} 244 256 virtual ~CAverageFieldNode() {} 245 257 string fieldId; … … 264 276 } 265 277 266 virtual void reduce(CField* thisField = NULL)267 { 268 child->reduce(thisField ) ;278 virtual void reduce(CField* thisField, map<string,CField*>& associatedInstantField, map<string,CField*>& associatedAverageField) 279 { 280 child->reduce(thisField, associatedInstantField, associatedAverageField) ; 269 281 op=operatorExpr.getOpField(opId) ; 270 282 reduced=true ; … … 272 284 273 285 virtual void getFieldIds(set<string>& fieldIds) {child-> getFieldIds(fieldIds);} 274 virtual void getFields(set<CField*>& fields) {child-> getFields(fields);} 275 286 virtual void getInstantFieldIds(set<string>& fieldIds) {child-> getInstantFieldIds(fieldIds) ;} 287 virtual void getAverageFieldIds(set<string>& fieldIds) {child-> getAverageFieldIds(fieldIds) ;} 288 virtual void getFields(set<CField*>& fields) { child-> getFields(fields) ;} 289 virtual void getInstantFields(set<CField*>& fields) {child-> getInstantFields(fields) ; } 290 virtual void getAverageFields(set<CField*>& fields) {child-> getAverageFields(fields) ; } 276 291 virtual CArray<double,1> compute(void) 277 292 { … … 303 318 } 304 319 305 virtual void reduce(CField* thisField = NULL)306 { 307 child1->reduce(thisField ) ;308 child2->reduce(thisField ) ;320 virtual void reduce(CField* thisField, map<string,CField*>& associatedInstantField, map<string,CField*>& associatedAverageField) 321 { 322 child1->reduce(thisField, associatedInstantField, associatedAverageField) ; 323 child2->reduce(thisField, associatedInstantField, associatedAverageField) ; 309 324 op=operatorExpr.getOpFieldField(opId) ; 310 325 reduced=true ; … … 312 327 313 328 virtual void getFieldIds(set<string>& fieldIds) {child1-> getFieldIds(fieldIds); child2-> getFieldIds(fieldIds);} 329 virtual void getInstantFieldIds(set<string>& fieldIds) {child1-> getInstantFieldIds(fieldIds); child2-> getInstantFieldIds(fieldIds);} 330 virtual void getAverageFieldIds(set<string>& fieldIds) {child1-> getAverageFieldIds(fieldIds); child2-> getAverageFieldIds(fieldIds);} 314 331 virtual void getFields(set<CField*>& fields) {child1-> getFields(fields); child2-> getFields(fields);} 332 virtual void getInstantFields(set<CField*>& fields) {child1-> getInstantFields(fields); child2-> getInstantFields(fields);} 333 virtual void getAverageFields(set<CField*>& fields) {child1-> getAverageFields(fields); child2-> getAverageFields(fields);} 315 334 316 335 virtual CArray<double,1> compute(void) … … 344 363 } 345 364 346 virtual void reduce(CField* thisField = NULL)365 virtual void reduce(CField* thisField, map<string,CField*>& associatedInstantField, map<string,CField*>& associatedAverageField) 347 366 { 348 367 child1->reduce() ; 349 child2->reduce(thisField ) ;368 child2->reduce(thisField, associatedInstantField, associatedAverageField) ; 350 369 op=operatorExpr.getOpScalarField(opId) ; 351 370 reduced=true ; … … 353 372 354 373 virtual void getFieldIds(set<string>& fieldIds) {child2-> getFieldIds(fieldIds);} 374 virtual void getInstantFieldIds(set<string>& fieldIds) {child2-> getInstantFieldIds(fieldIds);} 375 virtual void getAverageFieldIds(set<string>& fieldIds) {child2-> getAverageFieldIds(fieldIds);} 355 376 virtual void getFields(set<CField*>& fields) {child2-> getFields(fields);} 377 virtual void getInstantFields(set<CField*>& fields) {child2-> getInstantFields(fields);} 378 virtual void getAverageFields(set<CField*>& fields) {child2-> getAverageFields(fields);} 356 379 357 380 virtual CArray<double,1> compute(void) … … 385 408 } 386 409 387 virtual void reduce(CField* thisField = NULL)388 { 389 child1->reduce(thisField ) ;410 virtual void reduce(CField* thisField, map<string,CField*>& associatedInstantField, map<string,CField*>& associatedAverageField) 411 { 412 child1->reduce(thisField, associatedInstantField, associatedAverageField) ; 390 413 child2->reduce() ; 391 414 op=operatorExpr.getOpFieldScalar(opId) ; … … 399 422 400 423 virtual void getFieldIds(set<string>& fieldIds) {child1-> getFieldIds(fieldIds);} 424 virtual void getInstantFieldIds(set<string>& fieldIds) {child1-> getInstantFieldIds(fieldIds);} 425 virtual void getAverageFieldIds(set<string>& fieldIds) {child1-> getAverageFieldIds(fieldIds);} 401 426 virtual void getFields(set<CField*>& fields) {child1-> getFields(fields);} 427 virtual void getInstantFields(set<CField*>& fields) {child1-> getInstantFields(fields);} 428 virtual void getAverageFields(set<CField*>& fields) {child1-> getAverageFields(fields);} 402 429 403 430 ~COperatorFieldScalarNode() {delete child1, delete child2; }
Note: See TracChangeset
for help on using the changeset viewer.