00001 // linear form for 1D linear FEM 00002 00003 #pragma once 00004 00005 #include "basics/typedefs.hh" 00006 #include "basics/vectorsMatrices.hh" 00007 #include "toolbox/array.hh" 00008 #include "formula/formula.hh" 00009 #include "function/linearForm.hh" 00010 #include "integration/quadrature.hh" 00011 00012 namespace linearFEM { 00013 00014 using concepts::Real; 00015 00016 // *************************************************************** Riesz1d ** 00017 00023 class Riesz1d : public concepts::LinearForm<Real> { 00024 public: 00029 Riesz1d(const concepts::Formula<Real>& frm, const uint gauss_p = 1) : 00030 frm_(frm.clone()), quad_(gauss_p) {} 00031 virtual void operator()(const concepts::Element<Real>& elm, 00032 concepts::ElementMatrix<Real>& em); 00033 private: 00035 std::auto_ptr<const concepts::Formula<Real> > frm_; 00037 const concepts::Quadrature<4> quad_; 00038 }; 00039 00040 } // namespace linearFEM 00041