Index: src/Actions/FragmentationAction/FragmentationAutomationAction.cpp
===================================================================
--- src/Actions/FragmentationAction/FragmentationAutomationAction.cpp	(revision 758e56a80af32184c09fb482a0b9e0072ce4e5a6)
+++ src/Actions/FragmentationAction/FragmentationAutomationAction.cpp	(revision 0655742262dfa8dd58ce4c44e738fe5208a3c4f5)
@@ -595,4 +595,5 @@
   mpqccontroller.setHost(params.host.get());
   mpqccontroller.setPort(params.port.get());
+  mpqccontroller.setLevel(params.level.get());
   VMGFragmentController vmgcontroller(io_service);
   vmgcontroller.setHost(params.host.get());
@@ -633,5 +634,6 @@
 
   // Phase Five: create VMGJobs
-  if (!vmgcontroller.createLongRangeJobs(fragmentData, full_sample, full_fragment))
+  const size_t near_field_cells = params.near_field_cells.get();
+  if (!vmgcontroller.createLongRangeJobs(fragmentData, full_sample, full_fragment, near_field_cells))
     return Action::failure;
 
Index: src/Actions/FragmentationAction/FragmentationAutomationAction.def
===================================================================
--- src/Actions/FragmentationAction/FragmentationAutomationAction.def	(revision 758e56a80af32184c09fb482a0b9e0072ce4e5a6)
+++ src/Actions/FragmentationAction/FragmentationAutomationAction.def	(revision 0655742262dfa8dd58ce4c44e738fe5208a3c4f5)
@@ -13,4 +13,5 @@
 #include "Parameters/Validators/DummyValidator.hpp"
 #include "Parameters/Validators/Ops_Validator.hpp"
+#include "Parameters/Validators/RangeValidator.hpp"
 #include "Parameters/Validators/STLVectorValidator.hpp"
 #include "Parameters/Validators/Specific/ParserFileValidator.hpp"
@@ -20,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)(bool)
-#define paramtokens ("fragment-jobs")("fragment-path")("server-address")("server-port")("fragment-executable")("DoLongrange")
-#define paramdescriptions ("vector of fragment files")("prefix of each fragment file")("hostname of server")("controller port of server")("executable to launch on clients")("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("0"))
-#define paramreferences (jobfiles)(path)(host)(port)(executable)(DoLongrange)
+#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 paramvalids \
 (STLVectorValidator< std::vector< boost::filesystem::path > >(ParserFileValidator() && FilePresentValidator())) \
@@ -31,4 +32,6 @@
 (DummyValidator< std::string >()) \
 (DummyValidator< boost::filesystem::path >()) \
+(RangeValidator< unsigned int >(1, 10)) \
+(RangeValidator< unsigned int >(0, 20)) \
 (DummyValidator< bool >())
 
Index: src/Fragmentation/Automation/MPQCFragmentController.cpp
===================================================================
--- src/Fragmentation/Automation/MPQCFragmentController.cpp	(revision 758e56a80af32184c09fb482a0b9e0072ce4e5a6)
+++ src/Fragmentation/Automation/MPQCFragmentController.cpp	(revision 0655742262dfa8dd58ce4c44e738fe5208a3c4f5)
@@ -48,6 +48,4 @@
 #include "World.hpp"
 
-const int MPQCFragmentController::LEVEL = 5;
-
 bool MPQCFragmentController::addJobsFromFiles(
     const std::string &executable,
@@ -98,5 +96,4 @@
   ASSERT( M.determinant() == size*size*size,
       "parsejob() - current domain matrix "+toString(M)+" is not cubic.");
-  const int level = LEVEL;
   FragmentJob::ptr testJob( new MPQCJob(nextid, output, begin, size, level) );
   jobs.push_back(testJob);
Index: src/Fragmentation/Automation/MPQCFragmentController.hpp
===================================================================
--- src/Fragmentation/Automation/MPQCFragmentController.hpp	(revision 758e56a80af32184c09fb482a0b9e0072ce4e5a6)
+++ src/Fragmentation/Automation/MPQCFragmentController.hpp	(revision 0655742262dfa8dd58ce4c44e738fe5208a3c4f5)
@@ -34,5 +34,6 @@
 public:
   MPQCFragmentController(boost::asio::io_service &io_service) :
-    SpecificFragmentController(io_service)
+    SpecificFragmentController(io_service),
+    level(5)
   {}
   virtual ~MPQCFragmentController()
@@ -46,4 +47,6 @@
   }
 
+  void setLevel(const size_t _level) { level = _level; }
+
 private:
   void parsejob(
@@ -55,5 +58,5 @@
 private:
   //!> resolution of sampled electron density as \f$2^{\text{level}}\f$
-  static const int LEVEL;
+  size_t level;
 };
 
Index: src/Fragmentation/Automation/VMGFragmentController.cpp
===================================================================
--- src/Fragmentation/Automation/VMGFragmentController.cpp	(revision 758e56a80af32184c09fb482a0b9e0072ce4e5a6)
+++ src/Fragmentation/Automation/VMGFragmentController.cpp	(revision 0655742262dfa8dd58ce4c44e738fe5208a3c4f5)
@@ -50,5 +50,6 @@
     const std::map<JobId_t, MPQCData> &fragmentData,
     const SamplingGrid &full_sampled_grid,
