17 #if defined(GPUOffloadingOMP)
18 #pragma omp declare target
36 #if defined(SharedOMP)
37 #pragma omp declare simd
39 void ncp(
double* BgradQ,
const double*
const Q,
const double*
const gradQSerialised,
const int normal,
40 const int CCZ4LapseType,
68 #if defined(SharedOMP)
69 #pragma omp declare simd
71 void source(
double* S,
const double*
const Q,
72 const int CCZ4LapseType,
80 const double CCZ4itau,
88 #if defined(SharedOMP)
89 #pragma omp declare simd
92 const double*
const Q,
96 const double CCZ4GLMc,
97 const double CCZ4GLMd,
100 #if defined(GPUOffloadingOMP)
101 #pragma omp end declare target
108 void admconstraints(
double* constraints,
const double*
const Q,
const double*
const gradQSerialised);
113 void ThetaOutputNCP(
double* NCPterm,
const double*
const Q,
const double*
const gradQSerialised,
int normal);
119 void TestingOutput(
double* terms,
const double*
const Q,
const double*
const gradQSerialised);
125 void Psi4Calc(
double* Psi4,
const double*
const Q,
const double*
const gradQSerialised,
double* coor);
175 const double* __restrict__ QWithHalo,
176 double* __restrict__ rightHandSide,
178 int numberOfGridCellsPerPatchPerAxis,
181 int auxiliaryVariables,
183 const int* quantities,
184 int numberOfQuantities
void ncp(double *BgradQ, const double *const Q, const double *const gradQSerialised, const int normal, const int CCZ4LapseType, const double CCZ4ds, const double CCZ4c, const double CCZ4e, const double CCZ4f, const double CCZ4bs, const double CCZ4sk, const double CCZ4xi, const double CCZ4mu, const double CCZ4SO)
Non-conservative product of the first-order CCZ4 formulation.
void maxEigenvalue(const double *const Q, int normal, const double CCZ4e, const double CCZ4ds, const double CCZ4GLMc, const double CCZ4GLMd, double *maxEigenvalue)
void ThetaOutputNCP(double *NCPterm, const double *const Q, const double *const gradQSerialised, int normal)
A temporary test function, to output Hamilton constraint related term in theta, 1 terms: RPlusTwoNabl...
void admconstraints(double *constraints, const double *const Q, const double *const gradQSerialised)
This is a postprocessing routine to monitor if the physical constraints are fulfilled.
void source(double *S, const double *const Q, const int CCZ4LapseType, const double CCZ4ds, const double CCZ4c, const double CCZ4e, const double CCZ4f, const double CCZ4bs, const double CCZ4sk, const double CCZ4xi, const double CCZ4itau, const double CCZ4eta, const double CCZ4k1, const double CCZ4k2, const double CCZ4k3, const double CCZ4SO)
The source term is one out of two terms that we use in our CCZ4 formulation.
void addKreissOligerDissipation(const double *__restrict__ QWithHalo, double *__restrict__ rightHandSide, const tarch::la::Vector< 3, double > &patchSize, int numberOfGridCellsPerPatchPerAxis, int haloSize, int unknowns, int auxiliaryVariables, double sigma, const int *quantities, int numberOfQuantities)
Add the Kreiss-Oliger dissipation of a patch to its right-hand side.
void enforceCCZ4constraints(double *__restrict__ newQ)
A postprocessing routine which pushes the volume solution back into the area of the CCZ4 constraints.
void Psi4Calc(double *Psi4, const double *const Q, const double *const gradQSerialised, double *coor)
This function is for the calculation of psi4, a quantity related to gravitional wave.
void TestingOutput(double *terms, const double *const Q, const double *const gradQSerialised)
A temporary test function, to output some testing values 0,1 entries: Hamilton constraint related ter...
This file is part of the ExaGRyPE project.