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