40 : m_local_box_l(local_box_length), m_lower_corner(lower_corner),
41 m_upper_corner(lower_corner + local_box_length),
45 auto const &
my_left()
const {
return m_lower_corner; }
47 auto const &
my_right()
const {
return m_upper_corner; }
49 auto const &
length()
const {
return m_local_box_l; }
59 auto const &
boundary()
const {
return m_boundaries; }
76 decltype(LocalBox::m_boundaries) boundaries;
77 for (
unsigned int dir = 0u; dir < 3u; dir++) {
79 boundaries[2u * dir] = (node_index[dir] == 0);
81 boundaries[2u * dir + 1u] = -(node_index[dir] + 1 == node_grid[dir]);
Array implementation with CUDA support.
CellStructureType
Cell structure topology.
@ REGULAR
Regular decomposition.
Vector implementation and trait types for boost qvm interoperability.
auto const & my_right() const
Right (top, back) corner of this nodes local box.
void set_cell_structure_type(CellStructureType cell_structure_type)
Set cell structure type.
auto const & boundary() const
Boundary information for the local box.
auto const & cell_structure_type() const
Return cell structure type.
LocalBox(Utils::Vector3d const &lower_corner, Utils::Vector3d const &local_box_length, Utils::Array< int, 6 > const &boundaries, CellStructureType const cell_structure_type)
auto const & my_left() const
Left (bottom, front) corner of this nodes local box.
auto const & length() const
Dimensions of the box a single node is responsible for.
static LocalBox make_regular_decomposition(Utils::Vector3d const &box_l, Utils::Vector3i const &node_index, Utils::Vector3i const &node_grid)
auto hadamard_division(Vector< T, N > const &a, Vector< U, N > const &b)
auto hadamard_product(Vector< T, N > const &a, Vector< U, N > const &b)