From f328b57f5965a603ce78b8bdb5a1041951499e21 Mon Sep 17 00:00:00 2001
From: carlocamilloni <carlo.camilloni@gmail.com>
Date: Sat, 10 Nov 2018 21:21:48 +0100
Subject: [PATCH] saxsgpu: fixed a bug in the parallel case now covered by the
 regtest better

---
 regtest/isdb/rt-saxs-gpu/config         |   2 +-
 regtest/isdb/rt-saxs-gpu/ff.0.reference | 357 ++++++++++++++++++++++++
 regtest/isdb/rt-saxs-gpu/ff.1.reference | 357 ++++++++++++++++++++++++
 regtest/isdb/rt-saxs-gpu/plumed.dat     |   2 +
 src/isdb/SAXS.cpp                       |  17 +-
 5 files changed, 720 insertions(+), 15 deletions(-)
 create mode 100644 regtest/isdb/rt-saxs-gpu/ff.0.reference
 create mode 100644 regtest/isdb/rt-saxs-gpu/ff.1.reference

diff --git a/regtest/isdb/rt-saxs-gpu/config b/regtest/isdb/rt-saxs-gpu/config
index d88b9287d..80fa1ff41 100644
--- a/regtest/isdb/rt-saxs-gpu/config
+++ b/regtest/isdb/rt-saxs-gpu/config
@@ -1,5 +1,5 @@
 mpiprocs=2
 type=driver
-arg="--plumed plumed.dat --timestep 0.005 --mf_pdb template.pdb"
+arg="--plumed plumed.dat --timestep 0.005 --mf_pdb template.pdb --dump-forces ff"
 plumed_needs="arrayfire"
 PLUMED_ALLOW_SKIP_ON_TRAVIS=yes
