From 6d115e09816871620f79ceeecb7c8f3a741c62b8 Mon Sep 17 00:00:00 2001 From: guido Date: Fri, 10 Jun 2005 14:30:17 +0000 Subject: [PATCH] new constructor for arbitrary interpolation points git-svn-id: https://svn.dealii.org/trunk@10854 0785d39b-7218-0410-832d-ea1e28bc413d --- deal.II/deal.II/source/fe/fe_dgq.cc | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/deal.II/deal.II/source/fe/fe_dgq.cc b/deal.II/deal.II/source/fe/fe_dgq.cc index 1a35488344..9423cc1b2b 100644 --- a/deal.II/deal.II/source/fe/fe_dgq.cc +++ b/deal.II/deal.II/source/fe/fe_dgq.cc @@ -11,6 +11,7 @@ // //--------------------------------------------------------------------------- +#include #include #include @@ -257,6 +258,29 @@ FE_DGQ::FE_DGQ (const unsigned int degree) +template +FE_DGQ::FE_DGQ (const Quadrature<1>& points) + : + FE_Poly, dim> ( + TensorProductPolynomials(Polynomials::Lagrange::generate_complete_basis(points.get_points())), + FiniteElementData(get_dpo_vector(points.n_quadrature_points-1), 1, points.n_quadrature_points-1), + std::vector(FiniteElementData(get_dpo_vector(points.n_quadrature_points-1),1, points.n_quadrature_points-1).dofs_per_cell, true), + std::vector >(FiniteElementData( + get_dpo_vector(points.n_quadrature_points-1),1, points.n_quadrature_points-1).dofs_per_cell, std::vector(1,true))) +{ + for (unsigned int i=0; i::children_per_cell; ++i) + this->prolongation[i].reinit (this->dofs_per_cell, + this->dofs_per_cell); + FETools::compute_embedding_matrices (*this, &this->prolongation[0]); + + // Compute support points, whivh + // are the tensor product of the + // Lagrange interpolation points in + // the constructor. + Quadrature support_quadrature(points); + this->unit_support_points = support_quadrature.get_points(); +} + template std::string FE_DGQ::get_name () const -- 2.39.5