diff --git a/regtest/basic/rt-mpi6/HILLS_rect.reference b/regtest/basic/rt-mpi6/HILLS_rect.reference
index 3cc1443a99..8aeb66e0ab 100644
--- a/regtest/basic/rt-mpi6/HILLS_rect.reference
+++ b/regtest/basic/rt-mpi6/HILLS_rect.reference
@@ -1,5 +1,6 @@
#! FIELDS time c d sigma_c sigma_d height biasf
#! SET multivariate false
+#! SET kerneltype gaussian
0.100000 9.237723 1.097928 0.100000 0.200000 2.496833 1.001000
0.100000 9.237723 1.097928 0.100000 0.200000 2.743772 1.001000
0.100000 8.675711 1.162646 0.100000 0.200000 9.977355 1.001000
diff --git a/regtest/basic/rt-mpi6d/HILLSa.0.reference b/regtest/basic/rt-mpi6d/HILLSa.0.reference
index b2af4971a9..889ed4aeaa 100644
--- a/regtest/basic/rt-mpi6d/HILLSa.0.reference
+++ b/regtest/basic/rt-mpi6d/HILLSa.0.reference
@@ -1,5 +1,6 @@
#! FIELDS time c d sigma_c sigma_d height biasf
#! SET multivariate false
+#! SET kerneltype gaussian
0.100000 9.237723 1.097928 0.100000 0.200000 2.494339 1.000000
0.200000 9.327813 1.086855 0.100000 0.200000 1.282241 1.000000
0.300000 9.157418 1.130546 0.100000 0.200000 1.085108 1.000000
diff --git a/regtest/basic/rt-mpi6d/HILLSa.1.reference b/regtest/basic/rt-mpi6d/HILLSa.1.reference
index 8b668b1d29..edf5dac16b 100644
--- a/regtest/basic/rt-mpi6d/HILLSa.1.reference
+++ b/regtest/basic/rt-mpi6d/HILLSa.1.reference
@@ -1,5 +1,6 @@
#! FIELDS time c d sigma_c sigma_d height biasf
#! SET multivariate false
+#! SET kerneltype gaussian
0.100000 9.237723 1.097928 0.100000 0.200000 2.743772 1.100000
0.200000 8.675711 1.162646 0.100000 0.200000 2.743772 1.100000
0.300000 9.282739 1.080244 0.100000 0.200000 1.115403 1.100000
diff --git a/regtest/basic/rt-mpi6d/HILLSa.2.reference b/regtest/basic/rt-mpi6d/HILLSa.2.reference
index d8e23e1440..0eb2386100 100644
--- a/regtest/basic/rt-mpi6d/HILLSa.2.reference
+++ b/regtest/basic/rt-mpi6d/HILLSa.2.reference
@@ -1,5 +1,6 @@
#! FIELDS time c d sigma_c sigma_d height biasf
#! SET multivariate false
+#! SET kerneltype gaussian
0.100000 8.675711 1.162646 0.100000 0.200000 9.977355 4.000000
0.200000 9.282739 1.080244 0.100000 0.200000 9.977355 4.000000
0.300000 9.237723 1.097928 0.100000 0.200000 4.056010 4.000000
diff --git a/regtest/basic/rt-mpi6d/HILLSb.reference b/regtest/basic/rt-mpi6d/HILLSb.reference
index 61c341d5a8..54b68f309b 100644
--- a/regtest/basic/rt-mpi6d/HILLSb.reference
+++ b/regtest/basic/rt-mpi6d/HILLSb.reference
@@ -1,5 +1,6 @@
#! FIELDS time c d sigma_c sigma_d height biasf
#! SET multivariate false
+#! SET kerneltype gaussian
0.100000 9.237723 1.097928 0.100000 0.200000 2.494339 1.000000
0.100000 9.237723 1.097928 0.100000 0.200000 2.743772 1.000000
0.100000 8.675711 1.162646 0.100000 0.200000 9.977355 1.000000
diff --git a/regtest/pamm/rt-pamm-aperiodic/plumed.dat b/regtest/pamm/rt-pamm-aperiodic/plumed.dat
index 7b76157782..2c2c13a693 100755
--- a/regtest/pamm/rt-pamm-aperiodic/plumed.dat
+++ b/regtest/pamm/rt-pamm-aperiodic/plumed.dat
@@ -1,4 +1,4 @@
-FCCUBIC SPECIESA=1-2 SPECIESB=1-1200 SWITCH={CUBIC D_0=1.2 D_MAX=1.5} MEAN LABEL=fcc
+FCCUBIC SPECIESA=1-2 SPECIESB=1-1200 SWITCH={CUBIC D_0=1.2 D_MAX=1.5} MEAN LOWMEM LABEL=fcc
PAMM DATA=fcc CLUSTERS=clusters.dat MEAN REGULARISE=0.0 LABEL=pamm
# PAMM DATA=fcc CLUSTERS=clusters.dat MEAN NUMERICAL_DERIVATIVES LABEL=pammn
diff --git a/src/crystallization/VectorMultiColvar.cpp b/src/crystallization/VectorMultiColvar.cpp
index f6fbcef5b1..b4bf5f5208 100644
--- a/src/crystallization/VectorMultiColvar.cpp
+++ b/src/crystallization/VectorMultiColvar.cpp
@@ -26,7 +26,7 @@ namespace PLMD {
namespace crystallization {
void VectorMultiColvar::registerKeywords( Keywords& keys ){
- MultiColvar::registerKeywords( keys );
+ MultiColvarBase::registerKeywords( keys );
keys.setComponentsIntroduction("When the label of this action is used as the input for a second you are not referring to a scalar quantity as you are in "
"regular collective variables. The label is used to reference the full set of vectors calculated by "
"the action. This is usual when using \\ref multicolvarfunction. Generally when doing this the previously calculated "
diff --git a/src/multicolvar/Torsions.cpp b/src/multicolvar/Torsions.cpp
index 6143fe6f75..f182c5ee65 100644
--- a/src/multicolvar/Torsions.cpp
+++ b/src/multicolvar/Torsions.cpp
@@ -85,7 +85,7 @@ PLUMED_REGISTER_ACTION(Torsions,"TORSIONS")
void Torsions::registerKeywords( Keywords& keys ){
MultiColvarBase::registerKeywords( keys );
- keys.reserve("numbered","ATOMS","the atoms involved in each of the torsion angles you wish to calculate. "
+ keys.add("numbered","ATOMS","the atoms involved in each of the torsion angles you wish to calculate. "
"Keywords like ATOMS1, ATOMS2, ATOMS3,... should be listed and one torsion will be "
"calculated for each ATOM keyword you specify (all ATOM keywords should "
"provide the indices of four atoms). The eventual number of quantities calculated by this "
diff --git a/src/pamm/HBPammHydrogens.cpp b/src/pamm/HBPammHydrogens.cpp
index 0e726936c0..bb13b3477f 100644
--- a/src/pamm/HBPammHydrogens.cpp
+++ b/src/pamm/HBPammHydrogens.cpp
@@ -19,7 +19,7 @@
You should have received a copy of the GNU Lesser General Public License
along with plumed. If not, see .
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
-#include "multicolvar/MultiColvar.h"
+#include "multicolvar/MultiColvarBase.h"
#include "HBPammObject.h"
#include "tools/NeighborList.h"
#include "core/ActionRegister.h"
@@ -43,7 +43,7 @@ Number of HBPAMM hydrogen bonds formed by each hydrogen atom in the system
//+ENDPLUMEDOC
-class HBPammHydrogens : public multicolvar::MultiColvar {
+class HBPammHydrogens : public multicolvar::MultiColvarBase {
private:
double rcut2;
unsigned block1upper,block2lower;
@@ -60,7 +60,7 @@ class HBPammHydrogens : public multicolvar::MultiColvar {
PLUMED_REGISTER_ACTION(HBPammHydrogens,"HBPAMM_SH")
void HBPammHydrogens::registerKeywords( Keywords& keys ){
- multicolvar::MultiColvar::registerKeywords( keys );
+ multicolvar::MultiColvarBase::registerKeywords( keys );
keys.add("atoms-1","HYDROGENS","The list of hydrogen atoms that can form part of a hydrogen bond. The atoms must be specified using a comma separated list.");
keys.add("atoms-1","SITES","The list of atoms which can be part of a hydrogen bond. When this command is used the set of atoms that can donate a "
"hydrogen bond is assumed to be the same as the set of atoms that can form hydrogen bonds. The atoms involved must be specified"
@@ -88,7 +88,8 @@ void HBPammHydrogens::registerKeywords( Keywords& keys ){
}
HBPammHydrogens::HBPammHydrogens(const ActionOptions&ao):
-PLUMED_MULTICOLVAR_INIT(ao)
+Action(ao),
+MultiColvarBase(ao)
{
// Read in the atoms
usespecies=true; weightHasDerivatives=false;
diff --git a/src/pamm/PAMM.cpp b/src/pamm/PAMM.cpp
index b61967d2a7..1387ff19c0 100644
--- a/src/pamm/PAMM.cpp
+++ b/src/pamm/PAMM.cpp
@@ -22,7 +22,8 @@
#include "core/ActionRegister.h"
#include "tools/KernelFunctions.h"
#include "tools/IFile.h"
-#include "multicolvar/MultiColvarFunction.h"
+#include "multicolvar/MultiColvarBase.h"
+#include "multicolvar/AtomValuePack.h"
#include "PammObject.h"
//+PLUMEDOC MCOLVARF PAMM
@@ -107,7 +108,7 @@ and compute these PAMM variables and we can transform the PAMM variables themsel
namespace PLMD {
namespace pamm {
-class PAMM : public multicolvar::MultiColvarFunction {
+class PAMM : public multicolvar::MultiColvarBase {
private:
PammObject mypamm;
public:
@@ -128,7 +129,8 @@ class PAMM : public multicolvar::MultiColvarFunction {
PLUMED_REGISTER_ACTION(PAMM,"PAMM")
void PAMM::registerKeywords( Keywords& keys ){
- MultiColvarFunction::registerKeywords( keys );
+ MultiColvarBase::registerKeywords( keys );
+ keys.add("compulsory","DATA","the multicolvars from which the pamm coordinates are calculated");
keys.add("compulsory","CLUSTERS","the name of the file that contains the definitions of all the clusters");
keys.add("compulsory","REGULARISE","0.001","don't allow the denominator to be smaller then this value");
keys.use("MEAN"); keys.use("MORE_THAN"); keys.use("SUM"); keys.use("LESS_THAN"); keys.use("HISTOGRAM"); keys.use("HISTOGRAM");
@@ -153,8 +155,10 @@ void PAMM::registerKeywords( Keywords& keys ){
PAMM::PAMM(const ActionOptions& ao):
Action(ao),
-MultiColvarFunction(ao)
+MultiColvarBase(ao)
{
+ // This builds the lists
+ buildSets();
// Check for reasonable input
for(unsigned i=0;igetNumberOfQuantities()!=2 ) error("cannot use PAMM with " + getBaseMultiColvar(i)->getName() );
@@ -175,8 +179,6 @@ MultiColvarFunction(ao)
std::string errorstr, filename; parse("CLUSTERS",filename);
mypamm.setup( filename, regulariser, valnames, pbc, min, max, errorstr );
if( errorstr.length()>0 ) error( errorstr );
- // This builds the lists
- buildSets();
}
unsigned PAMM::getNumberOfQuantities() const {