-
Notifications
You must be signed in to change notification settings - Fork 0
/
patch_force.h
37 lines (26 loc) · 1.01 KB
/
patch_force.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#ifndef patch_force_h
#define patch_force_h
#include "memory_management.h"
/// the forces on a set of bodies
struct patch_force
{
patch_force(hamr::buffer_allocator alloc = def_alloc());
patch_force(const patch_force&) = delete;
patch_force(patch_force&&) = delete;
~patch_force();
void operator=(const patch_force &pd);
void operator=(patch_force &&pd);
long size() const { return m_u.size(); }
void resize(long n);
void append(const patch_force &o);
/// read access to the data
auto get_host_accessible() const { return hamr::get_host_accessible(m_u, m_v, m_w); }
auto get_openmp_accessible() const { return hamr::get_openmp_accessible(m_u, m_v, m_w); }
/// write access to the data
auto get_data() { return hamr::data(m_u, m_v, m_w); }
auto get_data() const { return hamr::data(m_u, m_v, m_w); }
hamr::buffer<double> m_u; ///< body force x
hamr::buffer<double> m_v; ///< body force y
hamr::buffer<double> m_w; ///< body force z
};
#endif