xref: /petsc/src/sys/objects/device/impls/host/hostdevice.hpp (revision d1e78c4f2649daee4d31c45b7350b666f6b9ac81)
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