void PanDustSystem::sumResults(bool ynstellar) { // Get a pointer to the PeerToPeerCommunicator of this simulation PeerToPeerCommunicator * comm = find<PeerToPeerCommunicator>(); Log* log = find<Log>(); TimeLogger logger(log->verbose() && comm->isMultiProc() ? log : 0, "communication of the absorbed luminosities"); // Sum the array of luminosities across all processes comm->sum_all(ynstellar ? _Labsstelvv.getArray() : _Labsdustvv.getArray()); }
double PanDustSystem::Labsdusttot() const { double sum = 0; if (_haveLabsdust) for (int m=0; m<_Ncells; m++) for (int ell=0; ell<_Nlambda; ell++) sum += _Labsdustvv(m,ell); PeerToPeerCommunicator * comm = find<PeerToPeerCommunicator>(); Array arr(1); arr[0] = sum; comm->sum_all(arr); return arr[0]; }