Mundy: Multibody Nonlocal Dynamics Version of the Day
Loading...
Searching...
No Matches
mundy::convex::KokkosBackend< ExecSpace > Struct Template Reference

Backend for Kokkos single process execution.

#include <convex.hpp>

Public Types

using exec_space = ExecSpace

Static Public Member Functions

template<class Vector>
static auto make_vector_like (const Vector &q)
template<class LinearOp>
static MUNDY_SUPPRESS_GPU_CALL_FROM_HOST_WARNINGS_PUSH auto make_domain_vector (const LinearOp &op)
template<class LinearOp>
static auto make_range_vector (const LinearOp &op)
template<class LinearOp>
static MUNDY_SUPPRESS_GPU_CALL_FROM_HOST_WARNINGS_POP auto make_workspace (const LinearOp &op)
template<class Vector>
static size_t size (Vector &x)
template<class LinearOp>
static size_t domain_size (LinearOp &op)
template<class LinearOp>
static size_t domain_size (LinearOp &op)
template<class LinearOp>
static size_t domain_size (LinearOp &)
template<class LinearOp>
static size_t range_size (LinearOp &op)
template<class LinearOp>
static size_t range_size (LinearOp &op)
template<class LinearOp>
static size_t range_size (LinearOp &)
template<class Vector>
static decltype(auto) vector_data (Vector &x, size_t i)
template<class DestVector, class SrcVector>
static void deep_copy (DestVector &dest, const SrcVector &src)
template<class LinearOp, class XVector, class YVector>
static void apply (const LinearOp &op, const XVector &x, YVector &y)
template<class LinearOp, class XVector, class YVector, class Workspace>
static void apply (const LinearOp &op, const XVector &x, YVector &y, Workspace &workspace)
template<class LinearOp, class XVector, class YVector, class Workspace>
static void apply (const LinearOp &op, const XVector &x, YVector &y, Workspace &)
template<typename LinearOp, class XVector, class YVector>
static void apply (const LinearOp &op, const XVector &x, YVector &y)
template<typename LinearOp, class XVector, class YVector, class Workspace>
static void apply (const LinearOp &, const XVector &, YVector &, Workspace &)
template<class Scalar, class XVector, class YVector>
static void axpby (const Scalar alpha, const XVector &x, const Scalar beta, YVector &y)
template<typename Wrapper, class Scalar, class XVector, class YVector, class ZVector>
static void wrapped_axpbyz (const Scalar alpha, const XVector &x, const Scalar beta, const YVector &y, ZVector &z, const Wrapper &wrapper)
template<class ReductionScalar, class XVector, class YVector>
static ReductionScalar diff_dot (const XVector &x, const YVector &y)
template<class ReductionScalar, class X1Vector, class X2Vector, class Y1Vector, class Y2Vector>
static ReductionScalar diff_dot (const X1Vector &x1, const X2Vector &x2, const Y1Vector &y1, const Y2Vector &y2)
template<typename ReductionScalar, typename Functor>
static void reduce_max (size_t n, const Functor &func, ReductionScalar &result)
template<typename ReductionScalar, typename Functor, class Vector>
static void reduce_max (const Vector &, size_t n, const Functor &func, ReductionScalar &result)

Member Typedef Documentation

◆ exec_space

template<typename ExecSpace>
using mundy::convex::KokkosBackend< ExecSpace >::exec_space = ExecSpace

Member Function Documentation

◆ make_vector_like()

template<typename ExecSpace>
template<class Vector>
auto mundy::convex::KokkosBackend< ExecSpace >::make_vector_like ( const Vector & q)
inlinestatic

◆ make_domain_vector()

template<typename ExecSpace>
template<class LinearOp>
MUNDY_SUPPRESS_GPU_CALL_FROM_HOST_WARNINGS_PUSH auto mundy::convex::KokkosBackend< ExecSpace >::make_domain_vector ( const LinearOp & op)
inlinestatic

◆ make_range_vector()

template<typename ExecSpace>
template<class LinearOp>
auto mundy::convex::KokkosBackend< ExecSpace >::make_range_vector ( const LinearOp & op)
inlinestatic

◆ make_workspace()

template<typename ExecSpace>
template<class LinearOp>
MUNDY_SUPPRESS_GPU_CALL_FROM_HOST_WARNINGS_POP auto mundy::convex::KokkosBackend< ExecSpace >::make_workspace ( const LinearOp & op)
inlinestatic

◆ size()

template<typename ExecSpace>
template<class Vector>
size_t mundy::convex::KokkosBackend< ExecSpace >::size ( Vector & x)
inlinestatic

◆ domain_size() [1/3]

template<typename ExecSpace>
template<class LinearOp>
size_t mundy::convex::KokkosBackend< ExecSpace >::domain_size ( LinearOp & op)
inlinestatic

