Skip to content

Commit

Permalink
Everything in a single parallel cycle
Browse files Browse the repository at this point in the history
  • Loading branch information
rprospero committed Apr 23, 2024
1 parent e861f8a commit d2cb599
Showing 1 changed file with 7 additions and 13 deletions.
20 changes: 7 additions & 13 deletions src/modules/siteRDF/process.cpp
Expand Up @@ -46,22 +46,16 @@ Module::ExecutionResult SiteRDFModule::process(ModuleContext &moduleContext)
return histAB;
});

std::vector<std::optional<double>> bins;
bins.resize(pairs.end() - pairs.begin());
dissolve::transform(ParallelPolicies::par, pairs.begin(), pairs.end(), bins.begin(), [this, &histAB, &a, &b](const auto& pair) -> std::optional<double> {
const auto &[siteA, indexA] = a.sites()[std::get<0>(pair)];
const auto &[siteB, indexB] = b.sites()[std::get<1>(pair)];
dissolve::for_each(ParallelPolicies::par, pairs.begin(), pairs.end(), [this, &combinableHistograms, &a, &b](const auto& pair) {
const auto [aIndex, bIndex] = pair;
const auto &[siteA, indexA] = a.sites()[aIndex];
const auto &[siteB, indexB] = b.sites()[bIndex];
if (excludeSameMolecule_ && (siteB->molecule() == siteA->molecule()))
return {};
return targetConfiguration_->box()->minimumDistance(siteA->origin(), siteB->origin());
return;
auto &hist = combinableHistograms.local();
hist.bin(targetConfiguration_->box()->minimumDistance(siteA->origin(), siteB->origin()));
});

dissolve::for_each(ParallelPolicies::par, bins.begin(), bins.end(), [&combinableHistograms](const auto bin) {
auto &hist = combinableHistograms.local();
if (bin)
hist.bin(*bin);
});

histAB = combinableHistograms.finalize();

// Accumulate histogram
Expand Down

0 comments on commit d2cb599

Please sign in to comment.