/[escript]/trunk/escript/src/DataExpanded.cpp
ViewVC logotype

Diff of /trunk/escript/src/DataExpanded.cpp

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

revision 1358 by gross, Wed Dec 5 03:41:06 2007 UTC revision 1628 by phornby, Fri Jul 11 13:12:46 2008 UTC
# Line 641  DataExpanded::setToZero(){ Line 641  DataExpanded::setToZero(){
641    for (sampleNo = 0; sampleNo < numSamples; sampleNo++) {    for (sampleNo = 0; sampleNo < numSamples; sampleNo++) {
642      for (dataPointNo = 0; dataPointNo < numDataPointsPerSample; dataPointNo++) {      for (dataPointNo = 0; dataPointNo < numDataPointsPerSample; dataPointNo++) {
643          p=&(m_data[getPointOffset(sampleNo,dataPointNo)]);          p=&(m_data[getPointOffset(sampleNo,dataPointNo)]);
644          for (int i=0; i<n ;++i) p[i]=0.;          for (i=0; i<n ;++i) p[i]=0.;
645      }      }
646    }    }
647  }  }
# Line 740  DataExpanded::setTaggedValue(int tagKey, Line 740  DataExpanded::setTaggedValue(int tagKey,
740      if (getFunctionSpace().getTagFromSampleNo(sampleNo) == tagKey ) {      if (getFunctionSpace().getTagFromSampleNo(sampleNo) == tagKey ) {
741          for (dataPointNo = 0; dataPointNo < numDataPointsPerSample; dataPointNo++) {          for (dataPointNo = 0; dataPointNo < numDataPointsPerSample; dataPointNo++) {
742              p=&(m_data[getPointOffset(sampleNo,dataPointNo)]);              p=&(m_data[getPointOffset(sampleNo,dataPointNo)]);
743              for (int i=0; i<n ;++i) p[i]=in[i];              for (i=0; i<n ;++i) p[i]=in[i];
744          }          }
745      }      }
746    }    }
747  }  }
748    
749    void
750    DataExpanded::reorderByReferenceIDs(int *reference_ids)
751    {
752      int numSamples = getNumSamples();
753      DataArrayView& thisView=getPointDataView();
754      DataArrayView::ValueType::size_type n = thisView.noValues() * getNumDPPSample();
755      int sampleNo, sampleNo2,i;
756      double* p,*p2;
757      register double rtmp;
758      FunctionSpace fs=getFunctionSpace();
759    
760      for (sampleNo = 0; sampleNo < numSamples; sampleNo++) {
761         const int id_in=reference_ids[sampleNo];
762         const int id=fs.getReferenceIDOfSample(sampleNo);
763         if (id!=id_in) {
764             bool matched=false;
765             for (sampleNo2 = sampleNo+1; sampleNo2 < numSamples; sampleNo2++) {
766                  if (id == reference_ids[sampleNo2]) {
767                     p=&(m_data[getPointOffset(sampleNo,0)]);
768                     p2=&(m_data[getPointOffset(sampleNo2,0)]);
769                     for (i=0; i<n ;i++) {
770                             rtmp=p[i];
771                             p[i]=p2[i];
772                             p2[i]=rtmp;
773                     }
774                     reference_ids[sampleNo]=id;
775                     reference_ids[sampleNo2]=id_in;
776                     matched=true;
777                     break;
778                  }
779             }
780             if (! matched) {
781                throw DataException("Error - DataExpanded::reorderByReferenceIDs: unable to reorder sample data by reference ids");
782             }
783         }
784       }
785    }
786    
787    
788  }  // end of namespace  }  // end of namespace

Legend:
Removed from v.1358  
changed lines
  Added in v.1628

  ViewVC Help
Powered by ViewVC 1.1.26