DFT-FE 1.1.0-pre
Density Functional Theory With Finite-Elements
Loading...
Searching...
No Matches
MemoryManager.h
Go to the documentation of this file.
1#ifndef dftfeMemoryManager_h
2#define dftfeMemoryManager_h
3
4#include <TypeConfig.h>
5#include <MemorySpaceType.h>
6#include <vector>
7
8namespace dftfe
9{
10 namespace utils
11 {
12 //
13 // MemoryManager
14 //
15 template <typename ValueType, MemorySpace memorySpace>
17 {
18 public:
19 static void
20 allocate(std::size_t size, ValueType **ptr);
21
22 static void
23 deallocate(ValueType *ptr);
24
25 static void
26 set(std::size_t size, ValueType *ptr, ValueType val);
27 };
28
29 template <typename ValueType>
30 class MemoryManager<ValueType, MemorySpace::HOST>
31 {
32 public:
33 static void
34 allocate(std::size_t size, ValueType **ptr);
35
36 static void
37 deallocate(ValueType *ptr);
38
39 static void
40 set(std::size_t size, ValueType *ptr, ValueType val);
41 };
42
43#ifdef DFTFE_WITH_DEVICE
44 template <typename ValueType>
45 class MemoryManager<ValueType, MemorySpace::HOST_PINNED>
46 {
47 public:
48 static void
49 allocate(std::size_t size, ValueType **ptr);
50
51 static void
52 deallocate(ValueType *ptr);
53
54 static void
55 set(std::size_t size, ValueType *ptr, ValueType val);
56 };
57
58
59 template <typename ValueType>
60 class MemoryManager<ValueType, MemorySpace::DEVICE>
61 {
62 public:
63 static void
64 allocate(std::size_t size, ValueType **ptr);
65
66 static void
67 deallocate(ValueType *ptr);
68
69 static void
70 set(std::size_t size, ValueType *ptr, ValueType val);
71 };
72#endif // DFTFE_WITH_DEVICE
73 } // namespace utils
74
75} // namespace dftfe
76
77#endif
static void allocate(std::size_t size, ValueType **ptr)
static void set(std::size_t size, ValueType *ptr, ValueType val)
Definition MemoryManager.h:17
static void deallocate(ValueType *ptr)
static void allocate(std::size_t size, ValueType **ptr)
static void set(std::size_t size, ValueType *ptr, ValueType val)
Definition Cell.h:36
MemorySpace
Definition MemorySpaceType.h:33
@ HOST
Definition MemorySpaceType.h:34
@ HOST_PINNED
Definition MemorySpaceType.h:35
@ DEVICE
Definition MemorySpaceType.h:36
Definition pseudoPotentialToDftfeConverter.cc:34