hi all
The finite element basis functions on the unit cell for a continuous or a
discontinuous element should be identical if the order of the polynomial (k) is
the same. This is, they are both in the same function space Q_k. The only
distinction comes when one combines the elements.
Would it not therefore make sense to allow the computation of the interpolation
matrix between continuous and discontinuous finite elements if they derive from
the same function space?
At present the following code would will throw an exception (as documented)
while I would imagine that the answer is well defined. (In the example below
the interpolation matrix should be the identity tensor).
Can one assume that the numbering of the support points for FE_Q and FE_DGQ
elements coincides for equal order interpolation?
FE_Q<deal_II_dimension> fe_projection(u_degree);
FE_DGQ<deal_II_dimension> fe_projection_dg(u_degree);
FullMatrix<double> dg_to_cg_interpolation;
fe_projection_dg.get_interpolation_matrix(fe_projection,
dg_to_cg_interpolation);
An error occurred in line <358> of file
</Users/andrewmcbride/lib/deal_svn/deal.II/deal.II/source/fe/fe_dgq.cc> in
function
void dealii::FE_DGQ<dim, spacedim>::get_interpolation_matrix(const
dealii::FiniteElement<dim, spacedim>&, dealii::FullMatrix<double>&) const [with
int dim = 3, int spacedim = 3]
The violated condition was:
(x_source_fe.get_name().find ("FE_DGQ<") == 0) || (dynamic_cast<const
FE_DGQ<dim, spacedim>*>(&x_source_fe) != 0)
The name and call sequence of the exception was:
typename FE::ExcInterpolationNotImplemented()
Additional Information:
(none)
Thanks
Andrew
_______________________________________________
dealii mailing list http://poisson.dealii.org/mailman/listinfo/dealii