/[escript]/branches/split/weipa/src/DataVar.cpp
ViewVC logotype

Diff of /branches/split/weipa/src/DataVar.cpp

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 3146 by caltinay, Fri Sep 3 01:29:21 2010 UTC revision 3357 by caltinay, Wed Nov 17 06:21:37 2010 UTC
# Line 28  Line 28 
28  #endif  #endif
29    
30  #include <numeric> // for accumulate  #include <numeric> // for accumulate
31    #include <iostream> // for cerr
32    #include <stdio.h>
33    
34  using namespace std;  using namespace std;
35    
# Line 92  bool DataVar::initFromEscript(escript::D Line 94  bool DataVar::initFromEscript(escript::D
94  #ifndef VISIT_PLUGIN  #ifndef VISIT_PLUGIN
95      cleanup();      cleanup();
96    
97      if (!escriptData.actsExpanded()) {      if (!escriptData.isConstant() && !escriptData.actsExpanded()) {
98          cerr << "WARNING: Only expanded data supported!" << endl;          cerr << "WARNING: Weipa only supports constant & expanded data, "
99                << "not initializing " << varName << endl;
100          return false;          return false;
101      }      }
102    
# Line 140  bool DataVar::initFromEscript(escript::D Line 143  bool DataVar::initFromEscript(escript::D
143          size_t dataSize = dimSize * ptsPerSample;          size_t dataSize = dimSize * ptsPerSample;
144          float* tempData = new float[dataSize*numSamples];          float* tempData = new float[dataSize*numSamples];
145          float* destPtr = tempData;          float* destPtr = tempData;
146          for (int sampleNo=0; sampleNo<numSamples; sampleNo++) {          if (escriptData.isConstant()) {
147              const escript::DataAbstract::ValueType::value_type* values =              const escript::DataAbstract::ValueType::value_type* values =
148                  escriptData.getSampleDataRO(sampleNo);                  escriptData.getSampleDataRO(0);
149              copy(values, values+dataSize, destPtr);              for (int pointNo=0; pointNo<numSamples*ptsPerSample; pointNo++) {
150              destPtr += dataSize;                  copy(values, values+dimSize, destPtr);
151                    destPtr += dimSize;
152                }
153            } else {
154                for (int sampleNo=0; sampleNo<numSamples; sampleNo++) {
155                    const escript::DataAbstract::ValueType::value_type* values =
156                        escriptData.getSampleDataRO(sampleNo);
157                    copy(values, values+dataSize, destPtr);
158                    destPtr += dataSize;
159                }
160          }          }
161    
162          const float* srcPtr = tempData;          const float* srcPtr = tempData;
# Line 229  bool DataVar::initFromFile(const string& Line 241  bool DataVar::initFromFile(const string&
241      att = input->get_att("function_space_type");      att = input->get_att("function_space_type");
242      funcSpace = att->as_int(0);      funcSpace = att->as_int(0);
243    
244      centering = domain->getCenteringForFunctionSpace(funcSpace);      centering = dom->getCenteringForFunctionSpace(funcSpace);
245    
246      dim = input->get_dim("num_samples");      dim = input->get_dim("num_samples");
247      numSamples = dim->size();      numSamples = dim->size();

Legend:
Removed from v.3146  
changed lines
  Added in v.3357

  ViewVC Help
Powered by ViewVC 1.1.26