19#ifndef OBSERVABLES_FLUXDENSITYPROFILE_HPP
20#define OBSERVABLES_FLUXDENSITYPROFILE_HPP
25#include "system/System.hpp"
38 std::vector<std::size_t>
shape()
const override {
40 return {b[0], b[1], b[2], 3};
47 using pos_type =
decltype(
traits.position(std::declval<Particle>()));
48 using vel_type =
decltype(
traits.velocity(std::declval<Particle>()));
56 for (
auto const &p : local_particles) {
58 box_geo.folded_position(
traits.position(p)));
65 if (comm.rank() != 0) {
std::vector< std::size_t > shape() const override
std::vector< double > evaluate(boost::mpi::communicator const &comm, ParticleReferenceRange const &local_particles, const ParticleObservables::traits< Particle > &traits) 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