deal.II version 9.8.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
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 378 of file portable_matrix_free.h.

Public Types

using TeamHandle

Public Member Functions

unsigned int local_q_point_id (const unsigned int cell, const unsigned int n_q_points_, const unsigned int q_point) const
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
Initial value:
Kokkos::TeamPolicy<
MemorySpace::Default::kokkos_space::execution_space>::member_type

Definition at line 380 of file portable_matrix_free.h.

Member Function Documentation

◆ local_q_point_id() [1/2]

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

Return the quadrature point index local. The index is only unique for a given MPI process.

Deprecated
Use local_q_point_id() with two arguments instead.

Definition at line 402 of file portable_matrix_free.h.

◆ local_q_point_id() [2/2]

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 416 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 442 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:170

Definition at line 465 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 386 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 388 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 389 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 390 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 392 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 393 of file portable_matrix_free.h.


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