On 2/18/19 10:47 PM, Phạm Ngọc Kiên wrote:
>
> 2. I have tried some thing with the third method. And here-below is my code:
>
> Point<dim> p{0.5,0.5,0.5};//position in reference cell
> Quadrature<dim> q(p);
> FEValues<dim> fe_values_q(fe, q,update_quadrature_points);
> fe_values_q.reinit(cell);
>
> //position in the real cell
> std::vector<Point<dim>> dof_pos = fe_values_q.get_quadrature_points();
> for (int k =0; k <dof_pos.size() ; ++k) {
> for (int j =0; j <dim ; ++j) {
> std::cout<<dof_pos[k][j];
> std::cout<<"\n";
> }
> }
>
> From this codes, I can get the real position of arbitrary points in my
> current reference cell.
>
> However, my purpose is to get the real position of a given degree of freedom.
>
> Could you please tell me how to get the position of a degree of freedom in
> the reference cell?
The problem is that the NedelecSZ element does not have any such position. You
are thinking of Lagrange elements (or the regular Nedelec elements) for which
every shape function has a specific location where it is defined: It is one
there, and zero at all other such locations. This is what we call "support
points" in deal.II.
But the NedelecSZ element is not defined this way (at least that's what I
believe to be the case). Rather, shape functions are defined in such a way
that certain *integrals* (rather than *point values*) are zero or one for all
shape functions. As a consequence, there are no support points: Shape
functions (and degrees of freedom) are not defined at individual points, but
at whole edges.
This means that your approach can not work. I don't know what you want to do,
but let's start with that: What is your *goal*? Maybe then we can think about
how to achieve it!
Best
W.
--
------------------------------------------------------------------------
Wolfgang Bangerth email: [email protected]
www: http://www.math.colostate.edu/~bangerth/
--
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.