My Project
Loading...
Searching...
No Matches
Opm::gpuistl::GpuOwnerOverlapCopy< field_type, block_size, OwnerOverlapCopyCommunicationType > Class Template Reference

CUDA compatiable variant of Dune::OwnerOverlapCopyCommunication. More...

#include <GpuOwnerOverlapCopy.hpp>

Public Types

using X = GpuVector<field_type>
 

Public Member Functions

 GpuOwnerOverlapCopy (std::shared_ptr< GPUSender< field_type, OwnerOverlapCopyCommunicationType > > sender)
 
void copyOwnerToAll (const X &source, X &dest) const
 
void dot (const X &x, const X &y, field_type &output) const
 
field_type norm (const X &x) const
 
void project (X &x) const
 

Detailed Description

template<class field_type, int block_size, class OwnerOverlapCopyCommunicationType>
class Opm::gpuistl::GpuOwnerOverlapCopy< field_type, block_size, OwnerOverlapCopyCommunicationType >

CUDA compatiable variant of Dune::OwnerOverlapCopyCommunication.

This class can essentially be seen as an adapter around Dune::OwnerOverlapCopyCommunication, and should work as a Dune::OwnerOverlapCopyCommunication on GpuVectors

Note
This currently only has the functionality to parallelize the linear solve.
Template Parameters
field_typeshould be a field_type supported by GpuVector (double, float)
block_sizethe block size used (this is relevant for say figuring out the correct indices)
OwnerOverlapCopyCommunicationTypeshould mimic Dune::OwnerOverlapCopyCommunication.

The documentation for this class was generated from the following file: