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 Member Functions | Public Attributes | List of all members
Portable::MatrixFree< dim, Number >::AdditionalData Struct Reference

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

Detailed Description

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

Standardized data struct to pipe additional data to MatrixFree.

Definition at line 210 of file portable_matrix_free.h.

Public Member Functions

 AdditionalData (const UpdateFlags mapping_update_flags=update_gradients|update_JxW_values|update_quadrature_points, const bool use_coloring=false, const bool overlap_communication_computation=false, const unsigned int mg_level=numbers::invalid_unsigned_int, const unsigned int team_size=numbers::invalid_unsigned_int)
 

Public Attributes

UpdateFlags mapping_update_flags
 
bool use_coloring
 
bool overlap_communication_computation
 
unsigned int mg_level
 
unsigned int team_size
 

Constructor & Destructor Documentation

◆ AdditionalData()

template<int dim, typename Number = double>
Portable::MatrixFree< dim, Number >::AdditionalData::AdditionalData ( const UpdateFlags  mapping_update_flags = update_gradients | update_JxW_values | update_quadrature_points,
const bool  use_coloring = false,
const bool  overlap_communication_computation = false,
const unsigned int  mg_level = numbers::invalid_unsigned_int,
const unsigned int  team_size = numbers::invalid_unsigned_int 
)
inline

Constructor.

Definition at line 215 of file portable_matrix_free.h.

Member Data Documentation

◆ mapping_update_flags

template<int dim, typename Number = double>
UpdateFlags Portable::MatrixFree< dim, Number >::AdditionalData::mapping_update_flags

This flag is used to determine which quantities should be cached. This class can cache data needed for gradient computations (inverse Jacobians), Jacobian determinants (JxW), quadrature points as well as data for Hessians (derivative of Jacobians). By default, only data for gradients and Jacobian determinants times quadrature weights, JxW, are cached. If quadrature points of second derivatives are needed, they must be specified by this field.

Definition at line 239 of file portable_matrix_free.h.

◆ use_coloring

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

If true, use graph coloring. Otherwise, use atomic operations. Graph coloring ensures bitwise reproducibility but is slower on Pascal and newer architectures.

Definition at line 246 of file portable_matrix_free.h.

◆ overlap_communication_computation

template<int dim, typename Number = double>
bool Portable::MatrixFree< dim, Number >::AdditionalData::overlap_communication_computation

Overlap MPI communications with computation. This requires device-aware MPI and use_coloring must be false.

Definition at line 252 of file portable_matrix_free.h.

◆ mg_level

template<int dim, typename Number = double>
unsigned int Portable::MatrixFree< dim, Number >::AdditionalData::mg_level

This parameter specifies the level in the triangulation from which the indices are to be used. If the level is set to numbers::invalid_unsigned_int (default value), the active cells are gone through, otherwise the cells in the given local smoothing level.

Definition at line 260 of file portable_matrix_free.h.

◆ team_size

template<int dim, typename Number = double>
unsigned int Portable::MatrixFree< dim, Number >::AdditionalData::team_size

The team size used by the underlying kokkos team policy. If -1 is provided then Kokkos::AUTO will be used.

Definition at line 266 of file portable_matrix_free.h.


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