diff --git a/regtest/isdb/rt-saxs-gpu/ff.0.reference b/regtest/isdb/rt-saxs-gpu/ff.0.reference
new file mode 100644
index 000000000..aca182e65
--- /dev/null
+++ b/regtest/isdb/rt-saxs-gpu/ff.0.reference
@@ -0,0 +1,357 @@
+355
+-0.055282 -0.035747 -0.014495
+X 0.000282 0.000337 0.000139
+X 0.000161 0.000205 0.000097
+X 0.000204 0.000311 0.000121
+X 0.000214 0.000379 0.000105
+X 0.000068 0.000128 0.000030
+X 0.000196 0.000355 0.000078
+X -0.000006 -0.000014 -0.000003
+X 0.000056 0.000177 0.000046
+X 0.000064 0.000189 0.000029
+X 0.000203 0.000310 0.000089
+X -0.000006 -0.000011 -0.000003
+X 0.000062 0.000143 0.000038
+X 0.000072 0.000151 0.000061
+X 0.000252 0.000299 0.000071
+X -0.000010 -0.000013 -0.000003
+X 0.000137 0.000186 0.000033
+X 0.000165 0.000190 0.000038
+X 0.000261 0.000258 0.000100
+X -0.000008 -0.000009 -0.000004
+X 0.000091 0.000117 0.000044
+X 0.000103 0.000129 0.000068
+X 0.000302 0.000243 0.000089
+X -0.000013 -0.000010 -0.000004
+X 0.000174 0.000151 0.000039
+X 0.000184 0.000163 0.000063
+X 0.000297 0.000241 0.000040
+X -0.000010 -0.000009 -0.000001
+X 0.000114 0.000133 0.000003
+X 0.000117 0.000131 0.000019
+X 0.000286 0.000194 0.000009
+X 0.000234 0.000154 -0.000012
+X 0.000270 0.000139 -0.000001
+X 0.000241 0.000105 0.000029
+X 0.000244 0.000094 -0.000010
+X -0.000086 -0.000049 0.000011
+X 0.000240 0.000045 0.000003
+X -0.000016 -0.000002 -0.000002
+X -0.000011 -0.000002 -0.000002
+X -0.000010 -0.000001 -0.000003
+X 0.000218 0.000000 -0.000014
+X -0.000064 -0.000005 0.000014
+X 0.000203 -0.000045 0.000009
+X -0.000052 0.000007 -0.000014
+X 0.000058 -0.000008 0.000027
+X 0.000202 -0.000077 -0.000028
+X 0.000045 -0.000013 -0.000014
+X 0.000189 -0.000121 -0.000003
+X -0.000059 0.000049 0.000002
+X 0.000234 -0.000143 -0.000012
+X 0.000052 -0.000039 -0.000007
+X 0.000245 -0.000103 -0.000000
+X 0.000271 -0.000081 -0.000030
+X -0.000067 0.000028 0.000018
+X 0.000072 -0.000038 -0.000028
+X 0.000291 -0.000036 -0.000017
+X 0.000063 -0.000006 0.000004
+X 0.000278 0.000008 -0.000050
+X -0.000107 0.000005 0.000036
+X 0.000296 0.000054 -0.000048
+X 0.000069 0.000014 -0.000003
+X 0.000276 0.000092 -0.000072
+X -0.000095 -0.000032 0.000034
+X 0.000283 0.000145 -0.000079
+X 0.000253 0.000116 -0.000101
+X 0.000238 0.000177 -0.000080
+X -0.000068 -0.000052 0.000031
+X 0.000225 0.000221 -0.000066
+X 0.000215 0.000200 -0.000040
+X 0.000201 0.000236 -0.000043
+X -0.000051 -0.000049 0.000003
+X 0.000146 0.000244 -0.000074
+X 0.000041 0.000084 -0.000018
+X 0.000153 0.000207 -0.000110
+X 0.000170 0.000198 -0.000116
+X 0.000108 0.000186 -0.000115
+X 0.000020 0.000047 -0.000031
+X 0.000094 0.000140 -0.000125
+X -0.000034 -0.000043 0.000040
+X 0.000108 0.000135 -0.000168
+X 0.000076 0.000145 -0.000162
+X 0.000153 0.000140 -0.000157
+X 0.000150 0.000148 -0.000156
+X 0.000156 0.000101 -0.000131
+X -0.000053 -0.000035 0.000030
+X 0.000148 0.000069 -0.000164
+X -0.000028 -0.000018 0.000049
+X 0.000021 0.000022 -0.000059
+X 0.000154 0.000069 -0.000161
+X 0.000216 0.000075 -0.000160
+X -0.000064 -0.000029 0.000040
+X 0.000072 0.000043 -0.000045
+X 0.000209 0.000031 -0.000149
+X -0.000075 -0.000014 0.000046
+X 0.000218 0.000012 -0.000190
+X 0.000136 0.000008 -0.000173
+X 0.000261 0.000021 -0.000192
+X 0.000241 0.000058 -0.000182
+X 0.000278 -0.000002 -0.000156
+X -0.000073 -0.000010 0.000034
+X 0.000087 0.000021 -0.000038
+X 0.000258 -0.000042 -0.000164
+X 0.000223 -0.000075 -0.000120
+X 0.000212 -0.000056 -0.000184
+X 0.000179 -0.000049 -0.000173
+X -0.000081 0.000016 0.000055
+X 0.000145 -0.000056 -0.000205
+X -0.000031 0.000023 0.000046
+X 0.000116 -0.000004 -0.000200
+X -0.000034 -0.000000 0.000039
+X 0.000057 -0.000026 -0.000187
+X 0.000028 0.000013 -0.000163
+X 0.000062 -0.000044 -0.000146
+X 0.000011 -0.000048 -0.000103
+X 0.000078 -0.000022 -0.000118
+X 0.000060 0.000032 -0.000100
+X 0.000067 0.000001 -0.000069
+X -0.000006 -0.000005 0.000018
+X 0.000004 0.000061 -0.000167
+X 0.000090 0.000041 -0.000042
+X -0.000052 -0.000021 0.000029
+X 0.000090 0.000044 0.000010
+X -0.000029 -0.000006 -0.000016
+X 0.000103 0.000075 0.000046
+X -0.000007 -0.000003 -0.000005
+X -0.000005 -0.000001 -0.000004
+X -0.000005 -0.000002 -0.000005
+X 0.000072 0.000097 0.000049
+X 0.000037 0.000112 0.000038
+X 0.000026 0.000074 0.000036
+X -0.000008 -0.000017 -0.000021
+X 0.000013 0.000022 0.000033
+X 0.000013 0.000066 -0.000006
+X -0.000004 0.000008 0.000002
+X 0.000036 0.000092 -0.000037
+X -0.000033 -0.000045 0.000008
+X 0.000004 0.000116 -0.000072
+X -0.000023 0.000102 -0.000015
+X 0.000016 0.000142 -0.000123
+X 0.000026 0.000094 -0.000131
+X 0.000029 0.000169 -0.000094
+X 0.000057 0.000168 -0.000062
+X -0.000007 -0.000046 0.000007
+X 0.000006 0.000267 0.000023
+X 0.000080 0.000213 -0.000052
+X 0.000014 0.000054 -0.000015
+X 0.000115 0.000195 -0.000023
+X -0.000058 -0.000068 0.000022
+X 0.000117 0.000240 0.000009
+X 0.000046 0.000075 0.000007
+X 0.000069 0.000236 0.000024
+X 0.000035 0.000221 0.000002
+X 0.000072 0.000187 0.000049
+X -0.000003 -0.000010 -0.000005
+X -0.000001 -0.000006 -0.000004
+X 0.000021 0.000078 0.000055
+X 0.000115 0.000186 0.000066
+X 0.000105 0.000182 0.000089
+X 0.000150 0.000174 0.000041
+X -0.000059 -0.000057 -0.000006
+X 0.000190 0.000172 0.000066
+X 0.000138 0.000134 0.000098
+X 0.000230 0.000166 0.000053
+X -0.000068 -0.000048 -0.000020
+X 0.000082 0.000050 0.000027
+X 0.000242 0.000110 0.000068
+X 0.000185 0.000101 0.000099
+X 0.000200 0.000095 0.000056
+X 0.000051 0.000033 0.000024
+X 0.000197 0.000045 0.000068
+X 0.000045 0.000009 0.000024
+X 0.000170 0.000027 0.000031
+X -0.000067 -0.000027 0.000002
+X 0.000141 -0.000007 0.000011
+X -0.000005 0.000001 -0.000002
+X 0.000053 -0.000034 0.000029
+X 0.000068 -0.000025 0.000046
+X 0.000139 -0.000039 -0.000032
+X -0.000059 0.000008 0.000029
+X 0.000095 -0.000063 -0.000044
+X -0.000024 0.000019 0.000004
+X 0.000107 -0.000093 -0.000085
+X -0.000059 0.000033 0.000045
+X 0.000070 -0.000110 -0.000112
+X -0.000009 0.000030 0.000020
+X 0.000035 -0.000222 -0.000061
+X 0.000067 -0.000154 -0.000128
+X -0.000049 0.000064 0.000053
+X 0.000018 -0.000169 -0.000129
+X 0.000004 0.000035 0.000038
+X -0.000053 -0.000185 -0.000277
+X -0.000002 -0.000185 -0.000092
+X -0.000036 -0.000184 -0.000069
+X -0.000051 -0.000222 -0.000037
+X -0.000002 -0.000118 -0.000008
+X -0.000095 -0.000226 -0.000034
+X -0.000083 -0.000214 -0.000045
+X -0.000140 -0.000199 -0.000012
+X 0.000061 0.000064 -0.000001
+X -0.000183 -0.000216 -0.000000
+X 0.000010 0.000015 0.000001
+X 0.000007 0.000011 0.000001
+X 0.000007 0.000011 0.000000
+X -0.000231 -0.000188 0.000010
+X 0.000072 0.000049 -0.000004
+X -0.000268 -0.000211 0.000028
+X 0.000065 0.000066 -0.000006
+X -0.000078 -0.000081 0.000003
+X -0.000316 -0.000190 0.000017
+X -0.000071 -0.000034 0.000002
+X -0.000338 -0.000223 0.000039
+X 0.000129 0.000094 -0.000033
+X -0.000356 -0.000250 0.000010
+X -0.000078 -0.000064 0.000002
+X -0.000314 -0.000224 -0.000035
+X -0.000300 -0.000209 -0.000045
+X 0.000081 0.000042 0.000018
+X -0.000095 -0.000038 -0.000024
+X -0.000264 -0.000224 -0.000051
+X -0.000055 -0.000057 -0.000011
+X -0.000234 -0.000184 -0.000061
+X 0.000101 0.000064 0.000040
+X -0.000183 -0.000188 -0.000080
+X -0.000038 -0.000050 -0.000016
+X -0.000147 -0.000154 -0.000073
+X 0.000067 0.000046 0.000039
+X -0.000099 -0.000151 -0.000061
+X -0.000070 -0.000120 -0.000092
+X -0.000065 -0.000149 -0.000017
+X 0.000025 0.000056 -0.000005
+X -0.000039 -0.000110 -0.000018
+X -0.000029 -0.000094 -0.000061
+X -0.000004 -0.000123 0.000026
+X 0.000002 0.000041 -0.000009
+X -0.000002 -0.000065 0.000033
+X 0.000010 -0.000018 0.000017
+X -0.000052 -0.000049 0.000029
+X -0.000054 -0.000033 -0.000012
+X -0.000076 -0.000018 0.000063
+X -0.000016 0.000004 0.000011
+X -0.000124 -0.000025 0.000072
+X 0.000053 0.000028 -0.000037
+X -0.000143 0.000011 0.000047
+X -0.000153 0.000034 0.000057
+X -0.000130 -0.000005 0.000006
+X -0.000092 0.000024 -0.000016
+X -0.000150 -0.000047 0.000008
+X 0.000042 0.000026 -0.000002
+X -0.000194 -0.000032 0.000006
+X 0.000054 0.000007 -0.000013
+X -0.000057 -0.000008 0.000026
+X -0.000157 -0.000008 -0.000029
+X -0.000174 -0.000045 -0.000064
+X 0.000033 0.000014 0.000017
+X -0.000028 -0.000023 -0.000017
+X -0.000213 -0.000068 -0.000057
+X 0.000080 0.000042 0.000012
+X -0.000244 -0.000037 -0.000072
+X -0.000187 0.000022 -0.000052
+X -0.000232 -0.000033 -0.000117
+X -0.000171 -0.000015 -0.000118
+X -0.000237 -0.000077 -0.000130
+X 0.000053 0.000024 0.000042
+X -0.000056 -0.000019 -0.000056
+X -0.000280 -0.000079 -0.000117
+X -0.000229 -0.000099 -0.000126
+X -0.000284 -0.000064 -0.000071
+X -0.000293 -0.000079 -0.000029
+X 0.000109 0.000047 0.000015
+X -0.000304 -0.000061 0.000013
+X 0.000066 0.000022 -0.000008
+X -0.000290 -0.000010 0.000031
+X 0.000066 -0.000003 0.000001
+X -0.000321 0.000001 0.000049
+X -0.000287 0.000032 0.000068
+X -0.000332 -0.000042 0.000070
+X -0.000258 -0.000072 0.000035
+X -0.000289 -0.000053 0.000088
+X -0.000241 -0.000033 0.000112
+X -0.000260 -0.000089 0.000111
+X 0.000062 0.000016 -0.000038
+X -0.000320 -0.000041 0.000247
+X -0.000214 -0.000116 0.000098
+X 0.000077 0.000043 -0.000025
+X -0.000209 -0.000158 0.000136
+X 0.000103 0.000063 -0.000063
+X -0.000173 -0.000188 0.000153
+X 0.000010 0.000013 -0.000008
+X 0.000006 0.000010 -0.000006
+X 0.000007 0.000010 -0.000005
+X -0.000169 -0.000167 0.000165
+X -0.000206 -0.000142 0.000200
+X -0.000177 -0.000131 0.000204
+X 0.000040 0.000033 -0.000063
+X -0.000034 -0.000038 0.000074
+X -0.000190 -0.000099 0.000185
+X -0.000158 -0.000055 0.000179
+X -0.000174 -0.000079 0.000144
+X 0.000064 0.000051 -0.000053
+X -0.000142 -0.000045 0.000165
+X -0.000104 -0.000050 0.000175
+X -0.000139 -0.000004 0.000140
+X -0.000159 0.000020 0.000129
+X -0.000078 0.000008 0.000126
+X -0.000072 -0.000050 0.000139
+X 0.000014 0.000015 -0.000048
+X -0.000030 -0.000056 0.000301
+X -0.000035 -0.000067 0.000111
+X -0.000000 -0.000012 0.000028
+X -0.000040 -0.000110 0.000087
+X 0.000033 0.000044 -0.000023
+X 0.000008 -0.000130 0.000108
+X 0.000011 -0.000038 0.000027
+X -0.000008 -0.000125 0.000154
+X 0.000019 -0.000088 0.000161
+X -0.000039 -0.000166 0.000160
+X 0.000004 0.000008 -0.000009
+X 0.000004 0.000004 -0.000006
+X -0.000047 -0.000063 0.000076
+X -0.000030 -0.000193 0.000120
+X 0.000011 -0.000189 0.000113
+X -0.000060 -0.000177 0.000082
+X 0.000042 0.000072 -0.000042
+X -0.000049 -0.000231 0.000059
+X -0.000028 -0.000208 0.000082
+X -0.000073 -0.000269 0.000031
+X 0.000011 0.000074 -0.000000
+X -0.000011 -0.000084 -0.000010
+X -0.000118 -0.000271 0.000024
+X -0.000095 -0.000257 -0.000001
+X -0.000130 -0.000231 0.000055
+X -0.000035 -0.000074 0.000028
+X -0.000177 -0.000250 0.000070
+X -0.000037 -0.000064 0.000017
+X -0.000204 -0.000212 0.000072
+X 0.000072 0.000073 -0.000030
+X -0.000247 -0.000194 0.000095
+X 0.000010 0.000008 -0.000005
+X -0.000129 -0.000120 0.000083
+X -0.000154 -0.000116 0.000081
+X -0.000288 -0.000164 0.000091
+X 0.000113 0.000058 -0.000024
+X -0.000317 -0.000131 0.000118
+X 0.000104 0.000049 -0.000049
+X -0.000361 -0.000096 0.000104
+X 0.000151 0.000030 -0.000056
+X -0.000389 -0.000104 0.000077
+X 0.000105 0.000016 -0.000014
+X -0.000581 -0.000026 0.000100
+X -0.000371 -0.000152 0.000057
+X 0.000151 0.000073 -0.000039
+X -0.000401 -0.000166 0.000024
+X 0.000105 0.000055 -0.000010
+X -0.000606 -0.000360 0.000022
+X -0.000376 -0.000116 -0.000010
+X -0.000345 -0.000097 -0.000021
diff --git a/regtest/isdb/rt-saxs-gpu/ff.1.reference b/regtest/isdb/rt-saxs-gpu/ff.1.reference
new file mode 100644
index 000000000..aca182e65
--- /dev/null
+++ b/regtest/isdb/rt-saxs-gpu/ff.1.reference
@@ -0,0 +1,357 @@
+355
+-0.055282 -0.035747 -0.014495
+X 0.000282 0.000337 0.000139
+X 0.000161 0.000205 0.000097
+X 0.000204 0.000311 0.000121
+X 0.000214 0.000379 0.000105
+X 0.000068 0.000128 0.000030
+X 0.000196 0.000355 0.000078
+X -0.000006 -0.000014 -0.000003
+X 0.000056 0.000177 0.000046
+X 0.000064 0.000189 0.000029
+X 0.000203 0.000310 0.000089
+X -0.000006 -0.000011 -0.000003
+X 0.000062 0.000143 0.000038
+X 0.000072 0.000151 0.000061
+X 0.000252 0.000299 0.000071
+X -0.000010 -0.000013 -0.000003
+X 0.000137 0.000186 0.000033
+X 0.000165 0.000190 0.000038
+X 0.000261 0.000258 0.000100
+X -0.000008 -0.000009 -0.000004
+X 0.000091 0.000117 0.000044
+X 0.000103 0.000129 0.000068
+X 0.000302 0.000243 0.000089
+X -0.000013 -0.000010 -0.000004
+X 0.000174 0.000151 0.000039
+X 0.000184 0.000163 0.000063
+X 0.000297 0.000241 0.000040
+X -0.000010 -0.000009 -0.000001
+X 0.000114 0.000133 0.000003
+X 0.000117 0.000131 0.000019
+X 0.000286 0.000194 0.000009
+X 0.000234 0.000154 -0.000012
+X 0.000270 0.000139 -0.000001
+X 0.000241 0.000105 0.000029
+X 0.000244 0.000094 -0.000010
+X -0.000086 -0.000049 0.000011
+X 0.000240 0.000045 0.000003
+X -0.000016 -0.000002 -0.000002
+X -0.000011 -0.000002 -0.000002
+X -0.000010 -0.000001 -0.000003
+X 0.000218 0.000000 -0.000014
+X -0.000064 -0.000005 0.000014
+X 0.000203 -0.000045 0.000009
+X -0.000052 0.000007 -0.000014
+X 0.000058 -0.000008 0.000027
+X 0.000202 -0.000077 -0.000028
+X 0.000045 -0.000013 -0.000014
+X 0.000189 -0.000121 -0.000003
+X -0.000059 0.000049 0.000002
+X 0.000234 -0.000143 -0.000012
+X 0.000052 -0.000039 -0.000007
+X 0.000245 -0.000103 -0.000000
+X 0.000271 -0.000081 -0.000030
+X -0.000067 0.000028 0.000018
+X 0.000072 -0.000038 -0.000028
+X 0.000291 -0.000036 -0.000017
+X 0.000063 -0.000006 0.000004
+X 0.000278 0.000008 -0.000050
+X -0.000107 0.000005 0.000036
+X 0.000296 0.000054 -0.000048
+X 0.000069 0.000014 -0.000003
+X 0.000276 0.000092 -0.000072
+X -0.000095 -0.000032 0.000034
+X 0.000283 0.000145 -0.000079
+X 0.000253 0.000116 -0.000101
+X 0.000238 0.000177 -0.000080
+X -0.000068 -0.000052 0.000031
+X 0.000225 0.000221 -0.000066
+X 0.000215 0.000200 -0.000040
+X 0.000201 0.000236 -0.000043
+X -0.000051 -0.000049 0.000003
+X 0.000146 0.000244 -0.000074
+X 0.000041 0.000084 -0.000018
+X 0.000153 0.000207 -0.000110
+X 0.000170 0.000198 -0.000116
+X 0.000108 0.000186 -0.000115
+X 0.000020 0.000047 -0.000031
+X 0.000094 0.000140 -0.000125
+X -0.000034 -0.000043 0.000040
+X 0.000108 0.000135 -0.000168
+X 0.000076 0.000145 -0.000162
+X 0.000153 0.000140 -0.000157
+X 0.000150 0.000148 -0.000156
+X 0.000156 0.000101 -0.000131
+X -0.000053 -0.000035 0.000030
+X 0.000148 0.000069 -0.000164
+X -0.000028 -0.000018 0.000049
+X 0.000021 0.000022 -0.000059
+X 0.000154 0.000069 -0.000161
+X 0.000216 0.000075 -0.000160
+X -0.000064 -0.000029 0.000040
+X 0.000072 0.000043 -0.000045
+X 0.000209 0.000031 -0.000149
+X -0.000075 -0.000014 0.000046
+X 0.000218 0.000012 -0.000190
+X 0.000136 0.000008 -0.000173
+X 0.000261 0.000021 -0.000192
+X 0.000241 0.000058 -0.000182
+X 0.000278 -0.000002 -0.000156
+X -0.000073 -0.000010 0.000034
+X 0.000087 0.000021 -0.000038
+X 0.000258 -0.000042 -0.000164
+X 0.000223 -0.000075 -0.000120
+X 0.000212 -0.000056 -0.000184
+X 0.000179 -0.000049 -0.000173
+X -0.000081 0.000016 0.000055
+X 0.000145 -0.000056 -0.000205
+X -0.000031 0.000023 0.000046
+X 0.000116 -0.000004 -0.000200
+X -0.000034 -0.000000 0.000039
+X 0.000057 -0.000026 -0.000187
+X 0.000028 0.000013 -0.000163
+X 0.000062 -0.000044 -0.000146
+X 0.000011 -0.000048 -0.000103
+X 0.000078 -0.000022 -0.000118
+X 0.000060 0.000032 -0.000100
+X 0.000067 0.000001 -0.000069
+X -0.000006 -0.000005 0.000018
+X 0.000004 0.000061 -0.000167
+X 0.000090 0.000041 -0.000042
+X -0.000052 -0.000021 0.000029
+X 0.000090 0.000044 0.000010
+X -0.000029 -0.000006 -0.000016
+X 0.000103 0.000075 0.000046
+X -0.000007 -0.000003 -0.000005
+X -0.000005 -0.000001 -0.000004
+X -0.000005 -0.000002 -0.000005
+X 0.000072 0.000097 0.000049
+X 0.000037 0.000112 0.000038
+X 0.000026 0.000074 0.000036
+X -0.000008 -0.000017 -0.000021
+X 0.000013 0.000022 0.000033
+X 0.000013 0.000066 -0.000006
+X -0.000004 0.000008 0.000002
+X 0.000036 0.000092 -0.000037
+X -0.000033 -0.000045 0.000008
+X 0.000004 0.000116 -0.000072
+X -0.000023 0.000102 -0.000015
+X 0.000016 0.000142 -0.000123
+X 0.000026 0.000094 -0.000131
+X 0.000029 0.000169 -0.000094
+X 0.000057 0.000168 -0.000062
+X -0.000007 -0.000046 0.000007
+X 0.000006 0.000267 0.000023
+X 0.000080 0.000213 -0.000052
+X 0.000014 0.000054 -0.000015
+X 0.000115 0.000195 -0.000023
+X -0.000058 -0.000068 0.000022
+X 0.000117 0.000240 0.000009
+X 0.000046 0.000075 0.000007
+X 0.000069 0.000236 0.000024
+X 0.000035 0.000221 0.000002
+X 0.000072 0.000187 0.000049
+X -0.000003 -0.000010 -0.000005
+X -0.000001 -0.000006 -0.000004
+X 0.000021 0.000078 0.000055
+X 0.000115 0.000186 0.000066
+X 0.000105 0.000182 0.000089
+X 0.000150 0.000174 0.000041
+X -0.000059 -0.000057 -0.000006
+X 0.000190 0.000172 0.000066
+X 0.000138 0.000134 0.000098
+X 0.000230 0.000166 0.000053
+X -0.000068 -0.000048 -0.000020
+X 0.000082 0.000050 0.000027
+X 0.000242 0.000110 0.000068
+X 0.000185 0.000101 0.000099
+X 0.000200 0.000095 0.000056
+X 0.000051 0.000033 0.000024
+X 0.000197 0.000045 0.000068
+X 0.000045 0.000009 0.000024
+X 0.000170 0.000027 0.000031
+X -0.000067 -0.000027 0.000002
+X 0.000141 -0.000007 0.000011
+X -0.000005 0.000001 -0.000002
+X 0.000053 -0.000034 0.000029
+X 0.000068 -0.000025 0.000046
+X 0.000139 -0.000039 -0.000032
+X -0.000059 0.000008 0.000029
+X 0.000095 -0.000063 -0.000044
+X -0.000024 0.000019 0.000004
+X 0.000107 -0.000093 -0.000085
+X -0.000059 0.000033 0.000045
+X 0.000070 -0.000110 -0.000112
+X -0.000009 0.000030 0.000020
+X 0.000035 -0.000222 -0.000061
+X 0.000067 -0.000154 -0.000128
+X -0.000049 0.000064 0.000053
+X 0.000018 -0.000169 -0.000129
+X 0.000004 0.000035 0.000038
+X -0.000053 -0.000185 -0.000277
+X -0.000002 -0.000185 -0.000092
+X -0.000036 -0.000184 -0.000069
+X -0.000051 -0.000222 -0.000037
+X -0.000002 -0.000118 -0.000008
+X -0.000095 -0.000226 -0.000034
+X -0.000083 -0.000214 -0.000045
+X -0.000140 -0.000199 -0.000012
+X 0.000061 0.000064 -0.000001
+X -0.000183 -0.000216 -0.000000
+X 0.000010 0.000015 0.000001
+X 0.000007 0.000011 0.000001
+X 0.000007 0.000011 0.000000
+X -0.000231 -0.000188 0.000010
+X 0.000072 0.000049 -0.000004
+X -0.000268 -0.000211 0.000028
+X 0.000065 0.000066 -0.000006
+X -0.000078 -0.000081 0.000003
+X -0.000316 -0.000190 0.000017
+X -0.000071 -0.000034 0.000002
+X -0.000338 -0.000223 0.000039
+X 0.000129 0.000094 -0.000033
+X -0.000356 -0.000250 0.000010
+X -0.000078 -0.000064 0.000002
+X -0.000314 -0.000224 -0.000035
+X -0.000300 -0.000209 -0.000045
+X 0.000081 0.000042 0.000018
+X -0.000095 -0.000038 -0.000024
+X -0.000264 -0.000224 -0.000051
+X -0.000055 -0.000057 -0.000011
+X -0.000234 -0.000184 -0.000061
+X 0.000101 0.000064 0.000040
+X -0.000183 -0.000188 -0.000080
+X -0.000038 -0.000050 -0.000016
+X -0.000147 -0.000154 -0.000073
+X 0.000067 0.000046 0.000039
+X -0.000099 -0.000151 -0.000061
+X -0.000070 -0.000120 -0.000092
+X -0.000065 -0.000149 -0.000017
+X 0.000025 0.000056 -0.000005
+X -0.000039 -0.000110 -0.000018
+X -0.000029 -0.000094 -0.000061
+X -0.000004 -0.000123 0.000026
+X 0.000002 0.000041 -0.000009
+X -0.000002 -0.000065 0.000033
+X 0.000010 -0.000018 0.000017
+X -0.000052 -0.000049 0.000029
+X -0.000054 -0.000033 -0.000012
+X -0.000076 -0.000018 0.000063
+X -0.000016 0.000004 0.000011
+X -0.000124 -0.000025 0.000072
+X 0.000053 0.000028 -0.000037
+X -0.000143 0.000011 0.000047
+X -0.000153 0.000034 0.000057
+X -0.000130 -0.000005 0.000006
+X -0.000092 0.000024 -0.000016
+X -0.000150 -0.000047 0.000008
+X 0.000042 0.000026 -0.000002
+X -0.000194 -0.000032 0.000006
+X 0.000054 0.000007 -0.000013
+X -0.000057 -0.000008 0.000026
+X -0.000157 -0.000008 -0.000029
+X -0.000174 -0.000045 -0.000064
+X 0.000033 0.000014 0.000017
+X -0.000028 -0.000023 -0.000017
+X -0.000213 -0.000068 -0.000057
+X 0.000080 0.000042 0.000012
+X -0.000244 -0.000037 -0.000072
+X -0.000187 0.000022 -0.000052
+X -0.000232 -0.000033 -0.000117
+X -0.000171 -0.000015 -0.000118
+X -0.000237 -0.000077 -0.000130
+X 0.000053 0.000024 0.000042
+X -0.000056 -0.000019 -0.000056
+X -0.000280 -0.000079 -0.000117
+X -0.000229 -0.000099 -0.000126
+X -0.000284 -0.000064 -0.000071
+X -0.000293 -0.000079 -0.000029
+X 0.000109 0.000047 0.000015
+X -0.000304 -0.000061 0.000013
+X 0.000066 0.000022 -0.000008
+X -0.000290 -0.000010 0.000031
+X 0.000066 -0.000003 0.000001
+X -0.000321 0.000001 0.000049
+X -0.000287 0.000032 0.000068
+X -0.000332 -0.000042 0.000070
+X -0.000258 -0.000072 0.000035
+X -0.000289 -0.000053 0.000088
+X -0.000241 -0.000033 0.000112
+X -0.000260 -0.000089 0.000111
+X 0.000062 0.000016 -0.000038
+X -0.000320 -0.000041 0.000247
+X -0.000214 -0.000116 0.000098
+X 0.000077 0.000043 -0.000025
+X -0.000209 -0.000158 0.000136
+X 0.000103 0.000063 -0.000063
+X -0.000173 -0.000188 0.000153
+X 0.000010 0.000013 -0.000008
+X 0.000006 0.000010 -0.000006
+X 0.000007 0.000010 -0.000005
+X -0.000169 -0.000167 0.000165
+X -0.000206 -0.000142 0.000200
+X -0.000177 -0.000131 0.000204
+X 0.000040 0.000033 -0.000063
+X -0.000034 -0.000038 0.000074
+X -0.000190 -0.000099 0.000185
+X -0.000158 -0.000055 0.000179
+X -0.000174 -0.000079 0.000144
+X 0.000064 0.000051 -0.000053
+X -0.000142 -0.000045 0.000165
+X -0.000104 -0.000050 0.000175
+X -0.000139 -0.000004 0.000140
+X -0.000159 0.000020 0.000129
+X -0.000078 0.000008 0.000126
+X -0.000072 -0.000050 0.000139
+X 0.000014 0.000015 -0.000048
+X -0.000030 -0.000056 0.000301
+X -0.000035 -0.000067 0.000111
+X -0.000000 -0.000012 0.000028
+X -0.000040 -0.000110 0.000087
+X 0.000033 0.000044 -0.000023
+X 0.000008 -0.000130 0.000108
+X 0.000011 -0.000038 0.000027
+X -0.000008 -0.000125 0.000154
+X 0.000019 -0.000088 0.000161
+X -0.000039 -0.000166 0.000160
+X 0.000004 0.000008 -0.000009
+X 0.000004 0.000004 -0.000006
+X -0.000047 -0.000063 0.000076
+X -0.000030 -0.000193 0.000120
+X 0.000011 -0.000189 0.000113
+X -0.000060 -0.000177 0.000082
+X 0.000042 0.000072 -0.000042
+X -0.000049 -0.000231 0.000059
+X -0.000028 -0.000208 0.000082
+X -0.000073 -0.000269 0.000031
+X 0.000011 0.000074 -0.000000
+X -0.000011 -0.000084 -0.000010
+X -0.000118 -0.000271 0.000024
+X -0.000095 -0.000257 -0.000001
+X -0.000130 -0.000231 0.000055
+X -0.000035 -0.000074 0.000028
+X -0.000177 -0.000250 0.000070
+X -0.000037 -0.000064 0.000017
+X -0.000204 -0.000212 0.000072
+X 0.000072 0.000073 -0.000030
+X -0.000247 -0.000194 0.000095
+X 0.000010 0.000008 -0.000005
+X -0.000129 -0.000120 0.000083
+X -0.000154 -0.000116 0.000081
+X -0.000288 -0.000164 0.000091
+X 0.000113 0.000058 -0.000024
+X -0.000317 -0.000131 0.000118
+X 0.000104 0.000049 -0.000049
+X -0.000361 -0.000096 0.000104
+X 0.000151 0.000030 -0.000056
+X -0.000389 -0.000104 0.000077
+X 0.000105 0.000016 -0.000014
+X -0.000581 -0.000026 0.000100
+X -0.000371 -0.000152 0.000057
+X 0.000151 0.000073 -0.000039
+X -0.000401 -0.000166 0.000024
+X 0.000105 0.000055 -0.000010
+X -0.000606 -0.000360 0.000022
+X -0.000376 -0.000116 -0.000010
+X -0.000345 -0.000097 -0.000021
diff --git a/regtest/isdb/rt-saxs-gpu/plumed.dat b/regtest/isdb/rt-saxs-gpu/plumed.dat
index ebcfa8934..df6c8c3d1 100644
--- a/regtest/isdb/rt-saxs-gpu/plumed.dat
+++ b/regtest/isdb/rt-saxs-gpu/plumed.dat
@@ -50,6 +50,8 @@ QVALUE15=0.44
 PRINT ARG=(saxs\.q_.*) FILE=colvar STRIDE=1
 PRINT ARG=(saxsb\.q_.*) FILE=colvarb STRIDE=1
 
