Index: src/LevMartester.cpp
===================================================================
--- src/LevMartester.cpp	(revision 69b30a9d9f057d2a0dd7409379b9e1bfb5108c94)
+++ src/LevMartester.cpp	(revision 40fff17948f9ae794ea4b497539ca304238fc8b4)
@@ -63,5 +63,5 @@
 #include "Helpers/defs.hpp"
 #include "Potentials/Specifics/PairPotential_Morse.hpp"
-#include "Potentials/Specifics/ManyBodyPotential_Tersoff.hpp"
+#include "Potentials/Specifics/SaturationPotential.hpp"
 
 namespace po = boost::program_options;
@@ -330,6 +330,6 @@
   }
 
-  /******************* TERSOFF TRAINING *******************/
-  FunctionModel::parameters_t params(ManyBodyPotential_Tersoff::MAXPARAMS, 0.);
+  /******************* SATURATION TRAINING *******************/
+  FunctionModel::parameters_t params(SaturationPotential::MAXPARAMS, 0.);
   {
     // then we ought to pick the right HomologyGraph ...
@@ -376,22 +376,9 @@
         boost::bind(&getTripleFromArgument, DistanceEnergyVector.first, _1, _2);
     srand((unsigned)time(0)); // seed with current time
-//    params[ManyBodyPotential_Tersoff::R] = 1./AtomicLengthToAngstroem;
-//    params[ManyBodyPotential_Tersoff::S] = 2./AtomicLengthToAngstroem;
-    params[ManyBodyPotential_Tersoff::A] = 1e+4*rand()/(double)RAND_MAX;//1.393600e+03;
-    params[ManyBodyPotential_Tersoff::B] = 1e+4*rand()/(double)RAND_MAX;//3.467000e+02;
-    params[ManyBodyPotential_Tersoff::lambda] = 1e+1*rand()/(double)RAND_MAX;//3.487900e+00;
-    params[ManyBodyPotential_Tersoff::mu] = 1e+1*rand()/(double)RAND_MAX;//2.211900e+00;
-//    params[ManyBodyPotential_Tersoff::lambda3] = 0.;
-//    params[ManyBodyPotential_Tersoff::alpha] = 0.;
-    params[ManyBodyPotential_Tersoff::beta] = 1e-1*rand()/(double)RAND_MAX;//1.572400e-07;
-//    params[ManyBodyPotential_Tersoff::chi] = 1.;
-//    params[ManyBodyPotential_Tersoff::omega] = 1.;
-    params[ManyBodyPotential_Tersoff::n] = 1e+1*rand()/(double)RAND_MAX;//7.275100e-01;
-    params[ManyBodyPotential_Tersoff::c] = 1e+1*rand()/(double)RAND_MAX;//3.804900e+04;
-    params[ManyBodyPotential_Tersoff::d] = 1e+1*rand()/(double)RAND_MAX;//4.384000e+00;
-    params[ManyBodyPotential_Tersoff::h] = 1e+1*rand()/(double)RAND_MAX;//-5.705800e-01;
-    ManyBodyPotential_Tersoff tersoff(triplefunction);
-    tersoff.setParameters(params);
-    FunctionModel &model = tersoff;
+    LOG(0, "INFO: Initial parameters are " << params << ".");
+
+    SaturationPotential saturation(triplefunction);
+    saturation.setParameters(params);
+    FunctionModel &model = saturation;
     FunctionApproximation approximator(
         DistanceEnergyVector.first.begin()->size(), 
@@ -403,22 +390,24 @@
     else
       ELOG(0, "We require parameter derivatives for a box constraint minimization.");
+
     params = model.getParameters();
 
     LOG(0, "RESULT: Best parameters are " << params << ".");
 
-    std::cout << "\ttersoffparticle:";
-    std::cout << "\tparticle_type=C,";
-    std::cout << "\tA=" << params[ManyBodyPotential_Tersoff::A] << ",";
-    std::cout << "\tB=" << params[ManyBodyPotential_Tersoff::B] << ",";
-    std::cout << "\tlambda=" << params[ManyBodyPotential_Tersoff::lambda] << ",";
-    std::cout << "\tmu=" << params[ManyBodyPotential_Tersoff::mu] << ",";
-    std::cout << "\tbeta=" << params[ManyBodyPotential_Tersoff::beta] << ",";
-    std::cout << "\tn=" << params[ManyBodyPotential_Tersoff::n] << ",";
-    std::cout << "\tc=" << params[ManyBodyPotential_Tersoff::c] << ",";
-    std::cout << "\td=" << params[ManyBodyPotential_Tersoff::d] << ",";
-    std::cout << "\th=" << params[ManyBodyPotential_Tersoff::h] << ",";
-    std::cout << "\tR=" << tersoff.R << ",";
-    std::cout << "\tS=" << tersoff.S << ";";
-    std::cout << std::endl;
+//    std::cout << "\tsaturationparticle:";
+//    std::cout << "\tparticle_type=C,";
+//    std::cout << "\tA=" << params[SaturationPotential::A] << ",";
+//    std::cout << "\tB=" << params[SaturationPotential::B] << ",";
+//    std::cout << "\tlambda=" << params[SaturationPotential::lambda] << ",";
+//    std::cout << "\tmu=" << params[SaturationPotential::mu] << ",";
+//    std::cout << "\tbeta=" << params[SaturationPotential::beta] << ",";
+//    std::cout << "\tn=" << params[SaturationPotential::n] << ",";
+//    std::cout << "\tc=" << params[SaturationPotential::c] << ",";
+//    std::cout << "\td=" << params[SaturationPotential::d] << ",";
+//    std::cout << "\th=" << params[SaturationPotential::h] << ",";
+////    std::cout << "\toffset=" << params[SaturationPotential::offset] << ",";
+//    std::cout << "\tR=" << saturation.R << ",";
+//    std::cout << "\tS=" << saturation.S << ";";
+//    std::cout << std::endl;
 
     // check L2 and Lmax error against training set
