Index: src/Actions/FragmentationAction/FragmentationAutomationAction.cpp
===================================================================
--- src/Actions/FragmentationAction/FragmentationAutomationAction.cpp	(revision 67fec1f0516fdf2281ae25b110de4eb02240e94a)
+++ src/Actions/FragmentationAction/FragmentationAutomationAction.cpp	(revision cd2591cc2d151041e4a7f97421983ac4ccad8db0)
@@ -432,8 +432,11 @@
     // Phase Five: create VMGJobs
     const size_t near_field_cells = params.near_field_cells.get();
+    const size_t interpolation_degree = params.interpolation_degree.get();
     if (!vmgcontroller.createLongRangeJobs(
         fragmentData,
         full_sample,
-        summedChargeDensity.getFragment(), near_field_cells))
+        summedChargeDensity.getFragment(),
+        near_field_cells,
+        interpolation_degree))
       return Action::failure;
 
Index: src/Actions/FragmentationAction/FragmentationAutomationAction.def
===================================================================
--- src/Actions/FragmentationAction/FragmentationAutomationAction.def	(revision 67fec1f0516fdf2281ae25b110de4eb02240e94a)
+++ src/Actions/FragmentationAction/FragmentationAutomationAction.def	(revision cd2591cc2d151041e4a7f97421983ac4ccad8db0)
@@ -21,9 +21,9 @@
 // ValueStorage by the token "Z" -> first column: int, Z, "Z"
 // "undefine" if no parameters are required, use (NOPARAM_DEFAULT) for each (undefined) default value
-#define paramtypes (std::vector< boost::filesystem::path >)(std::string)(std::string)(std::string)(boost::filesystem::path)(unsigned int)(unsigned int)(bool)
-#define paramtokens ("fragment-jobs")("fragment-path")("server-address")("server-port")("fragment-executable")("grid-level")("near-field-cells")("DoLongrange")
-#define paramdescriptions ("vector of fragment files")("prefix of each fragment file")("hostname of server")("controller port of server")("executable to launch on clients")("resolution of multigrid")("number of cells used in smearing out core charge")("whether to calculate long-range contributions")
-#define paramdefaults (NOPARAM_DEFAULT)(NOPARAM_DEFAULT)(PARAM_DEFAULT("127.0.0.1"))(PARAM_DEFAULT("1026"))(NOPARAM_DEFAULT)(PARAM_DEFAULT(5))(PARAM_DEFAULT(5))(PARAM_DEFAULT("0"))
-#define paramreferences (jobfiles)(path)(host)(port)(executable)(level)(near_field_cells)(DoLongrange)
+#define paramtypes (std::vector< boost::filesystem::path >)(std::string)(std::string)(std::string)(boost::filesystem::path)(unsigned int)(unsigned int)(unsigned int)(bool)
+#define paramtokens ("fragment-jobs")("fragment-path")("server-address")("server-port")("fragment-executable")("grid-level")("near-field-cells")("interpolation-degree")("DoLongrange")
+#define paramdescriptions ("vector of fragment files")("prefix of each fragment file")("hostname of server")("controller port of server")("executable to launch on clients")("resolution of multigrid")("number of cells used in smearing out core charge")("interpolation degree for getting the nuclei potential from the grid")("whether to calculate long-range contributions")
+#define paramdefaults (NOPARAM_DEFAULT)(NOPARAM_DEFAULT)(PARAM_DEFAULT("127.0.0.1"))(PARAM_DEFAULT("1026"))(NOPARAM_DEFAULT)(PARAM_DEFAULT(5))(PARAM_DEFAULT(3))(PARAM_DEFAULT(3))(PARAM_DEFAULT("0"))
+#define paramreferences (jobfiles)(path)(host)(port)(executable)(level)(near_field_cells)(interpolation_degree)(DoLongrange)
 #define paramvalids \
 (STLVectorValidator< std::vector< boost::filesystem::path > >(ParserFileValidator() && FilePresentValidator())) \
@@ -33,5 +33,6 @@
 (DummyValidator< boost::filesystem::path >()) \
 (RangeValidator< unsigned int >(1, 10)) \
-(RangeValidator< unsigned int >(0, 20)) \
+(RangeValidator< unsigned int >(1, 20)) \
+(RangeValidator< unsigned int >(1, 10)) \
 (DummyValidator< bool >())
 
Index: src/Fragmentation/Automation/VMGFragmentController.cpp
===================================================================
--- src/Fragmentation/Automation/VMGFragmentController.cpp	(revision 67fec1f0516fdf2281ae25b110de4eb02240e94a)
+++ src/Fragmentation/Automation/VMGFragmentController.cpp	(revision cd2591cc2d151041e4a7f97421983ac4ccad8db0)
@@ -52,5 +52,6 @@
     const std::vector<SamplingGrid> &full_sampled_grid,
     const Fragment &full_fragment,
