|
core
Shared MPI block decomposition + asynchronous ghost-layer exchange (header-only C++20)
|
#include <Kokkos_Core.hpp>#include <string>#include <utility>#include <vector>#include "peclet/core/common/types.hpp"Go to the source code of this file.
Namespaces | |
| namespace | peclet |
| namespace | peclet::core |
Typedefs | |
| using | peclet::core::ExecSpace = Kokkos::DefaultExecutionSpace |
| using | peclet::core::MemSpace = ExecSpace::memory_space |
| template<class T > | |
| using | peclet::core::View = Kokkos::View< T *, MemSpace > |
| 1D device array. | |
| template<class T > | |
| using | peclet::core::HostView = decltype(Kokkos::create_mirror_view(std::declval< View< T > >())) |
| Host-accessible mirror of View<T> (identical to View<T> on host backends). | |
| using | peclet::core::IndexView = Kokkos::View< Index *, MemSpace > |
| Device array of grid/particle indices (the matched send/recv/self-copy lists). | |
| template<class T > | |
| using | peclet::core::Field3D = Kokkos::View< T ***, Kokkos::LayoutLeft, MemSpace > |
| 3D structured field in the suite's x-fastest convention: LayoutLeft makes the leftmost (x) index contiguous, i.e. | |
Functions | |
| template<class T > | |
| View< T > | peclet::core::toDevice (const std::vector< T > &h, const std::string &label) |
| Upload a host std::vector into a freshly-sized device View (empty vector => empty view). | |
| template<class V > | |
| std::vector< std::remove_const_t< typename V::value_type > > | peclet::core::toVector (const V &view) |
Copy a (host- or device-resident) Kokkos View of any rank into a contiguous host std::vector, flattened in C/row order (last index fastest) — an Nx3 View comes back as out[i*3 + c] == view(i,c), the suite's particle-SoA Python export order. | |