File self_vectors_cuda_scatter_device.hpp
This file contains a class which implements the scattering calculation for self scattering.
- Author
Daniel Vonk dan@danvonk.com
- Version
See VERSION in CMakeLists.txt
- Copyright
GNU General Public License
-
class SelfVectorsCUDAScatterDevice : public AbstractVectorsXPUScatterDevice
- #include <self_vectors_cuda_scatter_device.hpp>
Implements self type scattering using vectors for orientational averaging (incoherent scattering) Computes scattering amplitudes a_n(q,t) Alignment by atoms
Public Functions
-
SelfVectorsCUDAScatterDevice(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)
-
SelfVectorsCUDAScatterDevice(const SelfVectorsCUDAScatterDevice &other) = delete
-
SelfVectorsCUDAScatterDevice operator=(const SelfVectorsCUDAScatterDevice &other) = delete
-
virtual ~SelfVectorsCUDAScatterDevice()
Protected Functions
-
virtual double progress() override
-
virtual void stage_data() override
-
virtual void compute() override
-
virtual bool ram_check() override
-
virtual void print_pre_runner_info() override
-
fftw_complex *scatter(size_t qindex, size_t aindex) = delete
-
void scatterblock(size_t atomindex, size_t index, size_t count) = delete
-
void store(fftw_complex *at) = delete
-
void dsp(fftw_complex *at) = delete
Protected Attributes
-
size_t coord_size_ = 0
-
size_t current_atomindex_ = 0
-
ModAssignment assignment_
Private Members
-
double *dscatter_factors = nullptr
-
CartesianCoor3D *dsubvector_index = nullptr
-
fftw_complex *datfinal_ = nullptr
-
const size_t NTHREADS = 1024
-
size_t global_memory_ = 0
-
int max_threads_per_block_ = 0
-
int max_threads_per_sm_ = 0
-
int num_sm_ = 0
-
int max_parallel_atoms_ = 0
-
dim3 blockDim_ = dim3(32, 32)
-
SelfVectorsCUDAScatterDevice(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)