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

linDG1D/bilinearForm.hh
Go to the documentation of this file.
00001 // Boundary integrals for linear DG FEM in 1D
00002 
00003 #ifndef linDG1DbilinearForm_hh
00004 #define linDG1DbilinearForm_hh
00005 
00006 #include "basics/typedefs.hh"
00007 #include "operator/bilinearForm.hh"
00008 #include "geometry/boundaryConditions.hh"
00009 
00010 namespace linDG1D {
00011 
00012   using concepts::Real;
00013 
00014   // *********************************************************** BoundaryInt **
00015 
00024   class BoundaryInt : public concepts::BilinearForm<Real> {
00025   public:
00026     BoundaryInt(concepts::BoundaryConditions* bc = 0) : bc_(bc) {}
00027     virtual void operator()(const concepts::Element<Real>& elmX,
00028           const concepts::Element<Real>& elmY,
00029           concepts::ElementMatrix<Real>& em);
00030     virtual void operator()(const concepts::Element<Real>& elmX,
00031           const concepts::Element<Real>& elmY,
00032           concepts::ElementMatrix<Real>& em,
00033           const concepts::ElementPair<Real>& ep);
00034     virtual BoundaryInt* clone() const { return new BoundaryInt(bc_); }
00035   private:
00036     concepts::BoundaryConditions* bc_;
00037   };
00038 
00039   // ******************************************************* BoundaryIntStab **
00040 
00046   class BoundaryIntStab : public concepts::BilinearForm<Real> {
00047   public:
00048     virtual void operator()(const concepts::Element<Real>& elmX,
00049           const concepts::Element<Real>& elmY,
00050           concepts::ElementMatrix<Real>& em) {
00051       conceptsAssert(false, concepts::Assertion());
00052     }
00053     virtual void operator()(const concepts::Element<Real>& elmX,
00054           const concepts::Element<Real>& elmY,
00055           concepts::ElementMatrix<Real>& em,
00056           const concepts::ElementPair<Real>& ep);
00057     virtual BoundaryIntStab* clone() const { return new BoundaryIntStab(); }
00058   };
00059 
00060 } // namespace linDG1D
00061 
00062 #endif // linDG1DbilinearForm_hh

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