|
Peano
|
Cell access class. More...
#include <CellAccess.h>
Public Member Functions | |
| CellAccess (const double *__restrict__ QIn, int haloSize, int unknowns, int numberOfAuxiliaryVariables, int numberOfDoFsPerAxisInPatch) | |
| ~CellAccess ()=default | |
| int | size () const |
| const double *__restrict__ | operator() (const tarch::la::Vector< Dimensions, int > &relativeCellPosition) const |
| Get a pointer to another cell's data. | |
| double | operator() (const tarch::la::Vector< Dimensions, int > &relativeCellPosition, int unknown) const |
| double | centre (int unknown) const |
| const double *__restrict__ | left (int normal) const |
| Return access to the left neighbour. | |
| const double *__restrict__ | right (int normal) const |
| double | left (int normal, int unknown) const |
| double | right (int normal, int unknown) const |
| std::string | toString () const |
Private Attributes | |
| const double *__restrict__ | _QIn |
| const int | _haloSize |
| const int | _unknowns |
| const int | _numberOfAuxiliaryVariables |
| const int | _numberOfDoFsPerAxisInPatch |
Cell access class.
This class is to be used by user code which do not only want to work cell-wisely, but also need access to neighbour cells. For example, it can be used in the source term code to get access to the neighbour cell to evaluate a second derivative.
| haloSize | For a Finite Volume solver, this is 1 if each patch is augmented with one halo volume around it. For a DG solver, it is 1 if you project only one quantity, i.e., the solution. However, you might have a value bigger than 1 if you also project higher order properties such as the first derivative along the normal. Some code snippets within ExaHyPE call the haloSize overlap. |
Definition at line 29 of file CellAccess.h.
| exahype2::CellAccess::CellAccess | ( | const double *__restrict__ | QIn, |
| int | haloSize, | ||
| int | unknowns, | ||
| int | numberOfAuxiliaryVariables, | ||
| int | numberOfDoFsPerAxisInPatch ) |
|
default |
| double exahype2::CellAccess::centre | ( | int | unknown | ) | const |
| const double *__restrict__ exahype2::CellAccess::left | ( | int | normal | ) | const |
Return access to the left neighbour.
Left means left along coordinate axis normal.
| double exahype2::CellAccess::left | ( | int | normal, |
| int | unknown ) const |
| const double *__restrict__ exahype2::CellAccess::operator() | ( | const tarch::la::Vector< Dimensions, int > & | relativeCellPosition | ) | const |
Get a pointer to another cell's data.
Pass in {0,0,0} and 0 as unknown, and you will get the current cell for which you have created the CellAccess object. Pass in {0,0,0} and k to access its kth unknown. Pass in {-1,0,0} for example to access the left neighbour of a cell.
| double exahype2::CellAccess::operator() | ( | const tarch::la::Vector< Dimensions, int > & | relativeCellPosition, |
| int | unknown ) const |
| const double *__restrict__ exahype2::CellAccess::right | ( | int | normal | ) | const |
| double exahype2::CellAccess::right | ( | int | normal, |
| int | unknown ) const |
| int exahype2::CellAccess::size | ( | ) | const |
Referenced by peano4.visualisation.input.Patch.Patch::__repr__().

| std::string exahype2::CellAccess::toString | ( | ) | const |
|
private |
Definition at line 69 of file CellAccess.h.
|
private |
Definition at line 71 of file CellAccess.h.
|
private |
Definition at line 72 of file CellAccess.h.
|
private |
Definition at line 68 of file CellAccess.h.
|
private |
Definition at line 70 of file CellAccess.h.
Referenced by exahype2.solvers.rkdg.RungeKuttaDG.RungeKuttaDG::__str__(), exahype2.solvers.rkfd.CellCenteredFiniteDifferences.CellCenteredFiniteDifferences::__str__(), exahype2.solvers.aderdg.ADERDG.ADERDG::_init_dictionary_with_default_parameters(), exahype2.solvers.fv.FV.FV::_init_dictionary_with_default_parameters(), exahype2.solvers.rkdg.RungeKuttaDG.RungeKuttaDG::_init_dictionary_with_default_parameters(), exahype2.solvers.rkfd.CellCenteredFiniteDifferences.CellCenteredFiniteDifferences::_init_dictionary_with_default_parameters(), api.solvers.CollocatedLowOrderDiscretisation.CollocatedLowOrderDiscretisation::add_to_plot(), peano4.visualisation.output.Visualiser.PatchFileData::apply_renderer_to_data(), peano4.visualisation.output.Visualiser.PatchFileData::copy_data_from_parser_object(), api.solvers.CollocatedLowOrderDiscretisation.CollocatedLowOrderDiscretisation::number_of_matrix_entries_per_vertex(), exahype2.solvers.aderdg.ADERDG.ADERDG::unknowns(), exahype2.solvers.fv.FV.FV::unknowns(), exahype2.solvers.rkdg.RungeKuttaDG.RungeKuttaDG::unknowns(), exahype2.solvers.rkfd.CellCenteredFiniteDifferences.CellCenteredFiniteDifferences::unknowns(), exahype2.solvers.fv.FV.FV::unknowns(), exahype2.solvers.rkdg.RungeKuttaDG.RungeKuttaDG::unknowns(), and exahype2.solvers.rkfd.CellCenteredFiniteDifferences.CellCenteredFiniteDifferences::unknowns().