1 #pragma once 2 3 #include "../impldevicebase.hpp" /*I "petscdevice.h" I*/ 4 5 namespace Petsc 6 { 7 8 namespace device 9 { 10 11 namespace host 12 { 13 14 class Device : public ::Petsc::device::impl::DeviceBase<Device> { 15 public: 16 PETSC_DEVICE_IMPL_BASE_CLASS_HEADER(base_type, Device); 17 18 static PetscErrorCode initialize(MPI_Comm, PetscInt *, PetscBool *, PetscDeviceInitType *) noexcept; 19 20 private: 21 PETSC_CXX_COMPAT_DECL(constexpr PetscDeviceType PETSC_DEVICE_IMPL_()) { return PETSC_DEVICE_HOST; } 22 23 static PetscErrorCode get_attribute_(PetscInt, PetscDeviceAttribute, void *) noexcept; 24 }; 25 26 } // namespace host 27 28 } // namespace device 29 30 } // namespace Petsc 31