/[escript]/trunk/ripley/src/Rectangle.cpp
ViewVC logotype

Diff of /trunk/ripley/src/Rectangle.cpp

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

revision 3757 by caltinay, Fri Jan 6 04:48:27 2012 UTC revision 3759 by caltinay, Fri Jan 6 06:54:51 2012 UTC
# Line 264  const int* Rectangle::borrowSampleRefere Line 264  const int* Rectangle::borrowSampleRefere
264    
265  bool Rectangle::ownSample(int fsType, index_t id) const  bool Rectangle::ownSample(int fsType, index_t id) const
266  {  {
267  #ifdef ESYS_MPI      if (getMPISize()==1)
268            return true;
269    
270      switch (fsType) {      switch (fsType) {
271          case Nodes:          case Nodes:
272          case ReducedNodes: //FIXME: reduced          case ReducedNodes: //FIXME: reduced
# Line 278  bool Rectangle::ownSample(int fsType, in Line 280  bool Rectangle::ownSample(int fsType, in
280              return (m_dofMap[id%m_NE0+m_N0*(id/m_NE0)] < getNumDOF());              return (m_dofMap[id%m_NE0+m_N0*(id/m_NE0)] < getNumDOF());
281          case FaceElements:          case FaceElements:
282          case ReducedFaceElements:          case ReducedFaceElements:
283                {
284                    // check ownership of face element's first node
285                    const IndexVector faces = getNumFacesPerBoundary();
286                    dim_t n=0;
287                    for (size_t i=0; i<faces.size(); i++) {
288                        n+=faces[i];
289                        if (id<n) {
290                            index_t k;
291                            if (i==1)
292                                k=m_N0-1;
293                            else if (i==3)
294                                k=m_N0*(m_N1-1);
295                            else
296                                k=0;
297                            // determine whether to move right or up
298                            const index_t delta=(i/2==0 ? m_N0 : 1);
299                            return (m_dofMap[k+(id-n+faces[i])*delta] < getNumDOF());
300                        }
301                    }
302                    return false;
303                }
304          default:          default:
305              break;              break;
306      }      }
# Line 286  bool Rectangle::ownSample(int fsType, in Line 309  bool Rectangle::ownSample(int fsType, in
309      msg << "ownSample() not implemented for "      msg << "ownSample() not implemented for "
310          << functionSpaceTypeAsString(fsType);          << functionSpaceTypeAsString(fsType);
311      throw RipleyException(msg.str());      throw RipleyException(msg.str());
 #else  
     return true;  
 #endif  
312  }  }
313    
314  void Rectangle::setToGradient(escript::Data& out, const escript::Data& cIn) const  void Rectangle::setToGradient(escript::Data& out, const escript::Data& cIn) const

Legend:
Removed from v.3757  
changed lines
  Added in v.3759

  ViewVC Help
Powered by ViewVC 1.1.26