/** * @file interface_particles.hpp * @author Julian Iseringhausen * @date Tue Apr 12 17:40:36 2011 * * @brief Interface for computing forces and energies in * particle systems. * */ #ifndef INTERFACE_PARTICLES_HPP #define INTERFACE_PARTIVLES_HPP #include #include "base/has_tempgrids.hpp" #include "base/linked_cell_list.hpp" #include "base/particle.hpp" #include "comm/mpi/has_request_vec.hpp" #include "interface/interface.hpp" #include "samples/bspline.hpp" namespace VMG { class Grid; class Multigrid; class InterfaceParticles : public Interface, public HasTempGrids, public HasRequestVec { public: InterfaceParticles(const Boundary& boundary, const int& levelMin, const int& levelMax, const Vector& box_offset, const vmg_float& box_size, const int& near_field_cells) : Interface(boundary, levelMin, levelMax, box_offset, box_size, 0, 1.0), HasTempGrids(), HasRequestVec(), spl((near_field_cells+0.5)*Extent(MaxLevel()).MeshWidth().Max()) {} void ImportRightHandSide(Multigrid& multigrid); void ExportSolution(Grid& grid); protected: BSpline spl; private: std::list particles; }; } #endif /* INTERFACE_PARTICLES_HPP */