+BIASVALUE ARG=saxsb.q_0
+
 DUMPDERIVATIVES ARG=(saxs\.q_.*) FILE=forces FMT=%.4f
 DUMPDERIVATIVES ARG=(saxsb\.q_.*) FILE=forcesb FMT=%.4f
 
diff --git a/src/isdb/SAXS.cpp b/src/isdb/SAXS.cpp
index 964466727..d3061f7f8 100644
--- a/src/isdb/SAXS.cpp
+++ b/src/isdb/SAXS.cpp
@@ -378,13 +378,6 @@ void SAXS::calculate_gpu(vector<Vector> &deriv)
   const unsigned size = getNumberOfAtoms();
   const unsigned numq = q_list.size();
 
-  unsigned stride = comm.Get_size();
-  unsigned rank   = comm.Get_rank();
-  if(serial) {
-    stride = 1;
-    rank   = 0;
-  }
-
   std::vector<float> sum;
   sum.resize(numq);
 
@@ -392,7 +385,7 @@ void SAXS::calculate_gpu(vector<Vector> &deriv)
   dd.resize(size*3*numq);
 
   // on gpu only the master rank run the calculation
-  if(rank==0) {
+  if(comm.Get_rank()==0) {
     vector<float> posi;
     posi.resize(3*size);
     #pragma omp parallel for num_threads(OpenMP::getNumThreads())
@@ -462,10 +455,8 @@ void SAXS::calculate_gpu(vector<Vector> &deriv)
     deriv_device.host(&dd.front());
   }
 
-  if(!serial) {
-    comm.Bcast(deriv, 0);
-    comm.Bcast(sum, 0);
-  }
+  comm.Bcast(dd, 0);
+  comm.Bcast(sum, 0);
 
   for(unsigned k=0; k<numq; k++) {
     string num; Tools::convert(k,num);
@@ -572,8 +563,6 @@ void SAXS::calculate_cpu(vector<Vector> &deriv)
       if(getDoScore()) setCalcData(k, sum[k]);
     }
   }
-
-
 }
 
 void SAXS::calculate()
-- 
GitLab