1*a4963045SJacob Faibussowitsch #pragma once 20e6b6b59SJacob Faibussowitsch 30e6b6b59SJacob Faibussowitsch #include "../impldevicebase.hpp" /*I "petscdevice.h" I*/ 40e6b6b59SJacob Faibussowitsch 5d71ae5a4SJacob Faibussowitsch namespace Petsc 6d71ae5a4SJacob Faibussowitsch { 70e6b6b59SJacob Faibussowitsch 8d71ae5a4SJacob Faibussowitsch namespace device 9d71ae5a4SJacob Faibussowitsch { 100e6b6b59SJacob Faibussowitsch 11d71ae5a4SJacob Faibussowitsch namespace host 12d71ae5a4SJacob Faibussowitsch { 130e6b6b59SJacob Faibussowitsch 140e6b6b59SJacob Faibussowitsch class Device : public ::Petsc::device::impl::DeviceBase<Device> { 150e6b6b59SJacob Faibussowitsch public: 160e6b6b59SJacob Faibussowitsch PETSC_DEVICE_IMPL_BASE_CLASS_HEADER(base_type, Device); 170e6b6b59SJacob Faibussowitsch 18089fb57cSJacob Faibussowitsch static PetscErrorCode initialize(MPI_Comm, PetscInt *, PetscBool *, PetscDeviceInitType *) noexcept; 190e6b6b59SJacob Faibussowitsch 200e6b6b59SJacob Faibussowitsch private: PETSC_CXX_COMPAT_DECL(constexpr PetscDeviceType PETSC_DEVICE_IMPL_ ())210e6b6b59SJacob Faibussowitsch PETSC_CXX_COMPAT_DECL(constexpr PetscDeviceType PETSC_DEVICE_IMPL_()) { return PETSC_DEVICE_HOST; } 220e6b6b59SJacob Faibussowitsch 23089fb57cSJacob Faibussowitsch static PetscErrorCode get_attribute_(PetscInt, PetscDeviceAttribute, void *) noexcept; 240e6b6b59SJacob Faibussowitsch }; 250e6b6b59SJacob Faibussowitsch 260e6b6b59SJacob Faibussowitsch } // namespace host 270e6b6b59SJacob Faibussowitsch 280e6b6b59SJacob Faibussowitsch } // namespace device 290e6b6b59SJacob Faibussowitsch 300e6b6b59SJacob Faibussowitsch } // namespace Petsc 31