5#ifndef IPPL_BARE_FIELD_H
6#define IPPL_BARE_FIELD_H
8#include <Kokkos_Core.hpp>
39 template <
typename T,
unsigned Dim,
class... ViewArgs>
41 BareField<T, Dim, ViewArgs...>,
42 sizeof(typename detail::ViewType<T, Dim, ViewArgs...>::view_type)> {
54 template <
class... PolicyArgs>
91 template <
typename... Args>
154 template <
typename E,
size_t N>
164 template <
typename... Args>
182 template <
class... PolicyArgs>
184 const int nghost = 0)
const {
186 const size_t shift =
nghost_m - nghost;
194 void write(std::ostream& out = std::cout)
const;
RangePolicy< View::rank, typenameView::execution_space, PolicyArgs... >::policy_type getRangePolicy(const View &view, int shift=0)
Layout_t & getLayout() const
T sum(int nghost=0) const
static constexpr unsigned dim
BareField & operator=(T x)
view_type::memory_space memory_space
const Domain_t getAllocated() const
void write(Inform &inf) const
typename detail::ViewType< T, Dim, ViewArgs... >::view_type view_type
View type storing the data.
HostMirror getHostMirror() const
T prod(int nghost=0) const
typename RangePolicy< Dim, PolicyArgs... >::policy_type policy_type
FieldLayout< Dim > Layout_t
auto & getCommunicator() const
policy_type< execution_space, PolicyArgs... > getFieldRangePolicy(const int nghost=0) const
void initialize(Layout_t &l, int nghost=1)
BareField & operator=(const detail::Expression< E, N > &expr)
const NDIndex< Dim > & getDomain() const
void write(std::ostream &out=std::cout) const
BareField deepCopy() const
T max(int nghost=0) const
T min(int nghost=0) const
const Index & getIndex(unsigned d) const
BareField(const BareField &)=default
BareField(Layout_t &l, int nghost=1)
void updateLayout(Layout_t &, int nghost=1)
typename view_type::host_mirror_type HostMirror
detail::size_type size(unsigned d) const
view_type dview_m
Actual field data.
void accumulateHalo_noghost(int nghost=1)
detail::HaloCells< T, Dim, ViewArgs... > halo_type
const view_type & getView() const
KOKKOS_INLINE_FUNCTION T operator()(Args... args) const
void resize(Args... args)
view_type::execution_space execution_space
const Domain_t & getOwned() const
NDIndex< Dim > Domain_t
Domain type specifying the index region.
const NDIndex< Dim > & getDomain() const