On 1/9/25 04:56, Davit Gyulamiryan wrote:

and the problem is that no process takes ownership over /cell_outer/, i.e. the body of the first /if /statement is never executed. The second loop works fine.

This makes no sense. If the 'if' in the first loop is never entered, how do you know that the second loop actually works? What happens if inside the 'if' there is only a print statement that shows where you are?


For context: I have source strength (e.g. a charge) at each support point of the FE, and I want to calculate the field induced by these sources at each of the support points. My approach: first loop iterates over the cells to obtain the coordinates of the support points - the process that owns the cell broadcasts the coordinates to all the other processes, second loop calculates the field strength at these support points by integrating over the entire domain.

This can not work as you describe. Broadcasts are collective operations. You cannot just send on one process and hope that the others magically receive the data. The others need to *know* that the first process sent them data and expect it.

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 visit 
https://groups.google.com/d/msgid/dealii/95687625-9b15-4537-9c06-ae7ebb80c3ec%40colostate.edu.

Reply via email to