From: Wolfgang Bangerth Date: Tue, 28 Apr 1998 16:10:26 +0000 (+0000) Subject: Fix small bug, add enhancement to the Quadrature class and add trace code to find... X-Git-Tag: v8.0.0~23034 X-Git-Url: https://gitweb.dealii.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5dabd4b1a590b83e02a7a876bfb1cbc958e48185;p=dealii.git Fix small bug, add enhancement to the Quadrature class and add trace code to find problem :-(( git-svn-id: https://svn.dealii.org/trunk@220 0785d39b-7218-0410-832d-ea1e28bc413d --- diff --git a/deal.II/base/include/base/quadrature.h b/deal.II/base/include/base/quadrature.h index 025f613661..ea13d538ef 100644 --- a/deal.II/base/include/base/quadrature.h +++ b/deal.II/base/include/base/quadrature.h @@ -51,6 +51,12 @@ class Quadrature { */ const Point & quad_point (const unsigned int i) const; + /** + * Return a reference to the whole array of + * quadrature points. + */ + const vector > & get_quad_points () const; + /** * Return the weight of the #i#th * quadrature point. diff --git a/deal.II/base/source/quadrature.cc b/deal.II/base/source/quadrature.cc index 6c3840e3d5..3fae03bd06 100644 --- a/deal.II/base/source/quadrature.cc +++ b/deal.II/base/source/quadrature.cc @@ -24,6 +24,13 @@ const Point & Quadrature::quad_point (const unsigned int i) const { +template +const vector > & Quadrature::get_quad_points () const { + return quadrature_points; +}; + + + template double Quadrature::weight (const unsigned int i) const { Assert (i::FEValues (const FiniteElement &fe, weights(quadrature.n_quadrature_points, 0), JxW_values(quadrature.n_quadrature_points, 0), quadrature_points(quadrature.n_quadrature_points, Point()), - unit_quadrature_points(quadrature.n_quadrature_points, Point()), + unit_quadrature_points(quadrature.get_quad_points()), ansatz_points (fe.total_dofs, Point()), jacobi_matrices (quadrature.n_quadrature_points, dFMatrix(dim,dim)), @@ -43,7 +43,6 @@ FEValues::FEValues (const FiniteElement &fe, for (unsigned int i=0; i::FEFaceValues (const FiniteElement &fe, weights(quadrature.n_quadrature_points, 0), JxW_values(quadrature.n_quadrature_points, 0), quadrature_points(quadrature.n_quadrature_points, Point()), - unit_quadrature_points(quadrature.n_quadrature_points, Point()), + unit_quadrature_points(quadrature.get_quad_points()), ansatz_points (fe.dofs_per_face, Point()), jacobi_matrices (quadrature.n_quadrature_points,dFMatrix(dim,dim)), face_jacobi_determinants (quadrature.n_quadrature_points,0), @@ -210,6 +209,13 @@ FEFaceValues::FEFaceValues (const FiniteElement &fe, case 0: global_unit_quadrature_points[face][p] = Point(unit_quadrature_points[p](0),0); + cout << " face=" << face << ", p=" << p + << ", uqp[p]=" << unit_quadrature_points[p] + << ", guqp[face][p]=" + << global_unit_quadrature_points[face][p] + << ", ??=" + << Point(unit_quadrature_points[p](0),0) + << endl; break; case 1: global_unit_quadrature_points[face][p] @@ -318,12 +324,15 @@ double FEFaceValues::JxW (const unsigned int i) const { }; +#include template void FEFaceValues::reinit (const typename DoFHandler::cell_iterator &cell, const unsigned int face_no, const FiniteElement &fe, const Boundary &boundary) { + cout << "ATTENTION: update_flags all set to " << (update_flags=255) << endl; + selected_face = face_no; // fill jacobi matrices and real // quadrature points @@ -381,6 +390,41 @@ void FEFaceValues::reinit (const typename DoFHandler::cell_iterator &c for (unsigned int i=0; ivertex(i) << endl; + cout << "face no= " << face_no << endl; + + /* + cout << "----------------------------------------" << endl; + cout << "Unit face quadrature points:\n"; + for (unsigned i=0; i