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.
Showing
- src/USER-TALLY/compute_force_tally.cpp 13 additions, 39 deletionssrc/USER-TALLY/compute_force_tally.cpp
- src/USER-TALLY/compute_force_tally.h 2 additions, 3 deletionssrc/USER-TALLY/compute_force_tally.h
- src/USER-TALLY/compute_heat_flux_tally.cpp 33 additions, 47 deletionssrc/USER-TALLY/compute_heat_flux_tally.cpp
- src/USER-TALLY/compute_heat_flux_tally.h 2 additions, 1 deletionsrc/USER-TALLY/compute_heat_flux_tally.h
- src/USER-TALLY/compute_pe_mol_tally.cpp 10 additions, 11 deletionssrc/USER-TALLY/compute_pe_mol_tally.cpp
- src/USER-TALLY/compute_pe_mol_tally.h 2 additions, 1 deletionsrc/USER-TALLY/compute_pe_mol_tally.h
- src/USER-TALLY/compute_pe_tally.cpp 31 additions, 31 deletionssrc/USER-TALLY/compute_pe_tally.cpp
- src/USER-TALLY/compute_pe_tally.h 2 additions, 1 deletionsrc/USER-TALLY/compute_pe_tally.h
- src/USER-TALLY/compute_stress_tally.cpp 32 additions, 34 deletionssrc/USER-TALLY/compute_stress_tally.cpp
- src/USER-TALLY/compute_stress_tally.h 3 additions, 2 deletionssrc/USER-TALLY/compute_stress_tally.h
- src/compute.h 1 addition, 0 deletionssrc/compute.h
- src/pair.cpp 10 additions, 0 deletionssrc/pair.cpp
Loading
Please register or sign in to comment