Hello Jiaqi

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

See this

https://groups.google.com/forum/m/?hl=en-GB#!topic/dealii/gaongNBSXfY

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

https://bitbucket.org/cpraveen/deal_ii/src/f1d8a33d4b5c7af02
cca8e9e3c7f357d56c4c14d/fe_dgt/?at=master

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

https://bitbucket.org/cpraveen/deal_ii/src/f1d8a33d4b5c7af02cca8e9e3c7f35
7d56c4c14d/fe_dgt/fe_values.cc?at=master&fileviewer=file-view-default

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

https://bitbucket.org/cpraveen/deal_ii/src/f1d8a33d4b5c7af02cca8e9e3c7f35
7d56c4c14d/dg/1d_scalar_taylor/?at=master

https://bitbucket.org/cpraveen/deal_ii/src/f1d8a33d4b5c7af02cca8e9e3c7f35
7d56c4c14d/dg/2d_scalar_unsteady_taylor/?at=master

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)

fe_values.reinit(cell);
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.

Best
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 dealii+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to