]> https://gitweb.dealii.org/ - dealii-svn.git/commitdiff
Move a utility function out of a class that had only a single (static) member and...
authorbangerth <bangerth@0785d39b-7218-0410-832d-ea1e28bc413d>
Sun, 24 Oct 2010 15:30:42 +0000 (15:30 +0000)
committerbangerth <bangerth@0785d39b-7218-0410-832d-ea1e28bc413d>
Sun, 24 Oct 2010 15:30:42 +0000 (15:30 +0000)
git-svn-id: https://svn.dealii.org/trunk@22450 0785d39b-7218-0410-832d-ea1e28bc413d

deal.II/base/include/base/polynomial.h
deal.II/base/source/polynomial.cc
deal.II/deal.II/source/fe/fe_dgq.cc
deal.II/deal.II/source/fe/fe_q.cc

index 274c311cb8b926bb1c19572f24577551dddf81db..4b98d27b66b4d4b7d8e5a535ebb2aea03e9f9932 100644 (file)
@@ -80,7 +80,7 @@ namespace Polynomials
                                         * an illegal object.
                                         */
       Polynomial ();
-     
+
                                        /**
                                         * Return the value of this
                                         * polynomial at the given point.
@@ -90,7 +90,7 @@ namespace Polynomials
                                         * of the evaluation.
                                         */
       number value (const number x) const;
-   
+
                                        /**
                                         * Return the values and the
                                         * derivatives of the
@@ -194,12 +194,12 @@ namespace Polynomials
                                         * Add a second polynomial.
                                         */
       Polynomial<number>& operator += (const Polynomial<number>& p);
-     
+
                                        /**
                                         * Subtract a second polynomial.
                                         */
       Polynomial<number>& operator -= (const Polynomial<number>& p);
-     
+
                                        /**
                                         * Print coefficients.
                                         */
@@ -227,7 +227,7 @@ namespace Polynomials
                                         */
       static void multiply (std::vector<number>& coefficients,
                             const number factor);
-   
+
                                        /**
                                         * Coefficients of the polynomial
                                         * $\sum_i a_i x^i$. This vector
@@ -251,8 +251,7 @@ namespace Polynomials
  * @author Guido Kanschat, 2004
  */
   template <typename number>
-  class Monomial :
-       public Polynomial<number>
+  class Monomial : public Polynomial<number>
   {
     public:
                                        /**
@@ -279,7 +278,7 @@ namespace Polynomials
       static
       std::vector<Polynomial<number> >
       generate_complete_basis (const unsigned int degree);
-   
+
     private:
                                        /**
                                         * Needed by constructor.
@@ -287,7 +286,7 @@ namespace Polynomials
       static std::vector<number> make_vector(unsigned int n,
                                              const double coefficient);
   };
+
 
 /**
  * Lagrange polynomials with equidistant interpolation points in
@@ -341,7 +340,7 @@ namespace Polynomials
       static
       std::vector<Polynomial<double> >
       generate_complete_basis (const unsigned int degree);
-   
+
     private:
 
                                        /**
@@ -359,31 +358,22 @@ namespace Polynomials
                             std::vector<double>& a);
   };
 
-/**
- * Lagrange polynomials for an arbistrary set of interpolation points.
- *
- * @author Guido Kanschat, 2005
- */
-  class Lagrange
-  {
-    public:
-                                       /**
-                                        * Given a set of points, this
-                                        * function returns all
-                                        * Lagrange polynomials for
-                                        * interpolation of these
-                                        * points. The number of
-                                        * polynomials is equal to the
-                                        * number of points and the
-                                        * maximum degree is one less.
-                                        */
-      static
-      std::vector<Polynomial<double> >
-      generate_complete_basis (const std::vector<Point<1> >& points);
-  };
+
+                                  /**
+                                   * Given a set of points along the
+                                   * real axis, this function returns
+                                   * all Lagrange polynomials for
+                                   * interpolation of these
+                                   * points. The number of
+                                   * polynomials is equal to the
+                                   * number of points and the maximum
+                                   * degree is one less.
+                                   */
+  std::vector<Polynomial<double> >
+  generate_complete_Lagrange_basis (const std::vector<Point<1> >& points);
+
+
+
 /**
  * Legendre polynomials of arbitrary degree on <tt>[0,1]</tt>.
  *
@@ -420,7 +410,7 @@ namespace Polynomials
       static
       std::vector<Polynomial<double> >
       generate_complete_basis (const unsigned int degree);
-   
+
     private:
                                        /**
                                         * Coefficients for the interval $[0,1]$.
@@ -441,12 +431,12 @@ namespace Polynomials
                                         * the global destructor is called.
                                         */
       static std::vector<std_cxx1x::shared_ptr<const std::vector<double> > > recursive_coefficients;
-   
+
                                        /**
                                         * Compute coefficients recursively.
                                         */
       static void compute_coefficients (const unsigned int p);
-   
+
                                        /**
                                         * Get coefficients for
                                         * constructor.  This way, it can
@@ -507,7 +497,7 @@ namespace Polynomials
       std::vector<double> compute_coefficients (const unsigned int p);
   };
 
+
 /**
  * Hierarchical polynomials of arbitrary degree on <tt>[0,1]</tt>.
  *
@@ -581,7 +571,7 @@ namespace Polynomials
       static
       std::vector<Polynomial<double> >
       generate_complete_basis (const unsigned int degree);
-   
+
     private:
                                      /**
                                       * Compute coefficients recursively.
@@ -597,9 +587,9 @@ namespace Polynomials
                                       */
      static const std::vector<double> &
      get_coefficients (const unsigned int p);
+
      static std::vector<const std::vector<double> *> recursive_coefficients;
-   };  
+   };
 }
 
 /** @} */
