/* * MPQCJob.hpp * * Created on: Jul 10, 2012 * Author: heber */ #ifndef MPQCJOB_HPP_ #define MPQCJOB_HPP_ // include config.h #ifdef HAVE_CONFIG_H #include #endif #include "boost/serialization/export.hpp" #ifdef HAVE_JOBMARKET #include "JobMarket/Jobs/FragmentJob.hpp" #else #include "Jobs/JobMarket/FragmentJob.hpp" #endif #include "Fragmentation/Summation/SetValues/SamplingGridProperties.hpp" #include "Fragmentation/Summation/Containers/MPQCData.hpp" #include /** This class encapsulates a MPQC Job. * */ class MPQCJob : public FragmentJob { public: MPQCJob( const JobId_t _JobId, const std::string &_inputfile, const double _begin[NDIM], const double _end[NDIM], const int _level); virtual ~MPQCJob(); FragmentResult::ptr Work(); //!> whether to actually sample the density MPQCData::DoLongrange_t DoLongrange; //!> whether to sample just the valence or the total electron and nuclei density MPQCData::DoValenceOnly_t DoValenceOnly; private: //!> contents of inputfile const std::string inputfile; //!> information for how to sample the density const SamplingGridProperties grid; private: /** private default cstor for serialization only */ MPQCJob(); friend class boost::serialization::access; // serialization template void serialize(Archive& ar, const unsigned int version) { ar & boost::serialization::base_object(*this); ar & DoLongrange; ar & DoValenceOnly; ar & const_cast(inputfile); ar & const_cast(grid); } }; // we need to give this class a unique key for serialization // its is only serialized through its base class FragmentJob BOOST_CLASS_EXPORT_KEY(MPQCJob) #endif /* MPQCJOB_HPP_ */