kronbichler / ceed_benchmarks_dealii

ceed benchmark evaluation with deal.II library
4 stars 6 forks source link

Renumbering algorithm throws exception #9

Open kronbichler opened 4 years ago

kronbichler commented 4 years ago

If I enable the renumbering e.g. in bp3/bench.cc https://github.com/kronbichler/ceed_benchmarks_dealii/blob/33e5ca1ff9f09ba802d8eacaa44d9a0da079c750/bp3/bench.cc#L83-L86 and run, I get the following error:

$ ./bench 4 5
terminate called after throwing an instance of 'dealii::StandardExceptions::ExcMessage'
  what():  
--------------------------------------------------------
An error occurred in line <132> of file </home/kronbichler/Work/deal_tests/ceed_benchmarks/bp3/../common_code/renumber_dofs_for_mf.h> in function
    void Renumber<dim, Number, VectorizedArrayType>::renumber(dealii::DoFHandler<dim>&, const dealii::AffineConstraints<double>&, const typename dealii::MatrixFree<dim, Number, VectorizedArrayType>::AdditionalData&) const [with int dim = 3; Number = double; VectorizedArrayType = dealii::VectorizedArray<double, 4>; typename dealii::MatrixFree<dim, Number, VectorizedArrayType>::AdditionalData = dealii::MatrixFree<3, double, dealii::VectorizedArray<double, 4> >::AdditionalData]
The violated condition was: 
    new_numbers.size() == dof_handler.locally_owned_dofs().n_elements()
Additional information: 
    Dimension mismatch 1575 vs 2601
--------------------------------------------------------

It seems that the Renumber::grouping function misses to add some of the unknowns for this setting.

peterrum commented 4 years ago

I have seen that, too. For BP1, it is working for some reason.

kronbichler commented 4 years ago

Then it's probably the Dirichlet boundary conditions (dofs never touched).

peterrum commented 4 years ago

That makes sense. I think we discussed a long time ago that you wanted to integrate some compressions in deal.II and I do the renumbering. Should we do it now?

kronbichler commented 4 years ago

Yes, we should have a strategy in deal.II, all along with the index compression for degree > 2 and for systems (in case of no complicated constraints).