@@ -612,7 +602,7 @@ namespace Polynomials
   inline
   Polynomial<number>::Polynomial ()
   {}
+
   template <typename number>
   inline
   unsigned int
index fe391468584ed76902a3ce259b2e86c7aed905ab..4dd58d8c0ea7da6229c457c4e5c97ab1f7d7c3f6 100644 (file)
@@ -646,7 +646,7 @@ namespace Polynomials
 
 
   std::vector<Polynomial<double> >
-  Lagrange::generate_complete_basis (const std::vector<Point<1> >& points)
+  generate_complete_Lagrange_basis (const std::vector<Point<1> >& points)
   {
     std::vector<Polynomial<double> > p(points.size());
                                      // polynomials are built as
index 8f1176535f8d5ff5a20421c3e7b01cf126ef5ad7..6afd3a0832ace2dabf2b6a56efe4b4002865cdd0 100644 (file)
@@ -196,7 +196,7 @@ template <int dim, int spacedim>
 FE_DGQ<dim, spacedim>::FE_DGQ (const Quadrature<1>& points)
                :
                FE_Poly<TensorProductPolynomials<dim>, dim, spacedim> (
-                 TensorProductPolynomials<dim>(Polynomials::Lagrange::generate_complete_basis(points.get_points())),
+                 TensorProductPolynomials<dim>(Polynomials::generate_complete_Lagrange_basis(points.get_points())),
                  FiniteElementData<dim>(get_dpo_vector(points.size()-1), 1, points.size()-1, FiniteElementData<dim>::L2),
                  std::vector<bool>(FiniteElementData<dim>(get_dpo_vector(points.size()-1),1, points.size()-1).dofs_per_cell, true),
                  std::vector<std::vector<bool> >(FiniteElementData<dim>(
index 049a262235716aa37de3b52573f100a0265968ef..e924afe60c21755d1ab2c4715c84a8f784c08814 100644 (file)
@@ -300,7 +300,7 @@ struct FE_Q<xdim,xspacedim>::Implementation
                                         // destination (child) and source (mother)
                                         // dofs.
        const std::vector<Polynomials::Polynomial<double> > polynomials=
-         Polynomials::Lagrange::generate_complete_basis(points.get_points());
+         Polynomials::generate_complete_Lagrange_basis(points.get_points());
 
        fe.interface_constraints
          .TableBase<2,double>::reinit (fe.interface_constraints_size());
@@ -429,7 +429,7 @@ struct FE_Q<xdim,xspacedim>::Implementation
                                         // dofs.
        const unsigned int pnts=(fe.degree+1)*(fe.degree+1);
        const std::vector<Polynomials::Polynomial<double> > polynomial_basis=
-         Polynomials::Lagrange::generate_complete_basis(points.get_points());
+         Polynomials::generate_complete_Lagrange_basis(points.get_points());
 
        const TensorProductPolynomials<dim-1> face_polynomials(polynomial_basis);
 
@@ -587,7 +587,7 @@ template <int dim, int spacedim>
 FE_Q<dim,spacedim>::FE_Q (const Quadrature<1> &points)
                :
                FE_Poly<TensorProductPolynomials<dim>, dim, spacedim> (
-                 TensorProductPolynomials<dim>(Polynomials::Lagrange::generate_complete_basis(points.get_points())),
+                 TensorProductPolynomials<dim>(Polynomials::generate_complete_Lagrange_basis(points.get_points())),
                  FiniteElementData<dim>(get_dpo_vector(points.n_quadrature_points-1),
                                         1, points.n_quadrature_points-1,
                                         FiniteElementData<dim>::H1),

In the beginning the Universe was created. This has made a lot of people very angry and has been widely regarded as a bad move.

Douglas Adams


Typeset in Trocchi and Trocchi Bold Sans Serif.