Peano
Loading...
Searching...
No Matches
exahype2::fv::rusanov::internal Namespace Reference

Functions

template<int NumberOfVolumesPerAxisInPatch, int HaloSize, int NumberOfUnknowns, int NumberOfAuxiliaryVariables, bool EvaluateFlux, bool EvaluateNonconservativeProduct, bool EvaluateSource, bool EvaluateMaximumEigenvalueAfterTimeStep, class TempDataEnumeratorType >
KeywordToAvoidDuplicateSymbolsForInlinedFunctions void timeStepWithRusanovBatchedFunctors (CellData< double, double > &patchData, const FluxFunctor &fluxFunctor, const NonconservativeProductFunctor &nonconservativeProductFunctor, const SourceFunctor &sourceFunctor, const MaxEigenvalueFunctor &maxEigenvalueFunctor, peano4::utils::LoopPlacement loopParallelism, const enumerator::AoSLexicographicEnumerator &QInEnumerator, const enumerator::AoSLexicographicEnumerator &QOutEnumerator, const TempDataEnumeratorType &fluxEnumerator, const TempDataEnumeratorType &ncpEnumerator, const TempDataEnumeratorType &eigenvalueEnumerator, double *tempFluxX, double *tempFluxY, double *tempFluxZ, double *tempNonconservativeProductX, double *tempNonconservativeProductY, double *tempNonconservativeProductZ, double *tempEigenvalueX, double *tempEigenvalueY, double *tempEigenvalueZ) InlineMethod
 
template<class SolverType , int NumberOfVolumesPerAxisInPatch, int HaloSize, int NumberOfUnknowns, int NumberOfAuxiliaryVariables, bool EvaluateFlux, bool EvaluateNonconservativeProduct, bool EvaluateSource, bool EvaluateMaximumEigenvalueAfterTimeStep, class TempDataEnumeratorType >
KeywordToAvoidDuplicateSymbolsForInlinedFunctions void timeStepWithRusanovBatchedStateless (CellData< double, double > &patchData, peano4::utils::LoopPlacement loopParallelism, const enumerator::AoSLexicographicEnumerator &QInEnumerator, const enumerator::AoSLexicographicEnumerator &QOutEnumerator, const TempDataEnumeratorType &fluxEnumerator, const TempDataEnumeratorType &ncpEnumerator, const TempDataEnumeratorType &eigenvalueEnumerator, double *tempFluxX, double *tempFluxY, double *tempFluxZ, double *tempNonconservativeProductX, double *tempNonconservativeProductY, double *tempNonconservativeProductZ, double *tempEigenvalueX, double *tempEigenvalueY, double *tempEigenvalueZ) InlineMethod
 
template<int NumberOfVolumesPerAxisInPatch, int HaloSize, int NumberOfUnknowns, int NumberOfAuxiliaryVariables, bool EvaluateFlux, bool EvaluateNonconservativeProduct, bool EvaluateSource, bool EvaluateMaximumEigenvalueAfterTimeStep, class TempDataEnumeratorType >
KeywordToAvoidDuplicateSymbolsForInlinedFunctions void timeStepWithRusanovPatchwiseFunctors (CellData< double, double > &patchData, const FluxFunctor &fluxFunctor, const NonconservativeProductFunctor &nonconservativeProductFunctor, const SourceFunctor &sourceFunctor, const MaxEigenvalueFunctor &maxEigenvalueFunctor, peano4::utils::LoopPlacement loopParallelism, const enumerator::AoSLexicographicEnumerator &QInEnumerator, const enumerator::AoSLexicographicEnumerator &QOutEnumerator, const TempDataEnumeratorType &fluxEnumerator, const TempDataEnumeratorType &ncpEnumerator, const TempDataEnumeratorType &eigenvalueEnumerator, double *tempFluxX, double *tempFluxY, double *tempFluxZ, double *tempNonconservativeProductX, double *tempNonconservativeProductY, double *tempNonconservativeProductZ, double *tempEigenvalueX, double *tempEigenvalueY, double *tempEigenvalueZ) InlineMethod
 
