From: guido Date: Thu, 18 Dec 2003 10:02:17 +0000 (+0000) Subject: complete basis of monomials X-Git-Url: https://gitweb.dealii.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ab50fd1eedb12dbfac591896d51aaa693afad6eb;p=dealii-svn.git complete basis of monomials git-svn-id: https://svn.dealii.org/trunk@8273 0785d39b-7218-0410-832d-ea1e28bc413d --- 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,