Hello Jiaqi

I was interested in this some years back though I didnt pursue it after
some initial attempt.

See this


I tried writing an fespace based on FE_DGPNonparametric which does not use
a mapping and the shape functions are directly evaluated in physical space.
I attempted it here


You need to modify fevalues so that it can use solution on one cell but
evaluate it on a different cell. See the reinit functions


I dont remember clearly but this seemed to be working fine. Only problem
was that the shape functions were not orthogonal.

I used this fe_dgt space here



There may be other discussion in mailing list related to this which I have
forgotten now.

It *should be possible* to add a similar reinit function to FE_DGP with
MappingCartesian, and achieve what you want. The shape functions would be
orthogonal. So one would use it as (some syntax could be wrong here)

std::vector<Point<dim>>& points = fe_values.get_quadrature_points();
fe_values_nbr.reinit(nbr_cell, points);

The last reinit function should convert "points" to local coordinates on
nbr_cell and evaluate whatever it wants.

Or you can modify my fe_dgt to use Legendre polynomials.

On general grids, this is more difficult if you want to have orthogonal
shape functions. Only way would be to implement some gram-schmidt process.
If you dont care for orthogonality, then something like fe_dgt above works.


The deal.II project is located at http://www.dealii.org/
For mailing list/forum options, see 
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 dealii+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to