14#ifndef PECLET_AMR_BLOCK_OCTREE_VIEW_HPP
15#define PECLET_AMR_BLOCK_OCTREE_VIEW_HPP
21#include "peclet/core/common/view.hpp"
26template <
int Dim,
unsigned Bits = (Dim == 2 ? 32u : (Dim == 3 ? 21u : 16u))>
57 if (!
probe.try_add(
static_cast<unsigned>(axis), step))
60 if (!
probe.try_sub(
static_cast<unsigned>(axis), 1))
morton::Morton< Dim, Bits > M
typename M::coord_type Coord
typename M::code_type Code
std::vector< std::array< double, Dim > > transferFieldGradients(const BlockOctree< Dim, Bits > &oldT, const std::vector< double > &oldF)
Per-old-leaf minmod prolongation gradients (per fine-coordinate unit) — transferField's stencil,...
Device mirror of a BlockOctree's leaf arrays + device-callable queries.
Index faceNeighbor(Index i, int axis, int dir) const
Leaf across leaf i's face on axis in direction dir (±1), or -1 if it lies outside the block.
View< std::uint8_t > levels
Index locate(Code p) const
Leaf containing Morton code p, or -1. Callable in a device kernel.
typename Host::Coord Coord
void upload(const Host &t)
(Re)upload the host octree's current leaf set to the device.