On 10/10/24 08:47, Junxiang Wang wrote:

The program didn't proceed after I made a subroutine called

              laplace_cell(cell,
                                  cell_matrix,
                                  cell_rhs);

within the assemble_system() function.

On a given MPI process, you call this function on every cell the process owns. But not every process owns the same number of cells, and so every process calls the function a different number of times.

But *inside* the function you call
    evant_solution.reinit(locally_owned_dofs,
                                     locally_relevant_dofs,
                                     mpi_communicator);
which is a "collective" call in which all processes have to participate. It cannot work if you call the function different numbers of times because then there will be processes that get to that point and other processes that are already done assembling on their cells. You end up with a deadlock in these situations, and that's what you observe.

There is a little bit more information about "Collective operations" in the glossary:
  https://dealii.org/developer/doxygen/deal.II/DEALGlossary.html

Best
 W.

--
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 [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/dealii/9541c017-c10a-4e4e-9ab6-49fb0e234668%40colostate.edu.

Reply via email to