include/deal.II/base/polynomials_raviart_thomas.h

00001 //---------------------------------------------------------------------------
00002 //    @f$Id: polynomials_raviart_thomas.h 25345 2012-03-31 08:37:04Z bangerth @f$
00003 //
00004 //    Copyright (C) 2004, 2005, 2006, 2007, 2008, 2010, 2012 by the deal.II authors
00005 //
00006 //    This file is subject to QPL and may not be  distributed
00007 //    without copyright and license information. Please refer
00008 //    to the file deal.II/doc/license.html for the  text  and
00009 //    further information on this license.
00010 //
00011 //---------------------------------------------------------------------------
00012 #ifndef __deal2__polynomials_raviart_thomas_h
00013 #define __deal2__polynomials_raviart_thomas_h
00014 
00015 
00016 #include <deal.II/base/config.h>
00017 #include <deal.II/base/exceptions.h>
00018 #include <deal.II/base/tensor.h>
00019 #include <deal.II/base/point.h>
00020 #include <deal.II/base/polynomial.h>
00021 #include <deal.II/base/polynomial_space.h>
00022 #include <deal.II/base/tensor_product_polynomials.h>
00023 #include <deal.II/base/table.h>
00024 
00025 #include <vector>
00026 
00027 DEAL_II_NAMESPACE_OPEN
00028 
00046 template <int dim>
00047 class PolynomialsRaviartThomas
00048 {
00049   public:
00061     PolynomialsRaviartThomas (const unsigned int k);
00062 
00087     void compute (const Point<dim>            &unit_point,
00088                   std::vector<Tensor<1,dim> > &values,
00089                   std::vector<Tensor<2,dim> > &grads,
00090                   std::vector<Tensor<3,dim> > &grad_grads) const;
00091 
00095     unsigned int n () const;
00096 
00102     unsigned int degree () const;
00103 
00108     std::string name () const;
00109 
00119     static unsigned int compute_n_pols(unsigned int degree);
00120 
00121   private:
00126     const unsigned int my_degree;
00127 
00135     const AnisotropicPolynomials<dim> polynomial_space;
00136 
00141     const unsigned int n_pols;
00142 
00150     static
00151     std::vector<std::vector< Polynomials::Polynomial< double > > >
00152     create_polynomials (const unsigned int k);
00153 };
00154 
00155 
00156 
00157 template <int dim>
00158 inline unsigned int
00159 PolynomialsRaviartThomas<dim>::n() const
00160 {
00161   return n_pols;
00162 }
00163 
00164 
00165 
00166 template <int dim>
00167 inline unsigned int
00168 PolynomialsRaviartThomas<dim>::degree() const
00169 {
00170   return my_degree;
00171 }
00172 
00173 
00174 
00175 template <int dim>
00176 inline std::string
00177 PolynomialsRaviartThomas<dim>::name() const
00178 {
00179   return "RaviartThomas";
00180 }
00181 
00182 
00183 DEAL_II_NAMESPACE_CLOSE
00184 
00185 #endif
00186 
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

deal.II documentation generated on Wed May 23 2012 06:07:31 by doxygen 1.7.3