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

linearFEM/bilinearForm2D.hh
Go to the documentation of this file.
00001 // bilinear forms for quads and triangles for the Laplacian and the mass matrix
00002 
00003 #ifndef bilinearLinFEM_hh
00004 #define bilinearLinFEM_hh
00005 
00006 #include "basics/typedefs.hh"
00007 #include "basics/vectorsMatrices.hh"
00008 #include "operator/bilinearForm.hh"
00009 #include "toolbox/array.hh"
00010 
00011 namespace linearFEM {
00012 
00013   using concepts::Real;
00014 
00015   class Quad;
00016   class Triangle;
00017 
00018   // ************************************************************* Laplace2d **
00019 
00027   class Laplace2d : public concepts::BilinearForm<Real> {
00028   public:
00029     virtual void operator()(const concepts::Element<Real>& elmX,
00030           const concepts::Element<Real>& elmY,
00031           concepts::ElementMatrix<Real>& em);
00036     void operator()(const linearFEM::Quad& elmX,
00037         const linearFEM::Quad& elmY,
00038         concepts::ElementMatrix<Real>& em);
00042     void operator()(const linearFEM::Triangle& elmX,
00043         const linearFEM::Triangle& elmY,
00044         concepts::ElementMatrix<Real>& em);
00045     virtual Laplace2d* clone() const { return new Laplace2d(); }
00046   private:
00048     concepts::Array<concepts::Real2d> shpfct_;
00049   };
00050 
00051   // ************************************************************ Identity2d **
00052 
00060   class Identity2d : public concepts::BilinearForm<Real> {
00061   public:
00062     virtual void operator()(const concepts::Element<Real>& elmX,
00063           const concepts::Element<Real>& elmY,
00064           concepts::ElementMatrix<Real>& em);
00069     void operator()(const linearFEM::Quad& elmX,
00070         const linearFEM::Quad& elmY,
00071         concepts::ElementMatrix<Real>& em);
00075     void operator()(const linearFEM::Triangle& elmX,
00076         const linearFEM::Triangle& elmY,
00077         concepts::ElementMatrix<Real>& em);
00078     virtual Identity2d* clone() const { return new Identity2d(); }
00079   private:
00081     concepts::Array<Real> shpfct_;
00082   };
00083 
00084 } // namespace linearFEM
00085 
00086 #endif // bilinearLinFEM_hh

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