Reference documentation for deal.II version 9.5.0
\(\newcommand{\dealvcentcolon}{\mathrel{\mathop{:}}}\) \(\newcommand{\dealcoloneq}{\dealvcentcolon\mathrel{\mkern-1.2mu}=}\) \(\newcommand{\jump}[1]{\left[\!\left[ #1 \right]\!\right]}\) \(\newcommand{\average}[1]{\left\{\!\left\{ #1 \right\}\!\right\}}\)
Loading...
Searching...
No Matches
Classes | Enumerations | Functions
CUDAWrappers::internal Namespace Reference

Classes

struct  EvaluatorTensorProduct
 
struct  EvaluatorTensorProduct< evaluate_general, dim, fe_degree, n_q_points_1d, Number >
 

Enumerations

enum  EvaluatorVariant { evaluate_general , evaluate_symmetric , evaluate_evenodd }
 

Functions

template<unsigned int size>
unsigned int index2 (unsigned int i, unsigned int j)
 
template<unsigned int size>
unsigned int index3 (unsigned int i, unsigned int j, unsigned int k)
 
template<unsigned int fe_degree, unsigned int direction>
bool is_constrained_dof_2d (const ::internal::MatrixFreeFunctions::ConstraintKinds &constraint_mask, const unsigned int x_idx, const unsigned int y_idx)
 
template<unsigned int fe_degree, unsigned int direction>
bool is_constrained_dof_3d (const ::internal::MatrixFreeFunctions::ConstraintKinds &constraint_mask, const unsigned int x_idx, const unsigned int y_idx, const unsigned int z_idx, const ::internal::MatrixFreeFunctions::ConstraintKinds face1_type, const ::internal::MatrixFreeFunctions::ConstraintKinds face2_type, const ::internal::MatrixFreeFunctions::ConstraintKinds face1, const ::internal::MatrixFreeFunctions::ConstraintKinds face2, const ::internal::MatrixFreeFunctions::ConstraintKinds edge)
 
template<unsigned int fe_degree, unsigned int direction, bool transpose, typename Number >
void interpolate_boundary_2d (const Kokkos::TeamPolicy< MemorySpace::Default::kokkos_space::execution_space >::member_type &team_member, Kokkos::View< Number *, MemorySpace::Default::kokkos_space > constraint_weights, const ::internal::MatrixFreeFunctions::ConstraintKinds &constraint_mask, Kokkos::View< Number *, MemorySpace::Default::kokkos_space::execution_space::scratch_memory_space, Kokkos::MemoryTraits< Kokkos::Unmanaged > > values)
 
template<unsigned int fe_degree, unsigned int direction, bool transpose, typename Number >
void interpolate_boundary_3d (const Kokkos::TeamPolicy< MemorySpace::Default::kokkos_space::execution_space >::member_type &team_member, Kokkos::View< Number *, MemorySpace::Default::kokkos_space > constraint_weights, const ::internal::MatrixFreeFunctions::ConstraintKinds constraint_mask, Kokkos::View< Number *, MemorySpace::Default::kokkos_space::execution_space::scratch_memory_space, Kokkos::MemoryTraits< Kokkos::Unmanaged > > values)
 
template<int dim, int fe_degree, bool transpose, typename Number >
void resolve_hanging_nodes (const Kokkos::TeamPolicy< MemorySpace::Default::kokkos_space::execution_space >::member_type &team_member, Kokkos::View< Number *, MemorySpace::Default::kokkos_space > constraint_weights, const ::internal::MatrixFreeFunctions::ConstraintKinds constraint_mask, Kokkos::View< Number *, MemorySpace::Default::kokkos_space::execution_space::scratch_memory_space, Kokkos::MemoryTraits< Kokkos::Unmanaged > > values)
 
template<int dim, int n_q_points_1d, typename Number , int direction, bool dof_to_quad, bool add, bool in_place, typename ViewTypeIn , typename ViewTypeOut >
void apply (const Kokkos::TeamPolicy< MemorySpace::Default::kokkos_space::execution_space >::member_type &team_member, const Kokkos::View< Number *, MemorySpace::Default::kokkos_space > shape_data, const ViewTypeIn in, ViewTypeOut out)
 
template<typename Number >
__global__ void scale (Number *val, const Number a, const typename SparseMatrix< Number >::size_type N)
 
void create_sp_mat_descr (int m, int n, int nnz, const float *A_val_dev, const int *A_row_ptr_dev, const int *A_column_index_dev, cusparseSpMatDescr_t &sp_descr)
 
void create_sp_mat_descr (int m, int n, int nnz, const double *A_val_dev, const int *A_row_ptr_dev, const int *A_column_index_dev, cusparseSpMatDescr_t &sp_descr)
 
void csrmv (cusparseHandle_t handle, bool transpose, int m, int n, const cusparseSpMatDescr_t sp_descr, const float *x, bool add, float *y)
 
void csrmv (cusparseHandle_t handle, bool transpose, int m, int n, const cusparseSpMatDescr_t sp_descr, const double *x, bool add, double *y)
 
template<typename Number >
__global__ void l1_norm (const typename SparseMatrix< Number >::size_type n_rows, const Number *val_dev, const int *column_index_dev, const int *row_ptr_dev, Number *sums)
 
template<typename Number >
__global__ void linfty_norm (const typename SparseMatrix< Number >::size_type n_rows, const Number *val_dev, const int *, const int *row_ptr_dev, Number *sums)
 

Function Documentation

◆ index2()

template<unsigned int size>
unsigned int CUDAWrappers::internal::index2 ( unsigned int  i,
unsigned int  j 
)
inline

Definition at line 37 of file cuda_hanging_nodes_internal.h.

◆ index3()

template<unsigned int size>
unsigned int CUDAWrappers::internal::index3 ( unsigned int  i,
unsigned int  j,
unsigned int  k 
)
inline

Definition at line 46 of file cuda_hanging_nodes_internal.h.

◆ is_constrained_dof_2d()

template<unsigned int fe_degree, unsigned int direction>
bool CUDAWrappers::internal::is_constrained_dof_2d ( const ::internal::MatrixFreeFunctions::ConstraintKinds constraint_mask,
const unsigned int  x_idx,
const unsigned int  y_idx 
)
inline

Definition at line 55 of file cuda_hanging_nodes_internal.h.

◆ is_constrained_dof_3d()

template<unsigned int fe_degree, unsigned int direction>
bool CUDAWrappers::internal::is_constrained_dof_3d ( const ::internal::MatrixFreeFunctions::ConstraintKinds constraint_mask,
const unsigned int  x_idx,
const unsigned int  y_idx,
const unsigned int  z_idx,
const ::internal::MatrixFreeFunctions::ConstraintKinds  face1_type,
const ::internal::MatrixFreeFunctions::ConstraintKinds  face2_type,
const ::internal::MatrixFreeFunctions::ConstraintKinds  face1,
const ::internal::MatrixFreeFunctions::ConstraintKinds  face2,
const ::internal::MatrixFreeFunctions::ConstraintKinds  edge 
)
inline

Definition at line 79 of file cuda_hanging_nodes_internal.h.

◆ interpolate_boundary_2d()

template<unsigned int fe_degree, unsigned int direction, bool transpose, typename Number >
void CUDAWrappers::internal::interpolate_boundary_2d ( const Kokkos::TeamPolicy< MemorySpace::Default::kokkos_space::execution_space >::member_type &  team_member,
Kokkos::View< Number *, MemorySpace::Default::kokkos_space constraint_weights,
const ::internal::MatrixFreeFunctions::ConstraintKinds constraint_mask,
Kokkos::View< Number *, MemorySpace::Default::kokkos_space::execution_space::scratch_memory_space, Kokkos::MemoryTraits< Kokkos::Unmanaged > >  values 
)
inline

Definition at line 127 of file cuda_hanging_nodes_internal.h.

◆ interpolate_boundary_3d()

template<unsigned int fe_degree, unsigned int direction, bool transpose, typename Number >
void CUDAWrappers::internal::interpolate_boundary_3d ( const Kokkos::TeamPolicy< MemorySpace::Default::kokkos_space::execution_space >::member_type &  team_member,
Kokkos::View< Number *, MemorySpace::Default::kokkos_space constraint_weights,
const ::internal::MatrixFreeFunctions::ConstraintKinds  constraint_mask,
Kokkos::View< Number *, MemorySpace::Default::kokkos_space::execution_space::scratch_memory_space, Kokkos::MemoryTraits< Kokkos::Unmanaged > >  values 
)
inline

Definition at line 248 of file cuda_hanging_nodes_internal.h.

◆ resolve_hanging_nodes()

template<int dim, int fe_degree, bool transpose, typename Number >
void CUDAWrappers::internal::resolve_hanging_nodes ( const Kokkos::TeamPolicy< MemorySpace::Default::kokkos_space::execution_space >::member_type &  team_member,
Kokkos::View< Number *, MemorySpace::Default::kokkos_space constraint_weights,
const ::internal::MatrixFreeFunctions::ConstraintKinds  constraint_mask,
Kokkos::View< Number *, MemorySpace::Default::kokkos_space::execution_space::scratch_memory_space, Kokkos::MemoryTraits< Kokkos::Unmanaged > >  values 
)

This function resolves the hanging nodes using tensor product.

The implementation of this class is explained in Section 3 of [122] and in Section 3.4 of [115].

Definition at line 416 of file cuda_hanging_nodes_internal.h.

◆ apply()

template<int dim, int n_q_points_1d, typename Number , int direction, bool dof_to_quad, bool add, bool in_place, typename ViewTypeIn , typename ViewTypeOut >
void CUDAWrappers::internal::apply ( const Kokkos::TeamPolicy< MemorySpace::Default::kokkos_space::execution_space >::member_type &  team_member,
const Kokkos::View< Number *, MemorySpace::Default::kokkos_space shape_data,
const ViewTypeIn  in,
ViewTypeOut  out 
)

Helper function for values() and gradients().

Definition at line 60 of file cuda_tensor_product_kernels.h.

◆ scale()

template<typename Number >
__global__ void CUDAWrappers::internal::scale ( Number *  val,
const Number  a,
const typename SparseMatrix< Number >::size_type  N 
)

Definition at line 34 of file cuda_sparse_matrix.cc.

◆ create_sp_mat_descr() [1/2]

void CUDAWrappers::internal::create_sp_mat_descr ( int  m,
int  n,
int  nnz,
const float *  A_val_dev,
const int A_row_ptr_dev,
const int A_column_index_dev,
cusparseSpMatDescr_t &  sp_descr 
)

Definition at line 47 of file cuda_sparse_matrix.cc.

◆ create_sp_mat_descr() [2/2]

void CUDAWrappers::internal::create_sp_mat_descr ( int  m,
int  n,
int  nnz,
const double *  A_val_dev,
const int A_row_ptr_dev,
const int A_column_index_dev,
cusparseSpMatDescr_t &  sp_descr 
)

Definition at line 73 of file cuda_sparse_matrix.cc.

◆ csrmv() [1/2]

void CUDAWrappers::internal::csrmv ( cusparseHandle_t  handle,
bool  transpose,
int  m,
int  n,
const cusparseSpMatDescr_t  sp_descr,
const float *  x,
bool  add,
float *  y 
)

Definition at line 99 of file cuda_sparse_matrix.cc.

◆ csrmv() [2/2]

void CUDAWrappers::internal::csrmv ( cusparseHandle_t  handle,
bool  transpose,
int  m,
int  n,
const cusparseSpMatDescr_t  sp_descr,
const double *  x,
bool  add,
double *  y 
)

Definition at line 172 of file cuda_sparse_matrix.cc.

◆ l1_norm()

template<typename Number >
__global__ void CUDAWrappers::internal::l1_norm ( const typename SparseMatrix< Number >::size_type  n_rows,
const Number *  val_dev,
const int column_index_dev,
const int row_ptr_dev,
Number *  sums 
)

Definition at line 246 of file cuda_sparse_matrix.cc.

◆ linfty_norm()

template<typename Number >
__global__ void CUDAWrappers::internal::linfty_norm ( const typename SparseMatrix< Number >::size_type  n_rows,
const Number *  val_dev,
const int ,
const int row_ptr_dev,
Number *  sums 
)

Definition at line 266 of file cuda_sparse_matrix.cc.