Hello all

I am attempting to implement a hp hybridized dg-method for solving 
ellipctic problems in deal.II. I am relying on steps 27 and 51 of the 
deal.II tutorial programs. However, when I try to group some FE_FaceQ 
elements in an hp::FeCollection and distribute the degrees of freedom, I 
get an ExcNotImplemented() exception thrown by some method 
hp_vertex_dof_identities. Am I getting something wrong? Or is this feature 
just not implemented for
FaceQ yet?
I have attached the error message and a minimal example that reproduces the 
error.

Thanks,
Samuel

-- 
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.
--------------------------------------------------------
An error occurred in line <904> of file 
</home/samuel/Downloads/dealii-8.4.1/source/fe/fe.cc> in function
    std::vector<std::pair<unsigned int, unsigned int> > 
dealii::FiniteElement<<anonymous>, <anonymous> 
>::hp_vertex_dof_identities(const dealii::FiniteElement<<anonymous>, 
<anonymous> >&) const [with int dim = 2; int spacedim = 2]
The violated condition was: 
    false
The name and call sequence of the exception was:
    ExcNotImplemented()
Additional Information: 
You are trying to use functionality in deal.II that is currently not 
implemented. In many cases, this indicates that there simply didn't appear much 
of a need for it, or that the author of the original code did not have the time 
to implement a particular case. If you hit this exception, it is therefore 
worth the time to look into the code to find out whether you may be able to 
implement the missing functionality. If you do, please consider providing a 
patch to the deal.II development sources (see the deal.II website on how to 
contribute).

Stacktrace:
-----------
#0  /opt/dealii/lib/libdeal_II.g.so.8.4.1: dealii::FiniteElement<2, 
2>::hp_vertex_dof_identities(dealii::FiniteElement<2, 2> const&) const
#1  /opt/dealii/lib/libdeal_II.g.so.8.4.1: void 
dealii::internal::hp::ensure_existence_of_dof_identities<0, 2, 
2>(dealii::FiniteElement<2, 2> const&, dealii::FiniteElement<2, 2> const&, 
std::shared_ptr<std::vector<std::pair<unsigned int, unsigned int>, 
std::allocator<std::pair<unsigned int, unsigned int> > > >&)
#2  /opt/dealii/lib/libdeal_II.g.so.8.4.1: dealii::hp::DoFHandler<2, 
2>::compute_vertex_dof_identities(std::vector<unsigned int, 
std::allocator<unsigned int> >&) const
#3  /opt/dealii/lib/libdeal_II.g.so.8.4.1: dealii::hp::DoFHandler<2, 
2>::distribute_dofs(dealii::hp::FECollection<2, 2> const&)
#4  ./faceq_error: main
--------------------------------------------------------

#include <deal.II/grid/tria.h>
#include <deal.II/hp/dof_handler.h>
#include <deal.II/grid/grid_generator.h>
#include <deal.II/fe/fe_face.h>
#include <deal.II/dofs/dof_accessor.h>

using namespace dealii;

int main()
 {
   Triangulation<2> triangulation;
   GridGenerator::hyper_cube(triangulation);
   triangulation.refine_global(1);
   Triangulation<2>::active_cell_iterator cell = triangulation.begin_active();
   cell->set_refine_flag();
   triangulation.execute_coarsening_and_refinement ();
   hp::DoFHandler<2>      dof_handler(triangulation);
   hp::DoFHandler<2>::active_cell_iterator cell2 = dof_handler.begin_active(), endc = dof_handler.end();
   for (;cell2!=endc;++cell2)
   {
     if (cell2->level()==2)
     {
       cell2->set_active_fe_index(1);
     }
   }
   hp::FECollection<2>    fe_collection;
   fe_collection.push_back(FE_FaceQ<2>(1));
   fe_collection.push_back(FE_FaceQ<2>(2));
   dof_handler.distribute_dofs(fe_collection);
 }

Reply via email to