-    const Fragment &full_fragment)
+    const Fragment &full_fragment,
+    const size_t near_field_cells)
 {
   std::vector<FragmentJob::ptr> jobs;
@@ -62,5 +63,5 @@
         << " gridpoints and " << data.charges.size() << " particle charges.");
     FragmentJob::ptr testJob(
-        new VMGJob(next_id, data.sampled_grid, data.positions, data.charges) );
+        new VMGJob(next_id, data.sampled_grid, data.positions, data.charges, near_field_cells) );
     jobs.push_back(testJob);
   }
@@ -84,5 +85,5 @@
         << " gridpoints and " << charges.size() << " particle charges.");
     FragmentJob::ptr testJob(
-        new VMGJob(next_id, full_sampled_grid, positions, charges) );
+        new VMGJob(next_id, full_sampled_grid, positions, charges, near_field_cells) );
     jobs.push_back(testJob);
   }
Index: src/Fragmentation/Automation/VMGFragmentController.hpp
===================================================================
--- src/Fragmentation/Automation/VMGFragmentController.hpp	(revision 758e56a80af32184c09fb482a0b9e0072ce4e5a6)
+++ src/Fragmentation/Automation/VMGFragmentController.hpp	(revision 0655742262dfa8dd58ce4c44e738fe5208a3c4f5)
@@ -39,5 +39,6 @@
       const std::map<JobId_t, MPQCData> &fragmentData,
       const SamplingGrid &full_sampled_grid,
-      const Fragment &full_fragment);
+      const Fragment &full_fragment,
+      const size_t near_field_cells);
   void getResults(std::map<JobId_t, VMGData> &fragmentData) {
     SpecificFragmentController::getResults<VMGData>(fragmentData);
Index: src/Jobs/VMGJob.cpp
===================================================================
--- src/Jobs/VMGJob.cpp	(revision 758e56a80af32184c09fb482a0b9e0072ce4e5a6)
+++ src/Jobs/VMGJob.cpp	(revision 0655742262dfa8dd58ce4c44e738fe5208a3c4f5)
@@ -78,14 +78,17 @@
     const SamplingGrid &_density_grid,
     const std::vector< std::vector< double > > &_particle_positions,
-    const std::vector< double > &_particle_charges) :
+    const std::vector< double > &_particle_charges,
+    const size_t _near_field_cells) :
   FragmentJob(_JobId),
   density_grid(_density_grid),
   particle_positions(_particle_positions),
   particle_charges(_particle_charges),
+  near_field_cells(_near_field_cells),
   returndata(static_cast<const SamplingGridProperties &>(_density_grid))
 {}
 
 VMGJob::VMGJob() :
-  FragmentJob(JobId::IllegalJob)
+  FragmentJob(JobId::IllegalJob),
+  near_field_cells(5)
 {}
 
@@ -129,5 +132,4 @@
   // TODO: As a matter of fact should use open boundary conditions
   const Boundary boundary(Periodic, Periodic, Periodic);
-  int near_field_cells = 10;
 
   /*
Index: src/Jobs/VMGJob.hpp
===================================================================
--- src/Jobs/VMGJob.hpp	(revision 758e56a80af32184c09fb482a0b9e0072ce4e5a6)
+++ src/Jobs/VMGJob.hpp	(revision 0655742262dfa8dd58ce4c44e738fe5208a3c4f5)
@@ -36,13 +36,14 @@
    *
    * @param _JobId id of the job
-   * @param _begin offset of the domain
-   * @param _size edge length of the cubic(!) domain
-   * @param _level level is \f$2^{\text{level}}\f$ grid points
-   * @param _sampled_input vector of sampled points of the grid as right-hand side
+   * @param _density_grid sampled electron charge density from short-range solutions
+   * @param _particle_positions position per nuclei
+   * @param _particle_charges charges per nuclei
+   * @param _near_field_cells number of grid-points used to smear our nuclei charge
    */
   VMGJob(const JobId_t _JobId,
       const SamplingGrid &density_grid,
       const std::vector< std::vector< double > > &_particle_positions,
-      const std::vector< double > &_particle_charges);
+      const std::vector< double > &_particle_charges,
+      const size_t _near_field_cells);
   virtual ~VMGJob();
 
@@ -59,4 +60,6 @@
   //!> charges of all nuclei
   const std::vector< double > particle_charges;
+  //!> near field cells used in smearing out core charge density
+  const size_t near_field_cells;
 
 private:
@@ -78,4 +81,5 @@
     ar & const_cast< std::vector< std::vector< double > > &>(particle_positions);
     ar & const_cast< std::vector< double > &>(particle_charges);
+    ar & const_cast< size_t &>(near_field_cells);
     ar & returndata;
   }
Index: tests/Python/AllActions/options.dat
===================================================================
--- tests/Python/AllActions/options.dat	(revision 758e56a80af32184c09fb482a0b9e0072ce4e5a6)
+++ tests/Python/AllActions/options.dat	(revision 0655742262dfa8dd58ce4c44e738fe5208a3c4f5)
@@ -75,4 +75,5 @@
 fragment-molecule	"./"
 fragment-path	"test/"
+grid-level	"5"
 id-mapping	"1"
 input	"test.data"
@@ -86,4 +87,5 @@
 min-distance	"1."
 molecule-by-id	"0"
+near-field-cells	"3"
 nonconvex-envelope	"25"
 nonconvex-file	"NonConvexEnvelope"
