State long-term support of old-style walls without deprecating them 70/4570/2
authorGiacomo Fiorin <giacomo.fiorin@gmail.com>
Thu, 13 Sep 2018 13:52:13 +0000 (09:52 -0400)
committerDavid Hardy <dhardy@ks.uiuc.edu>
Fri, 14 Sep 2018 22:20:46 +0000 (17:20 -0500)
This change reaffirms the commitment to support old-style keywords as
short-hands for the more flexible harmonicWalls (which is their backend
anyway).  Those keywords are now called "legacy", but not "deprecated".

Using the lower and upper boundaries as default values for the walls is
deprecated explicitly (i.e. "will be removed in the next release").

Because there is no functionality change (only output messages are revised),
the Colvars version string is not being updated.  This will also avoid merge
conflicts with other commits currently pending.

Change-Id: If00bfce90877573896ea0f879fc0ebc74fa31012

colvars/src/colvar.cpp

index 43deef3..a450612 100644 (file)
@@ -455,36 +455,42 @@ int colvar::init_grid_parameters(std::string const &conf)
   }
 
   lower_boundary.type(value());
-
   upper_boundary.type(value());
-  upper_wall.type(value());
 
   if (is_enabled(f_cv_scalar)) {
 
     if (get_keyval(conf, "lowerBoundary", lower_boundary, lower_boundary)) {
       enable(f_cv_lower_boundary);
     }
-    std::string lw_conf, uw_conf;
 
-    if (get_keyval(conf, "lowerWallConstant", lower_wall_k, 0.0, parse_silent)) {
-      cvm::log("Warning: lowerWallConstant and lowerWall are deprecated, "
-               "please define a harmonicWalls bias instead.\n");
+    if (get_keyval(conf, "upperBoundary", upper_boundary, upper_boundary)) {
+      enable(f_cv_upper_boundary);
+    }
+
+    std::string lw_conf, uw_conf;
+    if (get_keyval(conf, "lowerWallConstant", lower_wall_k, 0.0,
+                   parse_silent)) {
+      cvm::log("Reading legacy options lowerWall and lowerWallConstant: "
+               "consider using a harmonicWalls restraint.\n");
       lower_wall.type(value());
-      get_keyval(conf, "lowerWall", lower_wall, lower_boundary);
+      if (!get_keyval(conf, "lowerWall", lower_wall, lower_boundary)) {
+        cvm::log("Warning: lowerWall will need to be "
+                 "defined explicitly in the next release.\n");
+      }
       lw_conf = std::string("\n\
     lowerWallConstant "+cvm::to_str(lower_wall_k*width*width)+"\n\
     lowerWalls "+cvm::to_str(lower_wall)+"\n");
     }
 
-    if (get_keyval(conf, "upperBoundary", upper_boundary, upper_boundary)) {
-      enable(f_cv_upper_boundary);
-    }
-
-    if (get_keyval(conf, "upperWallConstant", upper_wall_k, 0.0, parse_silent)) {
-      cvm::log("Warning: upperWallConstant and upperWall are deprecated, "
-               "please define a harmonicWalls bias instead.\n");
+    if (get_keyval(conf, "upperWallConstant", upper_wall_k, 0.0,
+                   parse_silent)) {
+      cvm::log("Reading legacy options upperWall and upperWallConstant: "
+               "consider using a harmonicWalls restraint.\n");
       upper_wall.type(value());
-      get_keyval(conf, "upperWall", upper_wall, upper_boundary);
+      if (!get_keyval(conf, "upperWall", upper_wall, upper_boundary)) {
+        cvm::log("Warning: upperWall will need to be "
+                 "defined explicitly in the next release.\n");
+      }
       uw_conf = std::string("\n\
     upperWallConstant "+cvm::to_str(upper_wall_k*width*width)+"\n\
     upperWalls "+cvm::to_str(upper_wall)+"\n");