deal.II version GIT relicensing-2865-ga6be64acbe 2025-03-19 21:10:00+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 Member Functions | Public Attributes | List of all members
Portable::MatrixFree< dim, Number >::Data Struct Reference

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

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
 
Portable::MatrixFree< dim, Number >::point_typeget_quadrature_point (const unsigned int cell, const unsigned int q_point) const
 

Public Attributes

Kokkos::View< point_type **, MemorySpace::Default::kokkos_spaceq_points
 
Kokkos::View< types::global_dof_index **, MemorySpace::Default::kokkos_spacelocal_to_global
 
Kokkos::View< Number **[dim][dim], MemorySpace::Default::kokkos_spaceinv_jacobian
 
Kokkos::View< Number **, MemorySpace::Default::kokkos_spaceJxW
 
Kokkos::View<::internal::MatrixFreeFunctions::ConstraintKinds *, MemorySpace::Default::kokkos_spaceconstraint_mask
 
Kokkos::View< Number *, MemorySpace::Default::kokkos_spaceshape_values
 
Kokkos::View< Number *, MemorySpace::Default::kokkos_spaceshape_gradients
 
Kokkos::View< Number *, MemorySpace::Default::kokkos_spaceco_shape_gradients
 
Kokkos::View< Number *, MemorySpace::Default::kokkos_spaceconstraint_weights
 
unsigned int n_cells
 
unsigned int n_components
 
unsigned int padding_length
 
unsigned int row_start
 
bool use_coloring
 
::internal::MatrixFreeFunctions::ElementType element_type
 
unsigned int scratch_pad_size
 

Detailed Description

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

Structure which is passed to the kernel. It is used to pass all the necessary information from the CPU to the GPU.

Definition at line 157 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  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.

Definition at line 256 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 269 of file portable_matrix_free.h.

Member Data Documentation

◆ q_points

template<int dim, typename Number = double>
Kokkos::View<point_type **, MemorySpace::Default::kokkos_space> Portable::MatrixFree< dim, Number >::Data::q_points

Kokkos::View of the quadrature points.

Definition at line 162 of file portable_matrix_free.h.

◆ local_to_global

template<int dim, typename Number = double>
Kokkos::View<types::global_dof_index **, MemorySpace::Default::kokkos_space> Portable::MatrixFree< dim, Number >::Data::local_to_global

Map the position in the local vector to the position in the global vector.

Definition at line 170 of file portable_matrix_free.h.

◆ inv_jacobian

template<int dim, typename Number = double>
Kokkos::View<Number **[dim][dim], MemorySpace::Default::kokkos_space> Portable::MatrixFree< dim, Number >::Data::inv_jacobian

Kokkos::View of the inverse Jacobian.

Definition at line 176 of file portable_matrix_free.h.

◆ JxW

template<int dim, typename Number = double>
Kokkos::View<Number **, MemorySpace::Default::kokkos_space> Portable::MatrixFree< dim, Number >::Data::JxW

Kokkos::View of the Jacobian times the weights.

Definition at line 181 of file portable_matrix_free.h.

◆ constraint_mask

template<int dim, typename Number = double>
Kokkos::View<::internal::MatrixFreeFunctions::ConstraintKinds *, MemorySpace::Default::kokkos_space> Portable::MatrixFree< dim, Number >::Data::constraint_mask

Mask deciding where constraints are set on a given cell.

Definition at line 188 of file portable_matrix_free.h.

◆ shape_values

template<int dim, typename Number = double>
Kokkos::View<Number *, MemorySpace::Default::kokkos_space> Portable::MatrixFree< dim, Number >::Data::shape_values

Values of the shape functions.

Definition at line 193 of file portable_matrix_free.h.

◆ shape_gradients

template<int dim, typename Number = double>
Kokkos::View<Number *, MemorySpace::Default::kokkos_space> Portable::MatrixFree< dim, Number >::Data::shape_gradients

Gradients of the shape functions.

Definition at line 199 of file portable_matrix_free.h.

◆ co_shape_gradients

template<int dim, typename Number = double>
Kokkos::View<Number *, MemorySpace::Default::kokkos_space> Portable::MatrixFree< dim, Number >::Data::co_shape_gradients

Gradients of the shape functions for collocation methods.

Definition at line 205 of file portable_matrix_free.h.

◆ constraint_weights

template<int dim, typename Number = double>
Kokkos::View<Number *, MemorySpace::Default::kokkos_space> Portable::MatrixFree< dim, Number >::Data::constraint_weights

Weights used when resolving hanginf nodes.

Definition at line 211 of file portable_matrix_free.h.

◆ n_cells

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

Number of cells.

Definition at line 216 of file portable_matrix_free.h.

◆ n_components

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

Number of components.

Definition at line 221 of file portable_matrix_free.h.

◆ padding_length

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

Length of the padding.

Definition at line 226 of file portable_matrix_free.h.

◆ row_start

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

Row start (including padding).

Definition at line 231 of file portable_matrix_free.h.

◆ use_coloring

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

If true, use graph coloring has been used and we can simply add into the destingation vector. Otherwise, use atomic operations.

Definition at line 237 of file portable_matrix_free.h.

◆ element_type

template<int dim, typename Number = double>
::internal::MatrixFreeFunctions::ElementType Portable::MatrixFree< dim, Number >::Data::element_type

Encodes the type of element detected at construction. FEEvaluation will select the most efficient algorithm based on the given element type.

Definition at line 244 of file portable_matrix_free.h.

◆ scratch_pad_size

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

Size of the scratch pad for temporary storage in shared memory.

Definition at line 249 of file portable_matrix_free.h.


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