/[escript]/branches/diaplayground/ripley/src/Brick.cpp
ViewVC logotype

Diff of /branches/diaplayground/ripley/src/Brick.cpp

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

revision 3758 by caltinay, Fri Jan 6 04:48:27 2012 UTC revision 3759 by caltinay, Fri Jan 6 06:54:51 2012 UTC
# Line 279  const int* Brick::borrowSampleReferenceI Line 279  const int* Brick::borrowSampleReferenceI
279    
280  bool Brick::ownSample(int fsType, index_t id) const  bool Brick::ownSample(int fsType, index_t id) const
281  {  {
282  #ifdef ESYS_MPI      if (getMPISize()==1)
283            return true;
284    
285      switch (fsType) {      switch (fsType) {
286          case Nodes:          case Nodes:
287          case ReducedNodes: //FIXME: reduced          case ReducedNodes: //FIXME: reduced
# Line 298  bool Brick::ownSample(int fsType, index_ Line 300  bool Brick::ownSample(int fsType, index_
300              }              }
301          case FaceElements:          case FaceElements:
302          case ReducedFaceElements:          case ReducedFaceElements:
303                {
304                    // check ownership of face element's last node
305                    const IndexVector faces = getNumFacesPerBoundary();
306                    dim_t n=0;
307                    for (size_t i=0; i<faces.size(); i++) {
308                        n+=faces[i];
309                        if (id<n) {
310                            const index_t j=id-n+faces[i];
311                            if (i>=4) { // front or back
312                                const index_t first=(i==4 ? 0 : m_N0*m_N1*(m_N2-1));
313                                return (m_dofMap[first+j%m_NE0+1+(j/m_NE0+1)*m_N0] < getNumDOF());
314                            } else if (i>=2) { // bottom or top
315                                const index_t first=(i==2 ? 0 : m_N0*(m_N1-1));
316                                return (m_dofMap[first+j%m_NE0+1+(j/m_NE0+1)*m_N0*m_N1] < getNumDOF());
317                            } else { // left or right
318                                const index_t first=(i==0 ? 0 : m_N0-1);
319                                return (m_dofMap[first+(j%m_NE1+1)*m_N0+(j/m_NE1+1)*m_N0*m_N1] < getNumDOF());
320                            }
321                        }
322                    }
323                    return false;
324                }
325          default:          default:
326              break;              break;
327      }      }
# Line 306  bool Brick::ownSample(int fsType, index_ Line 330  bool Brick::ownSample(int fsType, index_
330      msg << "ownSample() not implemented for "      msg << "ownSample() not implemented for "
331          << functionSpaceTypeAsString(fsType);          << functionSpaceTypeAsString(fsType);
332      throw RipleyException(msg.str());      throw RipleyException(msg.str());
 #else  
     return true;  
 #endif  
333  }  }
334    
335  void Brick::setToGradient(escript::Data& out, const escript::Data& cIn) const  void Brick::setToGradient(escript::Data& out, const escript::Data& cIn) const

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

  ViewVC Help
Powered by ViewVC 1.1.26