int FMM3d::trgData  )  [protected]
 

return target data

Definition at line 101 of file fmm3d_setup.cpp.

References _let, _nodeVec, _trgDwnChkVal, _trgDwnEquDen, _trgExaPos, _trgExaVal, datSze(), DC, DE, KnlMat3d::dim(), LET_TRGNODE, Let3d::node(), Let3d::nodeVec(), Let3d::tag(), Let3d::terminal(), KnlMat3d::trgDOF(), Let3d::trgExaCnt(), trgExaPos(), Let3d::trgNodeCnt(), and Let3d::upwOrderCollect().

00102 {
00103   //1. create vecs
00104   int trgNodeCnt = _let->trgNodeCnt();
00105   int trgExaCnt = _let->trgExaCnt();
00106   _trgExaPos.resize(dim(), trgExaCnt);
00107   _trgExaVal.resize(trgExaCnt * trgDOF());
00108   _trgDwnEquDen.resize(trgNodeCnt * datSze(DE));
00109   _trgDwnChkVal.resize(trgNodeCnt * datSze(DC));
00110   
00111   //2. gather data from _trgPos
00112   vector<int> ordVec; iC( _let->upwOrderCollect(ordVec) );
00113   for(int i=0; i<ordVec.size(); i++) {
00114          int gNodeIdx = ordVec[i];
00115          if(_let->tag(gNodeIdx) & LET_TRGNODE) {
00116                 if(_let->terminal(gNodeIdx)==true) {
00117                   DblNumMat trgExaPos(this->trgExaPos(gNodeIdx));
00118                   vector<int>& curVecIdxs = _let->node(gNodeIdx).trgOwnVecIdxs();
00119                   for(int k=0; k<curVecIdxs.size(); k++) {
00120                          int poff = curVecIdxs[k];
00121                          for(int d=0; d<dim(); d++)
00122                                 trgExaPos(d,k) = (*_trgPos)(d, poff);
00123                   }
00124                 }
00125          }
00126   }
00127   
00128   //3. allocate ENExt
00129   _nodeVec.resize( _let->nodeVec().size() );
00130   for(int i=0; i<ordVec.size(); i++) {
00131          int gNodeIdx = ordVec[i];
00132          if(_let->tag(gNodeIdx) & LET_TRGNODE) {
00133                 //V
00134                 Let3d::Node& gg = _let->node(gNodeIdx);
00135                 _nodeVec[gNodeIdx].VinNum() = gg.Vnodes().size();
00136                 for(vector<int>::iterator vi=gg.Vnodes().begin(); vi!=gg.Vnodes().end(); vi++) {
00137                   _nodeVec[*vi].VotNum() ++;
00138                 }
00139          }
00140   }
00141   
00142   return (0);
00143 }


Generated on Sun Dec 4 19:24:40 2005 for fmm3d by  doxygen 1.4.5