xref: /petsc/src/sys/objects/device/impls/host/hostdevice.hpp (revision 9dd11ecf0918283bb567d8b33a92f53ac4ea7840)
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:
PETSC_CXX_COMPAT_DECL(constexpr PetscDeviceType PETSC_DEVICE_IMPL_ ())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