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