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