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

Array of struct enumerator. More...

#include <AoSLexicographicEnumerator.h>

Public Member Functions

constexpr GPUCallableInlineMethod AoSLexicographicEnumerator (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
 
GPUCallableInlineMethod int numberOfDofsPerCell () const InlineMethod
 

Data Fields

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

Detailed Description

Array of struct enumerator.

This is the default enumerator for all DoFs in ExaHyPE 2.

We assume that we have a lexicographic ordering of the cell data or DG degree of freedom (quadrature points) and all data therein are ordered lexicographically and stored in as AoS: All data are

  • organised as array of structs, i.e. if you store quantities (a,b,c) per degree of freedom (dof), then the array first holds the a value of the first dof, then the b value, then the c value, and then it continues with the a value of the next dof.
  • 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 one cell after another, i.e. we first enumerate all the values of the first cell, before we continue with any value of the second cell.
See also
enumerator.h for a generic description of attribute semantics.
Parameters
numberOfCellsThe cells are enumerated one after another, i.e., we work with an array of cells hosting arrays of structs.
haloSizeNumber of dofs around the cell which do not carry active information, i.e., data you write to.

Definition at line 44 of file AoSLexicographicEnumerator.h.

Constructor & Destructor Documentation

◆ AoSLexicographicEnumerator()

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

Definition at line 45 of file AoSLexicographicEnumerator.h.

Member Function Documentation

◆ numberOfDofsPerCell()

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

Definition at line 88 of file AoSLexicographicEnumerator.h.

References _haloSize, and _numberOfDoFsPerAxisInCell.

◆ operator()()

GPUCallableInlineMethod int exahype2::enumerator::AoSLexicographicEnumerator::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 59 of file AoSLexicographicEnumerator.h.

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

Here is the call graph for this function:

◆ size()

Field Documentation

◆ _haloSize

const int exahype2::enumerator::AoSLexicographicEnumerator::_haloSize

Definition at line 98 of file AoSLexicographicEnumerator.h.

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

◆ _numberOfAuxiliaryVariables

const int exahype2::enumerator::AoSLexicographicEnumerator::_numberOfAuxiliaryVariables

Definition at line 100 of file AoSLexicographicEnumerator.h.

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

◆ _numberOfCells

const int exahype2::enumerator::AoSLexicographicEnumerator::_numberOfCells

Definition at line 96 of file AoSLexicographicEnumerator.h.

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

◆ _numberOfDoFsPerAxisInCell

const int exahype2::enumerator::AoSLexicographicEnumerator::_numberOfDoFsPerAxisInCell

◆ _unknowns


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