template<class SolverType , int NumberOfVolumesPerAxisInPatch, int HaloSize, int NumberOfUnknowns, int NumberOfAuxiliaryVariables, bool EvaluateFlux, bool EvaluateNonconservativeProduct, bool EvaluateSource, bool EvaluateMaximumEigenvalueAfterTimeStep, class TempDataEnumeratorType >
KeywordToAvoidDuplicateSymbolsForInlinedFunctions void timeStepWithRusanovPatchwiseStateless (CellData< double, double > &patchData, peano4::utils::LoopPlacement loopParallelism, const enumerator::AoSLexicographicEnumerator &QInEnumerator, const enumerator::AoSLexicographicEnumerator &QOutEnumerator, const TempDataEnumeratorType &fluxEnumerator, const TempDataEnumeratorType &ncpEnumerator, const TempDataEnumeratorType &eigenvalueEnumerator, double *tempFluxX, double *tempFluxY, double *tempFluxZ, double *tempNonconservativeProductX, double *tempNonconservativeProductY, double *tempNonconservativeProductZ, double *tempEigenvalueX, double *tempEigenvalueY, double *tempEigenvalueZ) InlineMethod
 
tarch::la::Vector< Dimensions+1, intrangeOverVolumesTimesUnknowns (int numberOfVolumesPerAxisInPatch, int unknowns)
 
tarch::la::Vector< Dimensions+1, intrangeOverVolumesTimesUnknownsPlusAuxiliaryVariables (int numberOfVolumesPerAxisInPatch, int unknowns, int auxiliaryVariables)
 
tarch::la::Vector< Dimensions+1, intrangeOverVolumesTimesPatches (int numberOfVolumesPerAxisInPatch, int patches)
 
tarch::la::Vector< Dimensions+2, intrangeOverVolumesTimesUnknownsTimesPatches (int numberOfVolumesPerAxisInPatch, int unknowns, int patches)
 
tarch::la::Vector< Dimensions+2, intrangeOverVolumesTimesUnknownsPlusAuxiliaryVariablesTimesPatches (int numberOfVolumesPerAxisInPatch, int unknowns, int auxiliaryVariables, int patches)
 
tarch::la::Vector< Dimensions, intrangeOverVolumesPlusHaloInXDirection (int numberOfVolumesPerAxisInPatch, int haloSize, bool extendInBothDirections)
 Construct iteration range.
 
tarch::la::Vector< Dimensions, intrangeOverVolumesPlusHaloInYDirection (int numberOfVolumesPerAxisInPatch, int haloSize, bool extendInBothDirections)
 
tarch::la::Vector< 3, intrangeOverVolumesPlusHaloInZDirection (int numberOfVolumesPerAxisInPatch, int haloSize, bool extendInBothDirections)
 
tarch::la::Vector< Dimensions+1, intrangeOverVolumesTimesPatchesPlusHaloInXDirection (int numberOfVolumesPerAxisInPatch, int haloSize, int patches)
 
tarch::la::Vector< Dimensions+1, intrangeOverVolumesTimesPatchesPlusHaloInYDirection (int numberOfVolumesPerAxisInPatch, int haloSize, int patches)
 
tarch::la::Vector< 3+1, intrangeOverVolumesTimesPatchesPlusHaloInZDirection (int numberOfVolumesPerAxisInPatch, int haloSize, int patches)
 

Function Documentation

◆ rangeOverVolumesPlusHaloInXDirection()

tarch::la::Vector< Dimensions, int > exahype2::fv::rusanov::internal::rangeOverVolumesPlusHaloInXDirection ( int numberOfVolumesPerAxisInPatch,
int haloSize,
bool extendInBothDirections )

Construct iteration range.

If you have a 6x6x6 range and a halo of 3, then you get

  • (6+2*3)x6x6 if extendInBothDirections is true;
  • (6+3)x6x6 if extendInBothDirections is false.

Definition at line 65 of file rusanov.cpp.

Referenced by timeStepWithRusanovPatchwiseFunctors(), timeStepWithRusanovPatchwiseStateless(), and exahype2::fv::rusanov::timeStepWithRusanovVolumewiseStateless().

Here is the caller graph for this function:

◆ rangeOverVolumesPlusHaloInYDirection()

tarch::la::Vector< Dimensions, int > exahype2::fv::rusanov::internal::rangeOverVolumesPlusHaloInYDirection ( int numberOfVolumesPerAxisInPatch,
int haloSize,
bool extendInBothDirections )

