Ejemplo n.º 1
0
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());
}
Ejemplo n.º 2
0
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];
}