#include <CCZ4.h>
|
| ::exahype2::RefinementCommand | refinementCriterion (const double *__restrict__ Q, const tarch::la::Vector< Dimensions, double > &volumeCentre, const tarch::la::Vector< Dimensions, double > &volumeH, double t) override |
| |
| void | initialCondition (double *__restrict__ Q, const tarch::la::Vector< Dimensions, double > &volumeCentre, const tarch::la::Vector< Dimensions, double > &volumeH, bool gridIsConstructed) override |
| |
| virtual void | boundaryConditions (const double *__restrict__ Qinside, double *__restrict__ Qoutside, const tarch::la::Vector< Dimensions, double > &faceCentre, const tarch::la::Vector< Dimensions, double > &volumeH, double t, int normal) override |
| |
| void | sourceTerm (const double *__restrict__ Q, const tarch::la::Vector< Dimensions, double > &volumeCentre, const tarch::la::Vector< Dimensions, double > &volumeH, double t, double dt, double *__restrict__ S) override |
| |
| virtual double | maxEigenvalue (const double *__restrict__ Q, const tarch::la::Vector< Dimensions, double > &faceCentre, const tarch::la::Vector< Dimensions, double > &volumeH, double t, double dt, int normal) override |
| | Determine max eigenvalue over Jacobian in a given point with solution values (states) Q.
|
| |
| virtual void | nonconservativeProduct (const double *__restrict__ Q, const double *__restrict__ deltaQ, const tarch::la::Vector< Dimensions, double > &faceCentre, const tarch::la::Vector< Dimensions, double > &volumeH, double t, double dt, int normal, double *__restrict__ BgradQ) override |
| |
|
| static GPUCallableMethod void | sourceTerm (const double *__restrict__ Q, const tarch::la::Vector< Dimensions, double > &volumeCentre, const tarch::la::Vector< Dimensions, double > &volumeH, double t, double dt, double *__restrict__ S, ::exahype2::Solver::Offloadable) |
| | To obtain the best performance, I recommend to man inline command to this signature and to copy the implementation into the header.
|
| |
| static GPUCallableMethod double | maxEigenvalue (const double *__restrict__ Q, const tarch::la::Vector< Dimensions, double > &faceCentre, const tarch::la::Vector< Dimensions, double > &volumeH, double t, double dt, int normal, ::exahype2::Solver::Offloadable) |
| | To obtain the best performance, I recommend to man inline command to this signature and to copy the implementation into the header.
|
| |
| static GPUCallableMethod void | nonconservativeProduct (const double *__restrict__ Q, const double *__restrict__ deltaQ, const tarch::la::Vector< Dimensions, double > &faceCentre, const tarch::la::Vector< Dimensions, double > &volumeH, double t, double dt, int normal, double *__restrict__ BgradQ, ::exahype2::Solver::Offloadable) |
| | To obtain the best performance, I recommend to man inline command to this signature and to copy the implementation into the header.
|
| |
Definition at line 30 of file CCZ4.h.
◆ boundaryConditions()
| virtual void benchmarks::exahype2::ccz4::CCZ4::boundaryConditions |
( |
const double *__restrict__ |
Qinside, |
|
|
double *__restrict__ |
Qoutside, |
|
|
const tarch::la::Vector< Dimensions, double > & |
faceCentre, |
|
|
const tarch::la::Vector< Dimensions, double > & |
volumeH, |
|
|
double |
t, |
|
|
int |
normal |
|
) |
| |
|
overridevirtual |
◆ initialCondition()
| void benchmarks::exahype2::ccz4::CCZ4::initialCondition |
( |
double *__restrict__ |
Q, |
|
|
const tarch::la::Vector< Dimensions, double > & |
volumeCentre, |
|
|
const tarch::la::Vector< Dimensions, double > & |
volumeH, |
|
|
bool |
gridIsConstructed |
|
) |
| |
|
override |
◆ maxEigenvalue() [1/2]
| virtual double benchmarks::exahype2::ccz4::CCZ4::maxEigenvalue |
( |
const double *__restrict__ |
Q, |
|
|
const tarch::la::Vector< Dimensions, double > & |
faceCentre, |
|
|
const tarch::la::Vector< Dimensions, double > & |
volumeH, |
|
|
double |
t, |
|
|
double |
dt, |
|
|
int |
normal |
|
) |
| |
|
overridevirtual |
Determine max eigenvalue over Jacobian in a given point with solution values (states) Q.
All parameters are in.
- Returns
- Max eigenvalue. Result has to be positive, so we are actually speaking about the maximum absolute eigenvalue.
◆ maxEigenvalue() [2/2]
To obtain the best performance, I recommend to man inline command to this signature and to copy the implementation into the header.
So it would read
static inline double maxEigenvalue( ... ) { code here }
The GPU offloading requires static functions. As we cannot overload the original (virtual) function with a static alternative, we do the TBB trick and overload by adding an additional enum. It has no semantics but helps the compiler to distinguish the different function variants.
Definition at line 156 of file CCZ4.h.
◆ nonconservativeProduct() [1/2]
| virtual void benchmarks::exahype2::ccz4::CCZ4::nonconservativeProduct |
( |
const double *__restrict__ |
Q, |
|
|
const double *__restrict__ |
deltaQ, |
|
|
const tarch::la::Vector< Dimensions, double > & |
faceCentre, |
|
|
const tarch::la::Vector< Dimensions, double > & |
volumeH, |
|
|
double |
t, |
|
|
double |
dt, |
|
|
int |
normal, |
|
|
double *__restrict__ |
BgradQ |
|
) |
| |
|
overridevirtual |
◆ nonconservativeProduct() [2/2]
| static GPUCallableMethod void benchmarks::exahype2::ccz4::CCZ4::nonconservativeProduct |
( |
const double *__restrict__ |
Q, |
|
|
const double *__restrict__ |
deltaQ, |
|
|
const tarch::la::Vector< Dimensions, double > & |
faceCentre, |
|
|
const tarch::la::Vector< Dimensions, double > & |
volumeH, |
|
|
double |
t, |
|
|
double |
dt, |
|
|
int |
normal, |
|
|
double *__restrict__ |
BgradQ, |
|
|
::exahype2::Solver::Offloadable |
|
|
) |
| |
|
static |
To obtain the best performance, I recommend to man inline command to this signature and to copy the implementation into the header.
So it would read
static inline void nonconservativeProduct( ... ) { code here }
The GPU offloading requires static functions. As we cannot overload the original (virtual) function with a static alternative, we do the TBB trick and overload by adding an additional enum. It has no semantics but helps the compiler to distinguish the different function variants.
◆ refinementCriterion()
◆ sourceTerm() [1/2]
| void benchmarks::exahype2::ccz4::CCZ4::sourceTerm |
( |
const double *__restrict__ |
Q, |
|
|
const tarch::la::Vector< Dimensions, double > & |
volumeCentre, |
|
|
const tarch::la::Vector< Dimensions, double > & |
volumeH, |
|
|
double |
t, |
|
|
double |
dt, |
|
|
double *__restrict__ |
S |
|
) |
| |
|
override |
◆ sourceTerm() [2/2]
To obtain the best performance, I recommend to man inline command to this signature and to copy the implementation into the header.
So it would read
static inline void sourceTerm( ... ) { code here }
The GPU offloading requires static functions. As we cannot overload the original (virtual) function with a static alternative, we do the TBB trick and overload by adding an additional enum. It has no semantics but helps the compiler to distinguish the different function variants.
Definition at line 123 of file CCZ4.h.
References exagrype::ccz4::source().
◆ _log
The documentation for this class was generated from the following file:
- benchmarks/exagrype/kernel-benchmarks/CCZ4.h