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

hp3D/linearForm.hh
Go to the documentation of this file.
00001 /* Linear forms for hp 3D FEM
00002  */
00003 
00004 #ifndef hp3dlinearform_hh
00005 #define hp3dlinearform_hh
00006 
00007 #include <memory>
00008 #include "function/linearForm.hh"
00009 #include "basics/typedefs.hh"
00010 
00011 namespace concepts {
00012   // forward declarations
00013   template<class F>
00014   class Formula;
00015 
00016   class BoundaryConditions;
00017 
00018   template<class F>
00019   class Element;
00020 
00021   template<class F>
00022   class ElementMatrix;
00023 
00024   template<class F>
00025   class Array;
00026 }
00027 
00028 namespace hp3D {
00029   // forward declarations
00030   class Hexahedron;
00031 
00032   using concepts::Real;
00033 
00034   // ***************************************************************** Riesz **
00035 
00043   class Riesz : public concepts::LinearForm<Real> {
00044   public:
00049     Riesz(const concepts::Formula<Real>& frm,
00050     concepts::BoundaryConditions* bc = 0); 
00051     virtual ~Riesz();
00052 
00059     void operator()(const concepts::Element<Real>& elm,
00060         concepts::ElementMatrix<Real>& em);
00061     void operator()(const Hexahedron& elm, concepts::ElementMatrix<Real>& em);
00062   protected:
00063     virtual std::ostream& info(std::ostream& os) const;
00064   private:
00066     std::auto_ptr<const concepts::Formula<Real> > frm_;
00067 
00069     concepts::Array<Real> jacobian_;
00070 
00073     concepts::BoundaryConditions* bc_;
00074   }; 
00075 
00076 } // namespace hp3D
00077 
00078 #endif // hp3dlinearform_hh

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