include/deal.II/base/polynomials_nedelec.h

00001 //---------------------------------------------------------------------------
00002 //    @f$Id: polynomials_nedelec.h 25345 2012-03-31 08:37:04Z bangerth @f$
00003 //
00004 //    Copyright (C) 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 
00013 #ifndef __deal2__polynomials_nedelec_h
00014 #define __deal2__polynomials_nedelec_h
00015 
00016 
00017 #include <deal.II/base/config.h>
00018 #include <deal.II/base/exceptions.h>
00019 #include <deal.II/base/tensor.h>
00020 #include <deal.II/base/point.h>
00021 #include <deal.II/base/polynomial.h>
00022 #include <deal.II/base/polynomial_space.h>
00023 #include <deal.II/base/tensor_product_polynomials.h>
00024 #include <deal.II/base/table.h>
00025 
00026 #include <vector>
00027 
00028 DEAL_II_NAMESPACE_OPEN
00029 
00047 template <int dim>
00048 class PolynomialsNedelec
00049 {
00050   public:
00062     PolynomialsNedelec (const unsigned int k);
00063 
00088     void compute (const Point<dim> &unit_point, std::vector<Tensor<1, dim> > &values, std::vector<Tensor<2, dim> > &grads, std::vector<Tensor<3, dim> > &grad_grads) const;
00089 
00094     unsigned int n () const;
00095 
00101     unsigned int degree () const;
00102 
00107     std::string name () const;
00108 
00118     static unsigned int compute_n_pols (unsigned int degree);
00119 
00120   private:
00125     const unsigned int my_degree;
00126 
00134     const AnisotropicPolynomials<dim> polynomial_space;
00135 
00139     const unsigned int n_pols;
00140 
00148     static std::vector<std::vector< Polynomials::Polynomial< double > > > create_polynomials (const unsigned int k);
00149 };
00150 
00151 
00152 template <int dim>
00153 inline unsigned int PolynomialsNedelec<dim>::n () const
00154 {
00155   return n_pols;
00156 }
00157 
00158 
00159 template <int dim>
00160 inline unsigned int PolynomialsNedelec<dim>::degree () const
00161 {
00162   return my_degree;
00163 }
00164 
00165 
00166 template <int dim>
00167 inline std::string
00168 PolynomialsNedelec<dim>::name() const
00169 {
00170   return "Nedelec";
00171 }
00172 
00173 
00174 DEAL_II_NAMESPACE_CLOSE
00175 
00176 #endif
00177 
 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