deal.II version GIT relicensing-6834-g5b78e6bcdf 2026-10-01 11:20:01+00:00
\(\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
Public Types | Public Member Functions | Public Attributes | List of all members
Portable::MatrixFree< dim, Number >::Data Struct Reference

#include <deal.II/matrix_free/portable_matrix_free.h>

Detailed Description

template<int dim, typename Number = double>
struct Portable::MatrixFree< dim, Number >::Data

A pointer to this data structure is passed to the user code in device code that computes operations in quadrature points. It can be used to construct Portable::FEEvaluation objects and contains necessary precomputed data and scratch memory space to perform matrix-free evaluations.

Definition at line 438 of file portable_matrix_free.h.

Public Types

using TeamHandle = Kokkos::TeamPolicy< MemorySpace::Default::kokkos_space::execution_space >::member_type
 

Public Member Functions

unsigned int local_q_point_id (const unsigned int cell, const unsigned int q_point) const
 
Portable::MatrixFree< dim, Number >::point_type & get_quadrature_point (const unsigned int cell, const unsigned int q_point) const
 
template<typename Functor >
void for_each_quad_point (const Functor &func) const
 

Public Attributes

TeamHandle team_member
 
const unsigned int n_q_points
 
const unsigned int n_dof_handler
 
const int cell_index
 
const Kokkos::Array< PrecomputedData, n_max_dof_handlers > & precomputed_data
 
Kokkos::Array< SharedData< dim, Number >, n_max_dof_handlers > & shared_data
 

Member Typedef Documentation

◆ TeamHandle

template<int dim, typename Number = double>
using Portable::MatrixFree< dim, Number >::Data::TeamHandle = Kokkos::TeamPolicy< MemorySpace::Default::kokkos_space::execution_space>::member_type

Definition at line 440 of file portable_matrix_free.h.

Member Function Documentation

◆ local_q_point_id()

template<int dim, typename Number = double>
unsigned int Portable::MatrixFree< dim, Number >::Data::local_q_point_id ( const unsigned int  cell,
const unsigned int  q_point 
) const
inline

Return the quadrature point index of the given cell and q_point index. The index returned is only unique for a given MPI process.

Definition at line 460 of file portable_matrix_free.h.

◆ get_quadrature_point()

template<int dim, typename Number = double>
Portable::MatrixFree< dim, Number >::point_type & Portable::MatrixFree< dim, Number >::Data::get_quadrature_point ( const unsigned int  cell,
const unsigned int  q_point 
) const
inline

Return the quadrature point.

Definition at line 486 of file portable_matrix_free.h.

◆ for_each_quad_point()

template<int dim, typename Number = double>
template<typename Functor >
void Portable::MatrixFree< dim, Number >::Data::for_each_quad_point ( const Functor &  func) const
inline

Apply the given functor to each quadrature point in parallel.

func needs to define

DEAL_II_HOST_DEVICE void operator()(const int &q_point) const;
*  *  Point< dim > operator()(const Point< dim > &p) const * 
#define DEAL_II_HOST_DEVICE
Definition config.h:171

Definition at line 509 of file portable_matrix_free.h.

Member Data Documentation

◆ team_member

template<int dim, typename Number = double>
TeamHandle Portable::MatrixFree< dim, Number >::Data::team_member

TeamPolicy handle.

Definition at line 446 of file portable_matrix_free.h.

◆ n_q_points

template<int dim, typename Number = double>
const unsigned int Portable::MatrixFree< dim, Number >::Data::n_q_points

Definition at line 448 of file portable_matrix_free.h.

◆ n_dof_handler

template<int dim, typename Number = double>
const unsigned int Portable::MatrixFree< dim, Number >::Data::n_dof_handler

Definition at line 449 of file portable_matrix_free.h.

◆ cell_index

template<int dim, typename Number = double>
const int Portable::MatrixFree< dim, Number >::Data::cell_index

Definition at line 450 of file portable_matrix_free.h.

◆ precomputed_data

template<int dim, typename Number = double>
const Kokkos::Array<PrecomputedData, n_max_dof_handlers>& Portable::MatrixFree< dim, Number >::Data::precomputed_data

Definition at line 452 of file portable_matrix_free.h.

◆ shared_data

template<int dim, typename Number = double>
Kokkos::Array<SharedData<dim, Number>, n_max_dof_handlers>& Portable::MatrixFree< dim, Number >::Data::shared_data

Definition at line 453 of file portable_matrix_free.h.


The documentation for this struct was generated from the following file: