Ignore:
Timestamp:
06/09/16 11:32:27 (8 years ago)
Author:
mhnguyen
Message:

Chaning the way to process transformation to improve the performance.
Instead of exchanging global index and weights on full GRID, each process only
sends and receives the global index and weights on each ELEMENT, which can reduce
the message size of DHT.

+) Domain and axis now have their own exchange function to transfer global index and weight
+) Generic transformation now plays the role of "synthesizer" for all elements
+) Grid transformation now plays the role of transformation mapping, e.x: exchange final global index and weight
among processes.

Test
+) On Curie
+) Pass on all basic tests
+) Dynamic interpolation on axis hasn't been tested (and it seems to need more change to make it rework)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • XIOS/trunk/src/transformation/axis_algorithm_interpolate.cpp

    r833 r862  
    265265    CDomain* dom = domListP[0]; 
    266266    size_t vecAxisValueSize = dom->i_index.numElements(); 
     267    int niGlobDom = dom->ni_glo.getValue(); 
    267268    vecAxisValue.resize(vecAxisValueSize); 
    268269    if (transPosition_.empty()) 
     
    271272      for (size_t idx = 0; idx < vecAxisValueSize; ++idx) 
    272273      { 
    273         transPosition_[idx].resize(2); 
    274         transPosition_[idx][0] = (dom->i_index)(idx); 
    275         transPosition_[idx][1] = (dom->j_index)(idx); 
     274        transPosition_[idx].resize(1); 
     275        transPosition_[idx][0] = (dom->i_index)(idx) + niGlobDom * (dom->j_index)(idx); 
     276//        transPosition_[idx][0] = (dom->i_index)(idx); 
     277//        transPosition_[idx][1] = (dom->j_index)(idx); 
    276278      } 
    277279    } 
Note: See TracChangeset for help on using the changeset viewer.