Skip to content

Commit 5fe11f9

Browse files
committed
FEAT: sync mean across ensemble member
1 parent 1655828 commit 5fe11f9

File tree

1 file changed

+17
-0
lines changed

1 file changed

+17
-0
lines changed

src/tools.cpp

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -238,6 +238,23 @@ precision_t sync_mean_across_all_procs(precision_t value) {
238238
return global_value;
239239
}
240240

241+
// ----------------------------------------------------------------------------
242+
// Calculate the average value across all processors
243+
// - this is the same as sync_mean_across_all_procs, but is limited to
244+
// processors in a given member
245+
// ----------------------------------------------------------------------------
246+
247+
precision_t sync_mean_across_member(precision_t value) {
248+
precision_t global_value;
249+
double vSend, vReceive;
250+
double nSend, nReceive;
251+
vSend = value;
252+
nSend = 1.0;
253+
MPI_Allreduce(&vSend, &vReceive, 1, MPI_DOUBLE, MPI_SUM, aether_member_comm);
254+
MPI_Allreduce(&nSend, &nReceive, 1, MPI_DOUBLE, MPI_SUM, aether_member_comm);
255+
global_value = vReceive / nReceive;
256+
return global_value;
257+
}
241258
// ----------------------------------------------------------------------------
242259
// Generate a vector of normally distributed random doubles
243260
// ----------------------------------------------------------------------------

0 commit comments

Comments
 (0)