Greg:

I decided to modify the code to adopt a p::shared::T model with METIS and
realized anisotropic refinement doesn’t seem to work for this case either. The
error comes from AffineConstraints’ unacceptance of any refinement cases that
are not isotropic. The same error can be reproduced for my serial code as well.
If I change the RefinementCase, when it’s, say, cut_yz, to cut_xyz, hence going
back to isotropic refinement, both codes run without a problem.

That's interesting. What's the element you are using?

Anisotropic refinement is "supposed" to work, but it is a poorly tested part of the library and I am not greatly surprised (though I find it disappointing) that there are cases that don't work as expected.


And here is the runtime error message:

    An error occurred in line <1102> of file
    
<path/to/deal.II/9.4.1-petsc-hypre/source/source/dofs/dof_tools_constraints.cc> 
in function
    void dealii::DoFTools::internal::make_hp_hanging_node_constraints(const
    dealii::DoFHandler&, dealii::AffineConstraints&) [with int dim = 3; int
    spacedim = 3; number = double]
    The violated condition was:
    cell->face(face)->refinement_case() == RefinementCase::isotropic_refinement
    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).

I’m wondering if it would be ill-advised to simply remove the assertion and
re-compile the library.

Yes :-) Someone placed the assertion there to make sure things that are not implemented are not actually executed. The way forward is to understand what is necessary to actually implement the missing functionality. This would probably start with a minimal example that illustrates the error and nothing else.

The case you seem to end up in is concerned with different elements (the hp case) *and* hanging nodes. It is conceivable that the case where you have anisotropic refinement and the same element on both sides is relatively easy to implement, and so maybe that's the special case to consider first.

Best
 W.

--
------------------------------------------------------------------------
Wolfgang Bangerth          email:                 bange...@colostate.edu
                           www: http://www.math.colostate.edu/~bangerth/


--
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.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/dealii/0504d891-c78f-f314-256f-ac774f373fac%40colostate.edu.

Reply via email to