refactoring of USER-TALLY computes to handle sparse and hybrid systems
with sparse and hybrid systems, Pair::ev_tally() may not be called on every processor and thus the computes in USER-TALLY may hang during reverse communication because of the error->all() call after checking whether callback from Pair::ev_tally() has been called at least once. To address this cleanly, a second callback function needs to be added, which is run during Pair::ev_setup() and will now handle all memory re-allocation and clearing of accumulators, just like it is done for regular tallied data.
This commit is contained in:
@ -135,6 +135,7 @@ class Compute : protected Pointers {
|
||||
|
||||
virtual double memory_usage() {return 0.0;}
|
||||
|
||||
virtual void pair_setup_callback(int, int) {}
|
||||
virtual void pair_tally_callback(int, int, int, int,
|
||||
double, double, double,
|
||||
double, double, double) {}
|
||||
|
||||
Reference in New Issue
Block a user