◆ rangeOverVolumesPlusHaloInZDirection()

tarch::la::Vector< 3, int > exahype2::fv::rusanov::internal::rangeOverVolumesPlusHaloInZDirection ( int numberOfVolumesPerAxisInPatch,
int haloSize,
bool extendInBothDirections )

◆ rangeOverVolumesTimesPatches()

tarch::la::Vector< Dimensions+1, int > exahype2::fv::rusanov::internal::rangeOverVolumesTimesPatches ( int numberOfVolumesPerAxisInPatch,
int patches )

◆ rangeOverVolumesTimesPatchesPlusHaloInXDirection()

tarch::la::Vector< Dimensions+1, int > exahype2::fv::rusanov::internal::rangeOverVolumesTimesPatchesPlusHaloInXDirection ( int numberOfVolumesPerAxisInPatch,
int haloSize,
int patches )

◆ rangeOverVolumesTimesPatchesPlusHaloInYDirection()

tarch::la::Vector< Dimensions+1, int > exahype2::fv::rusanov::internal::rangeOverVolumesTimesPatchesPlusHaloInYDirection ( int numberOfVolumesPerAxisInPatch,
int haloSize,
int patches )

◆ rangeOverVolumesTimesPatchesPlusHaloInZDirection()

tarch::la::Vector< 4, int > exahype2::fv::rusanov::internal::rangeOverVolumesTimesPatchesPlusHaloInZDirection ( int numberOfVolumesPerAxisInPatch,
int haloSize,
int patches )

◆ rangeOverVolumesTimesUnknowns()

tarch::la::Vector< Dimensions+1, int > exahype2::fv::rusanov::internal::rangeOverVolumesTimesUnknowns ( int numberOfVolumesPerAxisInPatch,
int unknowns )

◆ rangeOverVolumesTimesUnknownsPlusAuxiliaryVariables()

tarch::la::Vector< Dimensions+1, int > exahype2::fv::rusanov::internal::rangeOverVolumesTimesUnknownsPlusAuxiliaryVariables ( int numberOfVolumesPerAxisInPatch,
int unknowns,
int auxiliaryVariables )

◆ rangeOverVolumesTimesUnknownsPlusAuxiliaryVariablesTimesPatches()

tarch::la::Vector< Dimensions+2, int > exahype2::fv::rusanov::internal::rangeOverVolumesTimesUnknownsPlusAuxiliaryVariablesTimesPatches ( int numberOfVolumesPerAxisInPatch,
int unknowns,
int auxiliaryVariables,
int patches )

◆ rangeOverVolumesTimesUnknownsTimesPatches()

tarch::la::Vector< Dimensions+2, int > exahype2::fv::rusanov::internal::rangeOverVolumesTimesUnknownsTimesPatches ( int numberOfVolumesPerAxisInPatch,
int unknowns,
int patches )

◆ timeStepWithRusanovBatchedFunctors()

template<int NumberOfVolumesPerAxisInPatch, int HaloSize, int NumberOfUnknowns, int NumberOfAuxiliaryVariables, bool EvaluateFlux, bool EvaluateNonconservativeProduct, bool EvaluateSource, bool EvaluateMaximumEigenvalueAfterTimeStep, class TempDataEnumeratorType >
KeywordToAvoidDuplicateSymbolsForInlinedFunctions void exahype2::fv::rusanov::internal::timeStepWithRusanovBatchedFunctors ( CellData< double, double > & patchData,
const FluxFunctor & fluxFunctor,
const NonconservativeProductFunctor & nonconservativeProductFunctor,
const SourceFunctor & sourceFunctor,
const MaxEigenvalueFunctor & maxEigenvalueFunctor,
peano4::utils::LoopPlacement loopParallelism,
const enumerator::AoSLexicographicEnumerator & QInEnumerator,
const enumerator::AoSLexicographicEnumerator & QOutEnumerator,
const TempDataEnumeratorType & fluxEnumerator,
const TempDataEnumeratorType & ncpEnumerator,
const TempDataEnumeratorType & eigenvalueEnumerator,
double * tempFluxX,
double * tempFluxY,
double * tempFluxZ,
double * tempNonconservativeProductX,
double * tempNonconservativeProductY,
double * tempNonconservativeProductZ,
double * tempEigenvalueX,
double * tempEigenvalueY,
double * tempEigenvalueZ )

