Go to the documentation of this file.00001
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
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
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 }
00061
00062 #endif // linDG1DbilinearForm_hh