Index: src/Fragmentation/Summation/Containers/GridDownsampler.cpp
===================================================================
--- src/Fragmentation/Summation/Containers/GridDownsampler.cpp	(revision 11edf00b23ebb14b81231c0858f1653ee9c1f057)
+++ src/Fragmentation/Summation/Containers/GridDownsampler.cpp	(revision 11edf00b23ebb14b81231c0858f1653ee9c1f057)
@@ -0,0 +1,57 @@
+/*
+ * Project: MoleCuilder
+ * Description: creates and alters molecular systems
+ * Copyright (C)  2016 Frederik Heber. All rights reserved.
+ *
+ *
+ *   This file is part of MoleCuilder.
+ *
+ *    MoleCuilder is free software: you can redistribute it and/or modify
+ *    it under the terms of the GNU General Public License as published by
+ *    the Free Software Foundation, either version 2 of the License, or
+ *    (at your option) any later version.
+ *
+ *    MoleCuilder is distributed in the hope that it will be useful,
+ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *    GNU General Public License for more details.
+ *
+ *    You should have received a copy of the GNU General Public License
+ *    along with MoleCuilder.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/*
+ * GridDownsampler.cpp
+ *
+ *  Created on: Jun 9, 2016
+ *      Author: heber
+ */
+
+
+// include config.h
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include "CodePatterns/MemDebug.hpp"
+
+#include "GridDownsampler.hpp"
+
+#include "CodePatterns/Log.hpp"
+
+#include "Fragmentation/Summation/SetValues/SamplingGridProperties.hpp"
+
+void GridDownsampler::downsample(
+    const std::map<JobId_t, MPQCData> &_shortrangedata,
+    const SamplingGridProperties &_domain,
+    std::map<JobId_t, MPQCData> &_shortrangedata_downsampled
+    )
+{
+  for (std::map<JobId_t, MPQCData>::const_iterator iter = _shortrangedata.begin();
+      iter != _shortrangedata.end(); ++iter) {
+    LOG(2, "INFO: Downsampling charge data from job " << iter->first);
+    MPQCData downsampled(_domain);
+    MPQCData::assignWithDownsampledGrid(downsampled, iter->second);
+    _shortrangedata_downsampled.insert( std::make_pair( iter->first, downsampled ) );
+  }
+}
Index: src/Fragmentation/Summation/Containers/GridDownsampler.hpp
===================================================================
--- src/Fragmentation/Summation/Containers/GridDownsampler.hpp	(revision 11edf00b23ebb14b81231c0858f1653ee9c1f057)
+++ src/Fragmentation/Summation/Containers/GridDownsampler.hpp	(revision 11edf00b23ebb14b81231c0858f1653ee9c1f057)
@@ -0,0 +1,38 @@
+/*
+ * GridDownsampler.hpp
+ *
+ *  Created on: Jun 9, 2016
+ *      Author: heber
+ */
+
+
+#ifndef GRIDDOWNSAMPLER_HPP_
+#define GRIDDOWNSAMPLER_HPP_
+
+// include config.h
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <map>
+
+#include "JobMarket/types.hpp"
+
+#include "Fragmentation/Summation/Containers/MPQCData.hpp"
+
+class SamplingGridProperties;
+
+/** This is a functor that allows easy downsampling of a set of grids contained in
+ * MPQC instances.
+ */
+struct GridDownsampler
+{
+  static void downsample(
+      const std::map<JobId_t, MPQCData> &_shortrangedata,
+      const SamplingGridProperties &_domain,
+      std::map<JobId_t, MPQCData> &_shortrangedata_downsampled
+      );
+};
+
+
+#endif /* GRIDDOWNSAMPLER_HPP_ */
Index: src/Fragmentation/Summation/Containers/Makefile.am
===================================================================
--- src/Fragmentation/Summation/Containers/Makefile.am	(revision 2ebfd7fbc13131bcb27311cc3aaaf95d4e0c3d4a)
+++ src/Fragmentation/Summation/Containers/Makefile.am	(revision 11edf00b23ebb14b81231c0858f1653ee9c1f057)
@@ -13,4 +13,5 @@
 FRAGMENTATIONCONTAINERSOURCE += \
 	Fragmentation/Summation/Containers/FragmentationLongRangeResults.cpp \
+	Fragmentation/Summation/Containers/GridDownsampler.cpp \
 	Fragmentation/Summation/Containers/VMGData.cpp
 endif
@@ -32,4 +33,5 @@
 FRAGMENTATIONCONTAINERHEADER += \
 	Fragmentation/Summation/Containers/FragmentationLongRangeResults.hpp \
+	Fragmentation/Summation/Containers/GridDownsampler.hpp \
 	Fragmentation/Summation/Containers/VMGData.hpp \
 	Fragmentation/Summation/Containers/VMGDataFused.hpp \