◆ timeStepWithRusanovBatchedStateless()

template<class SolverType , int NumberOfVolumesPerAxisInPatch, int HaloSize, int NumberOfUnknowns, int NumberOfAuxiliaryVariables, bool EvaluateFlux, bool EvaluateNonconservativeProduct, bool EvaluateSource, bool EvaluateMaximumEigenvalueAfterTimeStep, class TempDataEnumeratorType >
KeywordToAvoidDuplicateSymbolsForInlinedFunctions void exahype2::fv::rusanov::internal::timeStepWithRusanovBatchedStateless ( CellData< double, double > & patchData,
peano4::utils::LoopPlacement loopParallelism,
const enumerator::AoSLexicographicEnumerator & QInEnumerator,
const enumerator::AoSLexicographicEnumerator & QOutEnumerator,
const TempDataEnumeratorType & fluxEnumerator,
const TempDataEnumeratorType & ncpEnumerator,
const TempDataEnumeratorType & eigenvalueEnumerator,
double * tempFluxX,
double * tempFluxY,
double * tempFluxZ,
double * tempNonconservativeProductX,
double * tempNonconservativeProductY,
double * tempNonconservativeProductZ,
double * tempEigenvalueX,
double * tempEigenvalueY,
double * tempEigenvalueZ )

◆ timeStepWithRusanovPatchwiseFunctors()

template<int NumberOfVolumesPerAxisInPatch, int HaloSize, int NumberOfUnknowns, int NumberOfAuxiliaryVariables, bool EvaluateFlux, bool EvaluateNonconservativeProduct, bool EvaluateSource, bool EvaluateMaximumEigenvalueAfterTimeStep, class TempDataEnumeratorType >
KeywordToAvoidDuplicateSymbolsForInlinedFunctions void exahype2::fv::rusanov::internal::timeStepWithRusanovPatchwiseFunctors ( CellData< double, double > & patchData,
const FluxFunctor & fluxFunctor,
const NonconservativeProductFunctor & nonconservativeProductFunctor,
const SourceFunctor & sourceFunctor,
const MaxEigenvalueFunctor & maxEigenvalueFunctor,
peano4::utils::LoopPlacement loopParallelism,
const enumerator::AoSLexicographicEnumerator & QInEnumerator,
const enumerator::AoSLexicographicEnumerator & QOutEnumerator,
const TempDataEnumeratorType & fluxEnumerator,
const TempDataEnumeratorType & ncpEnumerator,
const TempDataEnumeratorType & eigenvalueEnumerator,
double * tempFluxX,
double * tempFluxY,
double * tempFluxZ,
double * tempNonconservativeProductX,
double * tempNonconservativeProductY,
double * tempNonconservativeProductZ,
double * tempEigenvalueX,
double * tempEigenvalueY,
double * tempEigenvalueZ )

◆ timeStepWithRusanovPatchwiseStateless()

template<class SolverType , int NumberOfVolumesPerAxisInPatch, int HaloSize, int NumberOfUnknowns, int NumberOfAuxiliaryVariables, bool EvaluateFlux, bool EvaluateNonconservativeProduct, bool EvaluateSource, bool EvaluateMaximumEigenvalueAfterTimeStep, class TempDataEnumeratorType >
KeywordToAvoidDuplicateSymbolsForInlinedFunctions void exahype2::fv::rusanov::internal::timeStepWithRusanovPatchwiseStateless ( CellData< double, double > & patchData,
peano4::utils::LoopPlacement loopParallelism,
const enumerator::AoSLexicographicEnumerator & QInEnumerator,
const enumerator::AoSLexicographicEnumerator & QOutEnumerator,
const TempDataEnumeratorType & fluxEnumerator,
const TempDataEnumeratorType & ncpEnumerator,
const TempDataEnumeratorType & eigenvalueEnumerator,
double * tempFluxX,
double * tempFluxY,
double * tempFluxZ,
double * tempNonconservativeProductX,
double * tempNonconservativeProductY,
double * tempNonconservativeProductZ,
double * tempEigenvalueX,
double * tempEigenvalueY,
double * tempEigenvalueZ )