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