preCICE
Loading...
Searching...
No Matches
KokkosPUMKernels_Impl.hpp File Reference
#include <KokkosBatched_LU_Decl.hpp>
#include <KokkosBatched_Util.hpp>
#include <KokkosBatched_ApplyPivot_Decl.hpp>
#include <KokkosBatched_ApplyQ_Decl.hpp>
#include <KokkosBatched_QR_WithColumnPivoting_Decl.hpp>
#include <KokkosBatched_Trsv_Decl.hpp>
#include <KokkosBlas2_gemv.hpp>
#include "mapping/impl/BasisFunctions.hpp"
#include "math/math.hpp"
#include <functional>
#include <optional>
Include dependency graph for KokkosPUMKernels_Impl.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

namespace  precice
 Main namespace of the precice library.
namespace  precice::mapping
 contains data mapping from points to meshes.
namespace  precice::mapping::kernel
namespace  precice::mapping::kernel::impl

Typedefs

template<typename MemorySpace = ExecutionSpace>
using precice::mapping::kernel::BatchMatrix = Kokkos::View<double **, MemorySpace, UnmanagedMemory>
template<typename T = double *, typename MemorySpace = ExecutionSpace>
using precice::mapping::kernel::BatchVector = Kokkos::View<T, MemorySpace, UnmanagedMemory>

Enumerations

enum class  precice::mapping::kernel::impl::Pow2Mode { precice::mapping::kernel::impl::Smaller , precice::mapping::kernel::impl::Larger , precice::mapping::kernel::impl::Closest }

Functions

int precice::mapping::kernel::impl::powerOfTwo (int n, const Pow2Mode mode)
template<typename ExecSpace, typename FunctorType, typename Policy>
auto precice::mapping::kernel::impl::findTeamSize (int avgWork, const Pow2Mode mode, const FunctorType &functor, const Policy &policy)
template<typename... Args>
KOKKOS_INLINE_FUNCTION constexpr void precice::mapping::kernel::impl::capture_conditional_variables (const Args &...)
template<typename MemorySpace>
bool precice::mapping::kernel::compute_weights (const int nCluster, const int avgOutClusterSize, const offset_1d_type nWeights, const int nMeshVertices, const int dim, VectorOffsetView< MemorySpace > offsets, MeshView< MemorySpace > centers, GlobalIDView< MemorySpace > globalIDs, MeshView< MemorySpace > mesh, const CompactPolynomialC2 &w, VectorView< MemorySpace > normalizedWeights)
template<typename MemorySpace>
void precice::mapping::kernel::do_batched_qr (int nCluster, int dim, int avgClusterSize, int maxClusterSize, VectorOffsetView< MemorySpace > inOffsets, GlobalIDView< MemorySpace > globalInIDs, MeshView< MemorySpace > inMesh, VectorView< MemorySpace > qrMatrix, VectorView< MemorySpace > qrTau, PivotView< MemorySpace > qrP)
template<typename MemorySpace>
void precice::mapping::kernel::compute_offsets (const VectorOffsetView< MemorySpace > src1, const VectorOffsetView< MemorySpace > src2, MatrixOffsetView< MemorySpace > dst, int nCluster)
template<typename EvalFunctionType, typename MemorySpace>
void precice::mapping::kernel::do_input_assembly (int nCluster, int dim, int avgClusterSize, int maxInClusterSize, EvalFunctionType f, const VectorOffsetView< MemorySpace > &inOffsets, const GlobalIDView< MemorySpace > &globalInIDs, const MeshView< MemorySpace > &inCoords, const MatrixOffsetView< MemorySpace > &matrixOffsets, VectorView< MemorySpace > matrices)
template<typename EvalFunctionType, typename MemorySpace>
void precice::mapping::kernel::do_batched_assembly (int nCluster, int dim, int avgClusterSize, EvalFunctionType f, const VectorOffsetView< MemorySpace > &inOffsets, const GlobalIDView< MemorySpace > &globalInIDs, const MeshView< MemorySpace > &inCoords, const VectorOffsetView< MemorySpace > &targetOffsets, const GlobalIDView< MemorySpace > &globalTargetIDs, const MeshView< MemorySpace > &targetCoords, const MatrixOffsetView< MemorySpace > &matrixOffsets, VectorView< MemorySpace > matrices)
template<typename MemorySpace>
void precice::mapping::kernel::do_batched_lu (int nCluster, int avgClusterSize, const MatrixOffsetView< MemorySpace > &matrixOffsets, VectorView< MemorySpace > matrices)
template<bool polynomial, bool evaluation_op_available, typename EvalFunctionType, typename MemorySpace>
void precice::mapping::kernel::do_batched_solve (int nCluster, int dim, int avgInClusterSize, int maxInClusterSize, int maxOutClusterSize, EvalFunctionType f, const VectorOffsetView< MemorySpace > &rhsOffsets, const GlobalIDView< MemorySpace > &globalRhsIDs, VectorView< MemorySpace > rhs, const MatrixOffsetView< MemorySpace > &matrixOffsets, const VectorView< MemorySpace > &matrices, const VectorView< MemorySpace > &normalizedWeights, const MatrixOffsetView< MemorySpace > &evalOffsets, const VectorView< MemorySpace > &evalMat, const VectorOffsetView< MemorySpace > &outOffsets, const GlobalIDView< MemorySpace > &globalOutIDs, VectorView< MemorySpace > out, const MeshView< MemorySpace > &inMesh, const MeshView< MemorySpace > &outMesh, const VectorView< MemorySpace > &qrMatrix, const VectorView< MemorySpace > &qrTau, const PivotView< MemorySpace > &qrP)
template<typename MemorySpace>
void precice::mapping::kernel::do_qr_solve (int nCluster, int dim, int maxInClusterSize, VectorOffsetView< MemorySpace > inOffsets, GlobalIDView< MemorySpace > globalInIDs, VectorView< MemorySpace > inData, MeshView< MemorySpace > inMesh, VectorView< MemorySpace > qrMatrix, VectorView< MemorySpace > qrTau, PivotView< MemorySpace > qrP, const VectorView< MemorySpace > weights, VectorOffsetView< MemorySpace > outOffsets, GlobalIDView< MemorySpace > globalOutIDs, VectorView< MemorySpace > outData, MeshView< MemorySpace > outMesh)
template<int iexp, typename T>
constexpr T pow_int (const T base)
 Computes the power of a given number by an integral exponent given at compile time, which is much faster than std::pow(x, iexp)

Function Documentation

◆ pow_int()

template<int iexp, typename T>
T precice::math::pow_int ( const T base)
inlineconstexpr

Computes the power of a given number by an integral exponent given at compile time, which is much faster than std::pow(x, iexp)

Definition at line 22 of file math.hpp.