Peano
Loading...
Searching...
No Matches
exahype2::enumerator::AoSoALexicographicEnumerator Struct Reference

AoSoA Lexicographic Enumerator. More...

#include <AoSoALexicographicEnumerator.h>

Public Member Functions

constexpr GPUCallableInlineMethod AoSoALexicographicEnumerator (int numberOfCells, int numberOfDoFsPerAxisInCell, int haloSize, int unknowns, int numberOfAuxiliaryVariables)
 
GPUCallableInlineMethod int operator() (int cellIndex, const tarch::la::Vector< Dimensions, int > &volumeIndex, int unknown) const InlineMethod
 Access an index.
 
GPUCallableInlineMethod int size () const InlineMethod
 Returns the total size.
 
GPUCallableInlineMethod int numberOfDofsPerCell () const InlineMethod
 

Data Fields

const int _numberOfCells
 
const int _numberOfDoFsPerAxisInCell
 
const int _haloSize
 
const int _unknowns
 
const int _numberOfAuxiliaryVariables
 

Detailed Description

AoSoA Lexicographic Enumerator.

Enumerates the degrees of freedom assuming that they are

  • organised as structure of arrays, i.e., if you store quantities (a,b,c) per degree of freedom (dof), then the array first holds the a values, then all the b values, then all the c values.
  • organised lexicographically, i.e. we first enumerate all the degrees of freedom along the x-axis, then along the y-axis, then along the z-axis.
  • organised from left to right, bottom-up and front to back.
  • organised per patch with this pattern, i.e., we first enumerate all the a values of the first patch, then all the b values, the all the c values. After that we continue with the data of the second patch.

This enumerator enumerates the patches one after the other (AoS). Within each patch, it then however switches to an SoA data layout. The enumeration thus is a hybrid between AoS and SoA. The last property in the enumeration above is the decisive difference to the SoALexicographicEnumerator.

See also
enumerator.h for a generic description of attribute semantics.

Definition at line 38 of file AoSoALexicographicEnumerator.h.

Constructor & Destructor Documentation

◆ AoSoALexicographicEnumerator()

constexpr GPUCallableInlineMethod exahype2::enumerator::AoSoALexicographicEnumerator::AoSoALexicographicEnumerator ( int numberOfCells,
int numberOfDoFsPerAxisInCell,
int haloSize,
int unknowns,
int numberOfAuxiliaryVariables )
constexpr

Definition at line 39 of file AoSoALexicographicEnumerator.h.

Member Function Documentation

◆ numberOfDofsPerCell()

GPUCallableInlineMethod int exahype2::enumerator::AoSoALexicographicEnumerator::numberOfDofsPerCell ( ) const

Definition at line 84 of file AoSoALexicographicEnumerator.h.

References _haloSize, and _numberOfDoFsPerAxisInCell.

◆ operator()()

GPUCallableInlineMethod int exahype2::enumerator::AoSoALexicographicEnumerator::operator() ( int cellIndex,
const tarch::la::Vector< Dimensions, int > & volumeIndex,
int unknown ) const

Access an index.

The index always refers to the interior of the cells. So you can use negative indices if you want.

Definition at line 53 of file AoSoALexicographicEnumerator.h.

References _haloSize, _numberOfAuxiliaryVariables, _numberOfCells, _numberOfDoFsPerAxisInCell, _unknowns, and exahype2::volumeIndex().

Here is the call graph for this function:

◆ size()

GPUCallableInlineMethod int exahype2::enumerator::AoSoALexicographicEnumerator::size ( ) const

Field Documentation

◆ _haloSize

const int exahype2::enumerator::AoSoALexicographicEnumerator::_haloSize

Definition at line 94 of file AoSoALexicographicEnumerator.h.

Referenced by numberOfDofsPerCell(), operator()(), and size().

◆ _numberOfAuxiliaryVariables

const int exahype2::enumerator::AoSoALexicographicEnumerator::_numberOfAuxiliaryVariables

Definition at line 96 of file AoSoALexicographicEnumerator.h.

Referenced by operator()(), and size().

◆ _numberOfCells

const int exahype2::enumerator::AoSoALexicographicEnumerator::_numberOfCells

Definition at line 92 of file AoSoALexicographicEnumerator.h.

Referenced by operator()(), and size().

◆ _numberOfDoFsPerAxisInCell

const int exahype2::enumerator::AoSoALexicographicEnumerator::_numberOfDoFsPerAxisInCell

Definition at line 93 of file AoSoALexicographicEnumerator.h.

Referenced by numberOfDofsPerCell(), operator()(), and size().

◆ _unknowns


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