◆ domain_size() [2/3]

template<typename ExecSpace>
template<class LinearOp>
size_t mundy::convex::KokkosBackend< ExecSpace >::domain_size ( LinearOp & op)
inlinestatic

◆ domain_size() [3/3]

template<typename ExecSpace>
template<class LinearOp>
size_t mundy::convex::KokkosBackend< ExecSpace >::domain_size ( LinearOp & )
inlinestatic

◆ range_size() [1/3]

template<typename ExecSpace>
template<class LinearOp>
size_t mundy::convex::KokkosBackend< ExecSpace >::range_size ( LinearOp & op)
inlinestatic

◆ range_size() [2/3]

template<typename ExecSpace>
template<class LinearOp>
size_t mundy::convex::KokkosBackend< ExecSpace >::range_size ( LinearOp & op)
inlinestatic

◆ range_size() [3/3]

template<typename ExecSpace>
template<class LinearOp>
size_t mundy::convex::KokkosBackend< ExecSpace >::range_size ( LinearOp & )
inlinestatic

◆ vector_data()

template<typename ExecSpace>
template<class Vector>
decltype(auto) mundy::convex::KokkosBackend< ExecSpace >::vector_data ( Vector & x,
size_t i )
inlinestatic

◆ deep_copy()

template<typename ExecSpace>
template<class DestVector, class SrcVector>
void mundy::convex::KokkosBackend< ExecSpace >::deep_copy ( DestVector & dest,
const SrcVector & src )
inlinestatic

◆ apply() [1/5]

template<typename ExecSpace>
template<class LinearOp, class XVector, class YVector>
void mundy::convex::KokkosBackend< ExecSpace >::apply ( const LinearOp & op,
const XVector & x,
YVector & y )
inlinestatic

◆ apply() [2/5]

template<typename ExecSpace>
template<class LinearOp, class XVector, class YVector, class Workspace>
void mundy::convex::KokkosBackend< ExecSpace >::apply ( const LinearOp & op,
const XVector & x,
YVector & y,
Workspace & workspace )
inlinestatic

◆ apply() [3/5]

template<typename ExecSpace>
template<class LinearOp, class XVector, class YVector, class Workspace>
void mundy::convex::KokkosBackend< ExecSpace >::apply ( const LinearOp & op,
const XVector & x,
YVector & y,
Workspace &  )
inlinestatic

◆ apply() [4/5]

template<typename ExecSpace>
template<typename LinearOp, class XVector, class YVector>
void mundy::convex::KokkosBackend< ExecSpace >::apply ( const LinearOp & op,
const XVector & x,
YVector & y )
inlinestatic

◆ apply() [5/5]

template<typename ExecSpace>
template<typename LinearOp, class XVector, class YVector, class Workspace>
void mundy::convex::KokkosBackend< ExecSpace >::apply ( const LinearOp & ,
const XVector & ,
YVector & ,
Workspace &  )
inlinestatic

◆ axpby()

template<typename ExecSpace>
template<class Scalar, class XVector, class YVector>
void mundy::convex::KokkosBackend< ExecSpace >::axpby ( const Scalar alpha,
const XVector & x,
const Scalar beta,
YVector & y )
inlinestatic

◆ wrapped_axpbyz()

template<typename ExecSpace>
template<typename Wrapper, class Scalar, class XVector, class YVector, class ZVector>
void mundy::convex::KokkosBackend< ExecSpace >::wrapped_axpbyz ( const Scalar alpha,
const XVector & x,
const Scalar beta,
const YVector & y,
ZVector & z,
const Wrapper & wrapper )
inlinestatic

◆ diff_dot() [1/2]

template<typename ExecSpace>
template<class ReductionScalar, class XVector, class YVector>
ReductionScalar mundy::convex::KokkosBackend< ExecSpace >::diff_dot ( const XVector & x,
const YVector & y )
inlinestatic

◆ diff_dot() [2/2]

template<typename ExecSpace>
template<class ReductionScalar, class X1Vector, class X2Vector, class Y1Vector, class Y2Vector>
ReductionScalar mundy::convex::KokkosBackend< ExecSpace >::diff_dot ( const X1Vector & x1,
const X2Vector & x2,
const Y1Vector & y1,
const Y2Vector & y2 )
inlinestatic

◆ reduce_max() [1/2]

template<typename ExecSpace>
template<typename ReductionScalar, typename Functor>
void mundy::convex::KokkosBackend< ExecSpace >::reduce_max ( size_t n,
const Functor & func,
ReductionScalar & result )
inlinestatic

◆ reduce_max() [2/2]

template<typename ExecSpace>
template<typename ReductionScalar, typename Functor, class Vector>
void mundy::convex::KokkosBackend< ExecSpace >::reduce_max ( const Vector & ,
size_t n,
const Functor & func,
ReductionScalar & result )
inlinestatic