21#ifndef ESPRESSO_CORE_P3M_SEND_MESH_HPP
22#define ESPRESSO_CORE_P3M_SEND_MESH_HPP
26#if defined(P3M) || defined(DP3M)
33#include <boost/mpi/communicator.hpp>
64 std::vector<double> send_grid;
66 std::vector<double> recv_grid;
69 void resize(
const boost::mpi::communicator &comm,
72 const boost::mpi::communicator &comm,
74 void gather_grid(
double *mesh,
const boost::mpi::communicator &comm,
79 const boost::mpi::communicator &comm,
81 void spread_grid(
double *mesh,
const boost::mpi::communicator &comm,
Vector implementation and trait types for boost qvm interoperability.
A stripped-down version of std::span from C++17.
Structure for send/recv meshes.
void spread_grid(Utils::Span< double * > meshes, const boost::mpi::communicator &comm, const Utils::Vector3i &dim)
void resize(const boost::mpi::communicator &comm, const P3MLocalMesh &local_mesh)
void gather_grid(Utils::Span< double * > meshes, const boost::mpi::communicator &comm, const Utils::Vector3i &dim)
void spread_grid(double *mesh, const boost::mpi::communicator &comm, const Utils::Vector3i &dim)
void gather_grid(double *mesh, const boost::mpi::communicator &comm, const Utils::Vector3i &dim)
Common functions for dipolar and charge P3M.
This file contains the defaults for ESPResSo.
DEVICE_QUALIFIER constexpr Span< T > make_span(T *p, std::size_t N)
Structure for local mesh parameters.