Home | Doxygen Documentation | Tutorials | Developer Tools (restricted)

hp3D/spaceTransition.hh
Go to the documentation of this file.
00001 // transition from one to another space
00002 
00003 #ifndef spaceTransition_hh
00004 #define spaceTransition_hh
00005 
00006 #include "operator/compositions.hh"
00007 #include "space/elementPairs.hh"
00008 #include "space.hh"
00009 
00010 namespace hp3D {
00011 
00012   // ******************************************************** TransitionPair **
00013 
00017   class TransitionPair : public concepts::ElementPair<Real> {
00018   public:
00019     TransitionPair(const Element<Real>& elm1, const Element<Real>& elm2,
00020        const int relation) :
00021       elm1_(elm1), elm2_(elm2), relation_(relation) {}
00022     virtual const Element<Real>& elm1() const { return elm1_; }
00023     virtual const Element<Real>& elm2() const { return elm2_; }
00025     int relation() const { return relation_; }
00026   private:
00027     const Element<Real>& elm1_, & elm2_;
00028     const int relation_;
00029   };
00030 
00031   // ******************************************************* SpaceTransition **
00032 
00039   class SpaceTransition : public concepts::Operator<Real> {
00040   public:
00045     SpaceTransition(const Space& spaceX, const Space& spaceY);
00046     virtual void operator()(const concepts::Function<Real>& fncY,
00047                             concepts::Function<Real>& fncX);
00048     void operator()(const concepts::Vector<Real>& fncY,
00049                     concepts::Vector<Real>& fncX);
00050     virtual const Space& spaceX() const { return spcX_; }
00051     virtual const Space& spaceY() const { return spcY_; }
00052   protected:
00053     virtual std::ostream& info(std::ostream& os) const;
00054   private:
00056     const Space& spcX_, & spcY_;
00058     concepts::ElementPairList<Real> elmPairs_;
00067     bool findChildPath_(const int level, const concepts::Hexahedron3d& large,
00068                         const concepts::Hexahedron3d& small,
00069                         concepts::Array<uint>& children);
00070   };
00071 
00072 } // namespace hp3D
00073 
00074 #endif // spaceTransition_hh

Home | Doxygen Documentation | Tutorials | Developer Tools (restricted)