-    const size_t near_field_cells)
+    const size_t near_field_cells,
+    const size_t interpolation_degree)
 {
   std::vector<FragmentJob::ptr> jobs;
@@ -64,5 +65,5 @@
         << " gridpoints and " << data.charges.size() << " particle charges.");
     FragmentJob::ptr testJob(
-        new VMGJob(next_id, data.sampled_grid, data.positions, data.charges, near_field_cells) );
+        new VMGJob(next_id, data.sampled_grid, data.positions, data.charges, near_field_cells, interpolation_degree) );
     jobs.push_back(testJob);
   }
@@ -92,5 +93,5 @@
         << " gridpoints and " << charges.size() << " particle charges.");
     FragmentJob::ptr testJob(
-        new VMGJob(next_id, *iter, positions, charges, near_field_cells) );
+        new VMGJob(next_id, *iter, positions, charges, near_field_cells, interpolation_degree) );
     jobs.push_back(testJob);
   }
Index: src/Fragmentation/Automation/VMGFragmentController.hpp
===================================================================
--- src/Fragmentation/Automation/VMGFragmentController.hpp	(revision 67fec1f0516fdf2281ae25b110de4eb02240e94a)
+++ src/Fragmentation/Automation/VMGFragmentController.hpp	(revision cd2591cc2d151041e4a7f97421983ac4ccad8db0)
@@ -43,5 +43,6 @@
       const std::vector<SamplingGrid> &full_sampled_grid,
       const Fragment &full_fragment,
-      const size_t near_field_cells);
+      const size_t near_field_cells,
+      const size_t interpolation_degree);
   void getResults(std::map<JobId_t, VMGData> &fragmentData) {
     SpecificFragmentController::getResults<VMGData>(fragmentData);
Index: src/Jobs/VMGJob.cpp
===================================================================
--- src/Jobs/VMGJob.cpp	(revision 67fec1f0516fdf2281ae25b110de4eb02240e94a)
+++ src/Jobs/VMGJob.cpp	(revision cd2591cc2d151041e4a7f97421983ac4ccad8db0)
@@ -81,5 +81,6 @@
     const std::vector< std::vector< double > > &_particle_positions,
     const std::vector< double > &_particle_charges,
-    const size_t _near_field_cells) :
+    const size_t _near_field_cells,
+    const size_t _interpolation_degree) :
   FragmentJob(_JobId),
   density_grid(_density_grid),
@@ -87,4 +88,5 @@
   particle_charges(_particle_charges),
   near_field_cells(_near_field_cells),
+  interpolation_degree(_interpolation_degree),
   returndata(static_cast<const SamplingGridProperties &>(_density_grid)),
   num_particles(0),
@@ -97,5 +99,6 @@
 VMGJob::VMGJob() :
   FragmentJob(JobId::IllegalJob),
-  near_field_cells(5),
+  near_field_cells(3),
+  interpolation_degree(3),
   num_particles(0),
   f(NULL),
@@ -218,5 +221,5 @@
   new ObjectStorage<int>("MAX_ITERATION", 15);
   new ObjectStorage<int>("PARTICLE_NEAR_FIELD_CELLS", near_field_cells);
-  new ObjectStorage<int>("PARTICLE_INTERPOLATION_DEGREE", 3);
+  new ObjectStorage<int>("PARTICLE_INTERPOLATION_DEGREE", interpolation_degree);
 
   // first initialize f,x,p,q,... from STL vectors
Index: src/Jobs/VMGJob.hpp
===================================================================
--- src/Jobs/VMGJob.hpp	(revision 67fec1f0516fdf2281ae25b110de4eb02240e94a)
+++ src/Jobs/VMGJob.hpp	(revision cd2591cc2d151041e4a7f97421983ac4ccad8db0)
@@ -40,4 +40,6 @@
    * @param _particle_charges charges per nuclei
    * @param _near_field_cells number of grid-points used to smear our nuclei charge
+   * @param _interpolation_degree degree of interpolation polynomial for getting nuclei
+   *        potential from grid
    */
   VMGJob(const JobId_t _JobId,
@@ -45,5 +47,7 @@
       const std::vector< std::vector< double > > &_particle_positions,
       const std::vector< double > &_particle_charges,
-      const size_t _near_field_cells);
+      const size_t _near_field_cells,
+      const size_t _interpolation_degree
+      );
   virtual ~VMGJob();
 
@@ -64,4 +68,6 @@
   //!> near field cells used in smearing out core charge density
   const size_t near_field_cells;
+  //!> interpolation degree used in sampling the potential of the nuclei
+  const size_t interpolation_degree;
 
 private:
@@ -95,4 +101,5 @@
     ar & const_cast< std::vector< double > &>(particle_charges);
     ar & const_cast< size_t &>(near_field_cells);
+    ar & const_cast< size_t &>(interpolation_degree);
     ar & returndata;
   }
