19#ifndef OBSERVABLES_FORCEDENSITYPROFILE_HPP
20#define OBSERVABLES_FORCEDENSITYPROFILE_HPP
25#include "system/System.hpp"
30#include <boost/mpi/collectives/gather.hpp>
31#include <boost/serialization/vector.hpp>
42 std::vector<std::size_t>
shape()
const override {
44 return {b[0], b[1], b[2], 3};
51 using pos_type =
decltype(
traits.position(std::declval<Particle>()));
60 for (
auto const &p : local_particles) {
62 box_geo.folded_position(
traits.position(p)));
69 if (comm.rank() != 0) {
std::vector< double > evaluate(boost::mpi::communicator const &comm, ParticleReferenceRange const &local_particles, const ParticleObservables::traits< Particle > &traits) const override
std::vector< std::size_t > shape() const override
PidProfileObservable(std::vector< int > const &ids, int n_x_bins, int n_y_bins, int n_z_bins, double min_x, double max_x, double min_y, double max_y, double min_z, double max_z)
std::shared_ptr< BoxGeometry > box_geo
Histogram in Cartesian coordinates.
cudaStream_t stream[1]
CUDA streams for parallel computing on CPU and GPU.
std::vector< std::reference_wrapper< Particle const > > ParticleReferenceRange