From 5ba6555e29b3525b08705f7611ee5d54291e7906 Mon Sep 17 00:00:00 2001 From: Guido Kanschat Date: Thu, 18 Dec 2003 10:02:17 +0000 Subject: [PATCH] complete basis of monomials git-svn-id: https://svn.dealii.org/trunk@8273 0785d39b-7218-0410-832d-ea1e28bc413d --- deal.II/base/include/base/polynomial.h | 16 ++++++++++++++++ deal.II/base/source/polynomial.cc | 10 ++++++++++ 2 files changed, 26 insertions(+) diff --git a/deal.II/base/include/base/polynomial.h b/deal.II/base/include/base/polynomial.h index 12b0983f6c..5d6312aed4 100644 --- a/deal.II/base/include/base/polynomial.h +++ b/deal.II/base/include/base/polynomial.h @@ -246,6 +246,22 @@ namespace Polynomials Monomial(const unsigned int n, const double coefficient = 1.); + /** + * Return a vector of Monomial + * objects of orders zero + * through @p{degree}, which + * then spans the full space of + * polynomials up to the given + * degree. This function may be + * used to initialize the + * @ref{TensorProductPolynomials} + * and @ref{PolynomialSpace} + * classes. + */ + static + std::vector > + generate_complete_basis (const unsigned int degree); + private: /** * Needed by constructor. diff --git a/deal.II/base/source/polynomial.cc b/deal.II/base/source/polynomial.cc index c6b4854c8d..5f1461512c 100644 --- a/deal.II/base/source/polynomial.cc +++ b/deal.II/base/source/polynomial.cc @@ -324,6 +324,16 @@ namespace Polynomials {} + template + std::vector > + Monomial::generate_complete_basis (const unsigned int degree) + { + std::vector > v; + v.reserve(degree+1); + for (unsigned int i=0; i<=degree; ++i) + v.push_back (Monomial(i)); + return v; + } // ------------------ class LagrangeEquidistant --------------- // LagrangeEquidistant::LagrangeEquidistant (const unsigned int n, -- 2.39.5