19#ifndef OPM_GPUISTL_GPUOBLIVIOUSMPISENDER_HPP
20#define OPM_GPUISTL_GPUOBLIVIOUSMPISENDER_HPP
22#include <dune/istl/owneroverlapcopy.hh>
24#include <opm/simulators/linalg/FlowLinearSolverParameters.hpp>
25#include <opm/simulators/linalg/gpuistl/GpuSender.hpp>
26#include <opm/simulators/linalg/gpuistl/GpuVector.hpp>
42template <
class field_type,
int block_size,
class OwnerOverlapCopyCommunicationType>
64 void initIndexSet()
const override
68 const auto&
pis = this->m_cpuOwnerOverlapCopy.indexSet();
71 for (
const auto& index :
pis) {
72 if (index.local().attribute() == Dune::OwnerOverlapCopyAttributeSet::copy) {
78 if (index.local().attribute() == Dune::OwnerOverlapCopyAttributeSet::owner) {
86 this->m_indicesOwner = std::make_unique<GpuVector<int>>(
indicesOwnerCPU);
Derived class of GPUSender that handles MPI calls that should NOT use GPU direct communicatoin The im...
Definition GpuObliviousMPISender.hpp:44
void copyOwnerToAll(const X &source, X &dest) const override
copyOwnerToAll will copy the data in source to all processes.
Definition GpuObliviousMPISender.hpp:53
GPUSender is a wrapper class for classes which will implement copOwnerToAll This is implemented with ...
Definition GpuSender.hpp:44
constexpr auto getPropValue()
get the value data member of a property
Definition propertysystem.hh:240