Start with a brute force approach:
FE_Q<dim> fe(degree);
QGaussLobatto<dim> quad(degree+1);
const std::vector<Point<dim> > &q = fe.get_unit_support_points()
std::vector<double> w(q.size());
tol = 1e-10;
// check everything is fine
AssertDimension(w.size(), quad.size());
for(unsigned int i=0; i<q.size(); ++i) {
w[i] = -1.0;
for(unsigned int j=0; j<q.size(); ++j) {
if( q[i].distance(quad.point(j)) < tol ) {
w[i] = q.weigth(j);
break;
}
Assert(w[i] == -1.0, ExcInternalError(“Did not find the point!”));
}
Quadrature<dim> new_quad(q,w);
Now you are sure that the quadrature new_quad is doing what you asked for.
L.
> On 23 Nov 2016, at 11:04, Praveen C <[email protected]> wrote:
>
> Thanks Luca.
>
> I needed this property to efficiently implement a spectral element method,
> where support points are used for quadrature also.
>
> Now I have to figure out some other way to do this efficiently. I want to
> avoid use of get_function_values.
>
> Best
> praveen
>
> On Wed, Nov 23, 2016 at 3:27 PM, luca.heltai <[email protected]> wrote:
> Not necessarily. In fact the ordering is reshuffled so that vertex support
> points comes first, then edge support points (3D), face support points, and
> lastly cell support points.
>
> To see the actual ordering, take a look at
>
> fe.get_unit_support_points()
>
> https://www.dealii.org/8.4.1/doxygen/deal.II/classFiniteElement.html#aa0169a82a73318973ad38e5785acdb27
>
> If you want to use this as a quadrature, you have to make sure that the
> weights are in the right order.
>
> L.
>
>
> > On 23 Nov 2016, at 10:26, Praveen C <[email protected]> wrote:
> >
> > Dear all
> >
> > Suppose I have
> >
> > FE_Q<dim> fe(degree);
> > QGaussLobatto<dim> quad(degree+1);
> >
> > Within a cell, I get
> >
> > FEValues<dim> fe_values(quad, update_quadrature_points);
> >
> > fe_values.reinit(cell);
> > cell->get_dof_indices(local_dof_indices);
> >
> > Then can I assume that, in the current cell,
> >
> > solution(local_dof_indices[q]) is the solution at
> > fe_values.quadrature_point(q) ?
> >
> > This is the case with DG spaces and I use this all the time. But I am not
> > sure about FE_Q.
> >
> > Thanks
> > praveen
> >
> > --
> > The deal.II project is located at http://www.dealii.org/
> > For mailing list/forum options, see
> > https://groups.google.com/d/forum/dealii?hl=en
> > ---
> > You received this message because you are subscribed to the Google Groups
> > "deal.II User Group" group.
> > To unsubscribe from this group and stop receiving emails from it, send an
> > email to [email protected].
> > For more options, visit https://groups.google.com/d/optout.
>
> --
> The deal.II project is located at http://www.dealii.org/
> For mailing list/forum options, see
> https://groups.google.com/d/forum/dealii?hl=en
> ---
> You received this message because you are subscribed to the Google Groups
> "deal.II User Group" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> For more options, visit https://groups.google.com/d/optout.
>
>
> --
> The deal.II project is located at http://www.dealii.org/
> For mailing list/forum options, see
> https://groups.google.com/d/forum/dealii?hl=en
> ---
> You received this message because you are subscribed to the Google Groups
> "deal.II User Group" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> For more options, visit https://groups.google.com/d/optout.
--
The deal.II project is located at http://www.dealii.org/
For mailing list/forum options, see
https://groups.google.com/d/forum/dealii?hl=en
---
You received this message because you are subscribed to the Google Groups
"deal.II User Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.