Reference documentation for deal.II version 8.1.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Modules Pages
polynomials_nedelec.h
1 // ---------------------------------------------------------------------
2 // @f$Id: polynomials_nedelec.h 31791 2013-11-25 10:36:38Z felix.gruber @f$
3 //
4 // Copyright (C) 2010 - 2013 by the deal.II authors
5 //
6 // This file is part of the deal.II library.
7 //
8 // The deal.II library is free software; you can use it, redistribute
9 // it, and/or modify it under the terms of the GNU Lesser General
10 // Public License as published by the Free Software Foundation; either
11 // version 2.1 of the License, or (at your option) any later version.
12 // The full text of the license can be found in the file LICENSE at
13 // the top level of the deal.II distribution.
14 //
15 // ---------------------------------------------------------------------
16 
17 
18 #ifndef __deal2__polynomials_nedelec_h
19 #define __deal2__polynomials_nedelec_h
20 
21 
22 #include <deal.II/base/config.h>
24 #include <deal.II/base/tensor.h>
25 #include <deal.II/base/point.h>
26 #include <deal.II/base/polynomial.h>
27 #include <deal.II/base/polynomial_space.h>
28 #include <deal.II/base/tensor_product_polynomials.h>
29 #include <deal.II/base/table.h>
30 
31 #include <vector>
32 
34 
52 template <int dim>
54 {
55 public:
67  PolynomialsNedelec (const unsigned int k);
68 
93  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;
94 
99  unsigned int n () const;
100 
106  unsigned int degree () const;
107 
112  std::string name () const;
113 
123  static unsigned int compute_n_pols (unsigned int degree);
124 
125 private:
130  const unsigned int my_degree;
131 
140 
144  const unsigned int n_pols;
145 
153  static std::vector<std::vector< Polynomials::Polynomial< double > > > create_polynomials (const unsigned int k);
154 };
155 
156 
157 template <int dim>
158 inline unsigned int PolynomialsNedelec<dim>::n () const
159 {
160  return n_pols;
161 }
162 
163 
164 template <int dim>
165 inline unsigned int PolynomialsNedelec<dim>::degree () const
166 {
167  return my_degree;
168 }
169 
170 
171 template <int dim>
172 inline std::string
174 {
175  return "Nedelec";
176 }
177 
178 
179 DEAL_II_NAMESPACE_CLOSE
180 
181 #endif
static std::vector< std::vector< Polynomials::Polynomial< double > > > create_polynomials(const unsigned int k)
const unsigned int n_pols
unsigned int n() const
const AnisotropicPolynomials< dim > polynomial_space
const unsigned int my_degree
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
PolynomialsNedelec(const unsigned int k)
unsigned int degree() const
static unsigned int compute_n_pols(unsigned int degree)
std::string name() const