xbraid icon indicating copy to clipboard operation
xbraid copied to clipboard

Send time information to neighboring empty processors for AMR subcycling purposes

Open jcc242 opened this issue 4 years ago • 0 comments

When constructing a new hierarchy, this sends time information to empty processors. Empty processors are defined as those that have no time points on them.

Time information on empty processors is needed for AMR subcycling. We need the empty processors to have the correct next and previous times so that during Sync we update AMR information such as the previous and next support level time point. This information is needed on empty processors so that if the processor later becomes used (like from a temporal refinement), then we have this information ready.

Essentially the way this works is:

  1. If this is NOT an empty processor: 1.1. Send our lower time value (ta[0]) to empty processors to the left. There is an assumption that time processor 0 is never empty. 1.2. Send our upper time value (ta[iupper-ilower]) to empty processors to the right.

  2. If this is an empty processor: 2.1 Post receives to the first non-empty processor to the left and right 2.2 Fill the ta[-1] time value with the value received from the left processor 2.3 Fill the ta[0] time value with the value received from the right processor

jcc242 avatar Jan 22 '21 00:01 jcc242