Make AWH bias sharing more flexible
[alexxy/gromacs.git] / src / gromacs / applied_forces / awh / bias.cpp
index ea6d4a0795f1c783898c59be4ed181865cfe15f3..3caffe06c1c48e6d076cbc753303ebc41abcc841 100644 (file)
@@ -67,6 +67,7 @@
 #include "gromacs/utility/gmxassert.h"
 #include "gromacs/utility/stringutil.h"
 
+#include "biassharing.h"
 #include "correlationgrid.h"
 #include "correlationhistory.h"
 #include "pointstate.h"
@@ -107,8 +108,6 @@ gmx::ArrayRef<const double> Bias::calcForceAndUpdateBias(const awh_dvec
                                                          ArrayRef<const double> neighborLambdaDhdl,
                                                          double*                awhPotential,
                                                          double*                potentialJump,
-                                                         const t_commrec*       commRecord,
-                                                         const gmx_multisim_t*  ms,
                                                          double                 t,
                                                          int64_t                step,
                                                          int64_t                seed,
@@ -211,7 +210,7 @@ gmx::ArrayRef<const double> Bias::calcForceAndUpdateBias(const awh_dvec
     if (params_.isUpdateFreeEnergyStep(step))
     {
         state_.updateFreeEnergyAndAddSamplesToHistogram(
-                dimParams_, grid_, params_, commRecord, ms, t, step, fplog, &updateList_);
+                dimParams_, grid_, params_, t, step, fplog, &updateList_);
 
         if (params_.convolveForce)
         {
@@ -363,7 +362,7 @@ Bias::Bias(int                            biasIndexInCollection,
            ArrayRef<const DimParams>      dimParamsInit,
            double                         beta,
            double                         mdTimeStep,
-           int                            numSharingSimulations,
+           const BiasSharing*             biasSharing,
            const std::string&             biasInitFilename,
            ThisRankWillDoIO               thisRankWillDoIO,
            BiasParams::DisableUpdateSkips disableUpdateSkips) :
@@ -375,13 +374,12 @@ Bias::Bias(int                            biasIndexInCollection,
             beta,
             mdTimeStep,
             disableUpdateSkips,
-            numSharingSimulations,
+            biasSharing ? biasSharing->numSharingSimulations(biasIndexInCollection) : 1,
             grid_.axis(),
             biasIndexInCollection),
-    state_(awhBiasParams, params_.initialHistogramSize, dimParams_, grid_),
+    state_(awhBiasParams, params_.initialHistogramSize, dimParams_, grid_, biasSharing),
     thisRankDoesIO_(thisRankWillDoIO == ThisRankWillDoIO::Yes),
     biasForce_(ndim()),
-
     tempForce_(ndim()),
     numWarningsIssued_(0)
 {