Dear all,
I am developing a time dependent code which utilizes dealii adaptive meshing capabilities.
I am having a problem with the solution transfer during the program.
At a particular time step, the following error occurs:
--------------------------------------------------------
An error occurred in line <624> of file </home/slinux/dealii-9.3.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*, std::allocator<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 1.387778780781446e-17, does not match
with the value 0 on the owner processor 12
The problem occurs only in debug mode when running in parallel. I have tried to search the library documentation to find a solution, however, this was not possible.
I have attached the code snippet for solution transfer that is used in the program.
I appreciate any tips or advice on how to fix the issue.
Thank you