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

linearFEM/element3D.hh
Go to the documentation of this file.
00001 // element for linear FEM in 3D
00002 
00003 #ifndef element3DLin_hh
00004 #define element3DLin_hh
00005 
00006 #include "element.hh"
00007 #include "geometry/cell3D.hh"
00008 
00009 namespace concepts {
00010   // forward declaration
00011   template<typename F>
00012   class ElementGraphics;
00013 }
00014 
00015 namespace linearFEM {
00016   // forward declaration
00017   class TetrahedronGraphics;
00018 
00019   // *********************************************************** Tetrahedron **
00020 
00024   class Tetrahedron : public Element {
00025   public:
00030     Tetrahedron(const concepts::Tetrahedron3d& cell, uint idx[]) :
00031       Element(4, idx), cell_(cell) {}
00037     Tetrahedron(const concepts::Tetrahedron3d& cell,
00038     concepts::TColumn<Real>* T0,
00039     concepts::TColumn<Real>* T1 = 0) :
00040       Element(T0, T1), cell_(cell) {}
00041     virtual const concepts::Tetrahedron& support() const
00042     { return cell_.connector(); }
00043     virtual const concepts::Tetrahedron3d& cell() const { return cell_; }
00044     virtual const concepts::ElementGraphics<Real>* graphics() const;
00045   protected:
00046     virtual std::ostream& info(std::ostream& os) const;
00047   private:
00049     const concepts::Tetrahedron3d& cell_;
00051     static std::auto_ptr<TetrahedronGraphics> graphics_;
00052   };
00053 
00054 } // namespace linearFEM
00055 
00056 #endif // element3DLin_hh

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