As a complement (I realized I should have put this in the first email),
here is (one of) the exception that is thrown with the attached MWE from
my first mail:
/An error occurred in line <738> of file
</home/gpoy/.local/share/deal-ii-candi/tmp/unpack/deal.II-v9.6.1/include/deal.II/base/partitioner.templates.h>
in function
void
dealii::Utilities::MPI::Partitioner::import_from_ghosted_array_finish(dealii::VectorOperation::values,
const dealii::ArrayView<const ElementType, MemorySpaceType>&, const
dealii::ArrayView<ElementType, MemorySpace>&, const
dealii::ArrayView<ElementType, MemorySpace>&,
std::vector<ompi_request_t*>&) const [with Number = double;
MemorySpaceType = dealii::MemorySpace::Host]
The violated condition was:
*read_position == Number() ||
internal::get_abs(locally_owned_array[j] - *read_position) <=
internal::get_abs(locally_owned_array[j] + *read_position) * 100000. *
std::numeric_limits<typename numbers::NumberTraits<
Number>::real_type>::epsilon()
Additional information:
Called compress(VectorOperation::insert), but the element received
from a remote processor, value 0.7071067811865476, does not match with
the value 0 on the owner processor 0
/
I also realized I was wrong below for the actual vector that fails to
compress when there are ghost hanging nodes: I think it corresponds to
the output vector "u2" in ExtrapolateImplementation<dim, spacedim,
OutVector>::extrapolate_parallel.
Best
Guilhem
On 10/04/2025 10:13, Guilhem Poy wrote:
Dear deal-ii users and developers,
I am trying to use the FETools::extrapolate method on a distributed
triangulation that is adaptively refined. However, I get an exception
inside this function every time my triangulation contains hanging
nodes at ghost interfaces. I have attached a minimal working example
that illustrates this on deal.II version 9.6.1. It should be compiled
in debug mode as for usual dealii example codes, and then run with
"mpirun -np 2 main" with two mpi ranks to generate the exception. The
macro NO_GHOST_HANGING_NODES can be commented out to check that
FETools::extrapolate works correctly when there are no hanging nodes
at ghost interfaces.
Before opening a bug, I would like to check with you that I am not
doing something wrong in this test program. I was careful to set up my
distributed vectors as large as possible (i.e. with all relevant dofs)
to see if the problem was coming from there, and of course I updated
the ghost values of the "coarse" vector before calling
FETools::extrapolate. If I am not mistaken, the exception is thrown
when an internal vector with all relevant dofs is compressed line 1455
of fe_tools_extrapolate.templates.h, but of course this internal
vector depends on the input vector I give to extrapolate so the
problem could very much come from my code. I am ready to provide any
further information that may be useful! Thanks in advance.
Best regards,
Guilhem
--
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 visit
https://groups.google.com/d/msgid/dealii/4af352c6-a75f-4384-8982-8ca8c4447885%40gmail.com.