20 #include <thrust/host_vector.h> 44 const ivec6& neighbours);
61 std::vector<std::vector<alsfvm::shared_ptr<cuda::CudaMemory<real> > > > buffers;
63 std::vector<std::vector<thrust::host_vector<real> > > cpuBuffersSend;
64 std::vector<std::vector<thrust::host_vector<real> > > cpuBuffersReceive;
69 void extractSide(
const ivec3& start,
const ivec3& end,
74 void insertSide(
const ivec3& start,
const ivec3& end,
79 std::vector<std::vector<cudaStream_t> > memoryStreams;
81 std::vector<std::vector<RequestPtr> > receiveRequests;
82 std::vector<std::vector<RequestPtr> > sendRequests;
real max(real number) override
Does the maximum over all processors.
CudaCartesianCellExchanger(ConfigurationPtr &configuration, const ivec6 &neighbours)
The Volume class represents a volume (a collection of cells with values for each cell (eg...
Definition: Volume.hpp:30
Abstract base class for exchanging cells.
Definition: CellExchanger.hpp:26
double real
Definition: types.hpp:65
ivec6 getNeighbours() const override
Definition: CudaCartesianCellExchanger.hpp:27
RequestContainer exchangeCells(volume::Volume &outputVolume, const volume::Volume &inputVolume) override
Does the exchange of cells between the processors.
Holds a collection of requests.
Definition: RequestContainer.hpp:23
alsfvm::shared_ptr< Configuration > ConfigurationPtr
Definition: Configuration.hpp:53
Various utility functions to implement the tecno flux.
Definition: types.hpp:30
bool hasSide(int side) const
int getNumberOfActiveSides() const