From 71619b0389d36dc93fa12700c3101e3fb401058c Mon Sep 17 00:00:00 2001 From: Ralf Hartmann Date: Fri, 15 Dec 2000 11:25:51 +0000 Subject: [PATCH] Initial implementation of the TensorProductPolynomials class. git-svn-id: https://svn.dealii.org/trunk@3541 0785d39b-7218-0410-832d-ea1e28bc413d --- .../include/base/tensor_product_polynomials.h | 76 +++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 deal.II/base/include/base/tensor_product_polynomials.h diff --git a/deal.II/base/include/base/tensor_product_polynomials.h b/deal.II/base/include/base/tensor_product_polynomials.h new file mode 100644 index 0000000000..0495cbaf15 --- /dev/null +++ b/deal.II/base/include/base/tensor_product_polynomials.h @@ -0,0 +1,76 @@ +//---------------------- tensor_product_polynomials.h ------------- +// $Id$ +// Version: $Name$ +// +// Copyright (C) 2000 by the deal.II authors +// +// This file is subject to QPL and may not be distributed +// without copyright and license information. Please refer +// to the file deal.II/doc/license.html for the text and +// further information on this license. +// +//---------------------- tensor_product_polynomials.h ------------- +#ifndef __deal2__tensor_product_polynomials_h +#define __deal2__tensor_product_polynomials_h + + +#include +#include +#include +#include + + +#include + + +/** + * Tensor product of given polynomials. + * + * @author Ralf Hartmann, 2000 + */ +template +class TensorProductPolynomials +{ + public: + /** + * Constructor. @p{pols} is a + * vector of 1d polynomial + * functions. For polynomials of + * order @p{p} there should be + * @p{p+1} polynomials. + */ + TensorProductPolynomials(const vector &pols); + + /** + * Calculates the shape values + * and shape grads at the + * @p{unit_point}. + */ + void shape_values_and_grads(const Point &unit_point, + vector > &values, + vector > &grads, + vector > &grad_grads) const; + + /** + * Exception. + */ + DeclException3 (ExcDimensionMismatch2, + int, int, int, + << "Dimension " << arg1 << " not equal to " << arg2 << " nor to " << arg3); + + + private: + /** + * TODO: Implement use of + * SmartPointer later. + * + * Pointer to the @p{polynomials} + * given to the constructor. + */ + const vector *polynomials; +} + + + + +#endif -- 2.39.5