Peano
Loading...
Searching...
No Matches
PatchUtils.h File Reference
#include <vector>
#include "tarch/la/Vector.h"
#include "tarch/multicore/multicore.h"
#include "peano4/grid/GridControlEvent.h"
#include "peano4/utils/Globals.h"
Include dependency graph for PatchUtils.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

namespace  exahype2
 For the generic kernels that I use here most of the time.
 
namespace  exahype2::fv
 

Functions

static tarch::la::Vector< 2, doubleexahype2::fv::getVolumeSize (const tarch::la::Vector< 2, double > &h, int numberOfVolumesPerAxisInPatch)
 We need this routine within vectorised and GPUised code.
 
static tarch::la::Vector< 3, doubleexahype2::fv::getVolumeSize (const tarch::la::Vector< 3, double > &h, int numberOfVolumesPerAxisInPatch)
 
static tarch::la::Vector< 2, doubleexahype2::fv::getFaceSize (const tarch::la::Vector< 2, double > &h, int numberOfVolumesPerAxisInPatch)
 
static tarch::la::Vector< 3, doubleexahype2::fv::getFaceSize (const tarch::la::Vector< 3, double > &h, int numberOfVolumesPerAxisInPatch)
 
static tarch::la::Vector< 2, doubleexahype2::fv::getVolumeCentre (const tarch::la::Vector< 2, double > &x, const tarch::la::Vector< 2, double > &h, int numberOfVolumesPerAxisInPatch, const tarch::la::Vector< 2, int > &index)
 In ExaHyPE's Finite Volume setup, a cell hosts a patch of Finite Volumes.
 
static tarch::la::Vector< 3, doubleexahype2::fv::getVolumeCentre (const tarch::la::Vector< 3, double > &x, const tarch::la::Vector< 3, double > &h, int numberOfVolumesPerAxisInPatch, const tarch::la::Vector< 3, int > &index)
 
static tarch::la::Vector< 2, doubleexahype2::fv::getFaceCentre (const tarch::la::Vector< 2, double > &x, const tarch::la::Vector< 2, double > &h, int numberOfVolumesPerAxisInPatch, int overlap, int normal, const tarch::la::Vector< 2, int > &index)
 
static tarch::la::Vector< 3, doubleexahype2::fv::getFaceCentre (const tarch::la::Vector< 3, double > &x, const tarch::la::Vector< 3, double > &h, int numberOfVolumesPerAxisInPatch, int overlap, int normal, const tarch::la::Vector< 3, int > &index)
 
double exahype2::fv::getVolumeLength (const tarch::la::Vector< 2, double > &h, int numberOfVolumesPerAxisInPatch)
 With GCC 10, it was impossible to return/copy the vector class.
 
double exahype2::fv::getVolumeLength (const tarch::la::Vector< 3, double > &h, int numberOfVolumesPerAxisInPatch)
 
std::string exahype2::fv::plotVolume (const double *__restrict__ Q, int unknowns)
 Helper routine that I need in the log statements.
 
void exahype2::fv::validatePatch (const double *__restrict__ Q, int unknowns, int auxiliaryVariables, int numberOfVolumesPerAxisInPatch, int haloSize, const std::string &location="", bool triggerNonCriticalAssertion=true, double *minValues=nullptr, double *maxValues=nullptr)
 Just runs over the patch and ensures that no entry is non or infinite.
 
std::string exahype2::fv::plotPatch (const double *__restrict__ Q, int unknowns, int auxiliaryVariables, int numberOfVolumesPerAxisInPatch, int haloSize, bool prettyPrint=false)
 Plot patch.
 
std::string exahype2::fv::plotPatchOverlap (const double *__restrict__ Q, int unknowns, int auxiliaryVariables, int numberOfGridCellsPerPatchPerAxis, int haloSize, int normal, bool prettyPrint=false)
 
void exahype2::fv::copyHalfOfHalo (int unknownsPlusAuxiliaryVariables, int numberOfGridCellsPerPatchPerAxis, int haloSize, int normal, bool isRightLayer, const double *__restrict__ srcQ, double *__restrict__ destQ)
 A face always holds a left and a right overlap.