File abstract_vectors_xpu_scatter_device.hpp

This file contains an refined version of the abstract scatter device, used for performing vector based orientationally averaged scattering calculations.

Author

Daniel Vonk dan@danvonk.com

Version

See VERSION in CMakeLists.txt

Copyright

GNU General Public License

class AbstractVectorsXPUScatterDevice : public AbstractXPUScatterDevice
#include <abstract_vectors_xpu_scatter_device.hpp>

Implements control flow for vector based scattering calculations (used for GPU calculation)

Subclassed by SelfVectorsCUDAScatterDevice

Public Functions

AbstractVectorsXPUScatterDevice(boost::mpi::communicator allcomm, boost::mpi::communicator partitioncomm, Sample &sample, std::vector<CartesianCoor3D> &&vectors, size_t NAF, boost::asio::ip::tcp::endpoint fileservice_endpoint, boost::asio::ip::tcp::endpoint monitorservice_endpoint)

Protected Functions

virtual double progress() override
void init_subvectors(CartesianCoor3D &q)
virtual void print_pre_stage_info() override
inline virtual void print_post_stage_info() override
virtual void print_pre_runner_info() override
inline virtual void print_post_runner_info() override

Protected Attributes

size_t NM
std::vector<CartesianCoor3D> subvector_index_
std::atomic<size_t> current_subvector_