/[escript]/branches/ripleygmg_from_3668/ripley/src/RipleyDomain.cpp
ViewVC logotype

Diff of /branches/ripleygmg_from_3668/ripley/src/RipleyDomain.cpp

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

revision 3697 by caltinay, Mon Nov 28 04:52:00 2011 UTC revision 3701 by caltinay, Fri Dec 2 02:04:58 2011 UTC
# Line 231  bool RipleyDomain::commonFunctionSpace(c Line 231  bool RipleyDomain::commonFunctionSpace(c
231      return true;      return true;
232  }  }
233    
234    void RipleyDomain::interpolateOnDomain(escript::Data& target,
235                                           const escript::Data& in) const
236    {
237        const RipleyDomain& inDomain=dynamic_cast<const RipleyDomain&>(*(in.getFunctionSpace().getDomain()));
238        const RipleyDomain& targetDomain=dynamic_cast<const RipleyDomain&>(*(target.getFunctionSpace().getDomain()));
239        if (inDomain != *this)
240            throw RipleyException("Illegal domain of interpolant");
241        if (targetDomain != *this)
242            throw RipleyException("Illegal domain of interpolation target");
243    
244        stringstream msg;
245        msg << "interpolateOnDomain() not implemented for function space "
246            << functionSpaceTypeAsString(in.getFunctionSpace().getTypeCode())
247            << " -> "
248            << functionSpaceTypeAsString(target.getFunctionSpace().getTypeCode());
249    
250        switch (in.getFunctionSpace().getTypeCode()) {
251            case Nodes:
252            case DegreesOfFreedom:
253                switch (target.getFunctionSpace().getTypeCode()) {
254                    case DegreesOfFreedom:
255                        target=in;
256                        break;
257    
258                    case Elements:
259                        interpolateNodesOnElements(target, *const_cast<escript::Data*>(&in));
260                        break;
261    
262                    case FaceElements:
263                        interpolateNodesOnFaces(target, *const_cast<escript::Data*>(&in));
264                        break;
265    
266                    default:
267                        throw RipleyException(msg.str());
268                }
269                break;
270            default:
271                throw RipleyException(msg.str());
272        }
273    }
274    
275  escript::Data RipleyDomain::getX() const  escript::Data RipleyDomain::getX() const
276  {  {
277      return escript::continuousFunction(*this).getX();      return escript::continuousFunction(*this).getX();
# Line 387  const int* RipleyDomain::borrowSampleRef Line 428  const int* RipleyDomain::borrowSampleRef
428      throw RipleyException("borrowSampleReferenceIDs() not implemented");      throw RipleyException("borrowSampleReferenceIDs() not implemented");
429  }  }
430    
 void RipleyDomain::interpolateOnDomain(escript::Data& target,  
                                        const escript::Data& in) const  
 {  
     throw RipleyException("interpolateOnDomain() not implemented");  
 }  
   
431  bool RipleyDomain::probeInterpolationOnDomain(int fsType_source,  bool RipleyDomain::probeInterpolationOnDomain(int fsType_source,
432                                               int fsType_target) const                                               int fsType_target) const
433  {  {
# Line 556  void RipleyDomain::assembleCoordinates(e Line 591  void RipleyDomain::assembleCoordinates(e
591      throw RipleyException("assembleCoordinates() not implemented");      throw RipleyException("assembleCoordinates() not implemented");
592  }  }
593    
594    void RipleyDomain::interpolateNodesOnElements(escript::Data& out, escript::Data& in) const
595    {
596        throw RipleyException("interpolateNodesOnElements() not implemented");
597    }
598    
599    void RipleyDomain::interpolateNodesOnFaces(escript::Data& out, escript::Data& in) const
600    {
601        throw RipleyException("interpolateNodesOnFaces() not implemented");
602    }
603    
604    
605  } // end of namespace ripley  } // end of namespace ripley
606    

Legend:
Removed from v.3697  
changed lines
  Added in v.3701

  ViewVC Help
Powered by ViewVC 1.1.26