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

app-pfrauenf/traceMass.hh
Go to the documentation of this file.
00001 /* compute mass matrix on boundary of the domain only (-> trace)
00002  */
00003 
00004 #ifndef traceMass_hh
00005 #define traceMass_hh
00006 
00007 #include "operator/bilinearForm.hh"
00008 #include "basics/typedefs.hh"
00009 #include "basics/vectorsMatricesForward.hh"
00010 #include "geometry/connector.hh"
00011 
00012 // forward declarations
00013 namespace concepts {
00014   template<class F>
00015   class Element;
00016 
00017   template<class F>
00018   class ElementMatrix;
00019 }
00020 
00021 namespace hp3D {
00022   class Hexahedron;
00023 }
00024 
00025 using concepts::Real;
00026 
00027 // *************************************************************** TraceMass **
00028 
00032 class TraceMass : public concepts::BilinearForm<Real> {
00033 public:
00035   TraceMass(concepts::Attribute attrib) : attrib_(attrib) {}
00036   virtual ~TraceMass();
00037 
00038   virtual void operator()(const concepts::Element<Real>& elmX,
00039         const concepts::Element<Real>& elmY, 
00040         concepts::ElementMatrix<Real>& em); 
00041   void operator()(const hp3D::Hexahedron& elmX, const hp3D::Hexahedron& elmY, 
00042       concepts::ElementMatrix<Real>& em);
00043   virtual TraceMass* clone() const { return new TraceMass(attrib_); }
00044 protected:
00045   virtual std::ostream& info(std::ostream& os) const;
00046 private:
00048   concepts::Array<Real> jacobian_;
00049 
00050   const concepts::Attribute attrib_;
00051 };
00052 
00053 #endif // traceMass_hh

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