Peano
Loading...
Searching...
No Matches
rusanov.h File Reference
#include <cstdlib>
#include "exahype2/CellData.h"
#include "exahype2/fv/rusanov/LoopBodies.h"
#include "GPUCellData.h"
#include "tarch/accelerator/accelerator.h"
#include "tarch/compiler/CompilerSpecificSettings.h"
#include "tarch/timing/Measurement.h"
#include "tarch/timing/Watch.h"
#include "BatchedStateless.cpph"
#include "PatchwiseStateless.cpph"
#include "TaskgraphStateless.cpph"
Include dependency graph for rusanov.h:

Go to the source code of this file.

Namespaces

namespace  exahype2
 This file is part of the multigrid project within Peano 4.
 
namespace  exahype2::fv
 
namespace  exahype2::fv::rusanov
 
namespace  exahype2::fv::rusanov::sycl
 
namespace  exahype2::fv::rusanov::sycl::internal
 

Functions

template<class SolverType , std::size_t NumberOfVolumesPerAxisInPatch, std::size_t HaloSize, std::size_t NumberOfUnknowns, std::size_t NumberOfAuxiliaryVariables, bool EvaluateFlux, bool EvaluateNonconservativeProduct, bool EvaluateSource, bool EvaluateMaximumEigenvalueAfterTimeStep, class TempDataEnumeratorType >
KeywordToAvoidDuplicateSymbolsForInlinedFunctions void exahype2::fv::rusanov::sycl::timeStepWithRusanovTaskgraphCopyStateless (int targetDevice, CellData< double, double > &patchData) InlineMethod
 All the memory management is discussed in the documentation of GPUCellData.
 
template<class SolverType , std::size_t NumberOfVolumesPerAxisInPatch, std::size_t HaloSize, std::size_t NumberOfUnknowns, std::size_t NumberOfAuxiliaryVariables, bool EvaluateFlux, bool EvaluateNonconservativeProduct, bool EvaluateSource, bool EvaluateMaximumEigenvalueAfterTimeStep, class TempDataEnumeratorType >
KeywordToAvoidDuplicateSymbolsForInlinedFunctions void exahype2::fv::rusanov::sycl::timeStepWithRusanovBatchedHeapStateless (int targetDevice, CellData< double, double > &patchData) InlineMethod
 
template<class SolverType , std::size_t NumberOfVolumesPerAxisInPatch, std::size_t HaloSize, std::size_t NumberOfUnknowns, std::size_t NumberOfAuxiliaryVariables, bool EvaluateFlux, bool EvaluateNonconservativeProduct, bool EvaluateSource, bool EvaluateMaximumEigenvalueAfterTimeStep, class TempDataEnumeratorType >
KeywordToAvoidDuplicateSymbolsForInlinedFunctions void exahype2::fv::rusanov::sycl::timeStepWithRusanovPatchwiseHeapStateless (int targetDevice, CellData< double, double > &patchData) InlineMethod
 
template<class SolverType , std::size_t NumberOfVolumesPerAxisInPatch, std::size_t HaloSize, std::size_t NumberOfUnknowns, std::size_t NumberOfAuxiliaryVariables, bool EvaluateFlux, bool EvaluateNonconservativeProduct, bool EvaluateSource, bool EvaluateMaximumEigenvalueAfterTimeStep, class TempDataEnumeratorType >
KeywordToAvoidDuplicateSymbolsForInlinedFunctions void exahype2::fv::rusanov::sycl::timeStepWithRusanovTaskgraphUSMStateless (int targetDevice, CellData< double, double > &patchData) InlineMethod
 
template<class SolverType , std::size_t NumberOfVolumesPerAxisInPatch, std::size_t HaloSize, std::size_t NumberOfUnknowns, std::size_t NumberOfAuxiliaryVariables, bool EvaluateFlux, bool EvaluateNonconservativeProduct, bool EvaluateSource, bool EvaluateMaximumEigenvalueAfterTimeStep, class TempDataEnumeratorType >
KeywordToAvoidDuplicateSymbolsForInlinedFunctions void exahype2::fv::rusanov::sycl::timeStepWithRusanovBatchedUSMStateless (int targetDevice, CellData< double, double > &patchData) InlineMethod
 This version allocates the temporary data on the GPU via a device malloc, handing in the standard memory, and finally frees the memory again.
 
template<class SolverType , std::size_t NumberOfVolumesPerAxisInPatch, std::size_t HaloSize, std::size_t NumberOfUnknowns, std::size_t NumberOfAuxiliaryVariables, bool EvaluateFlux, bool EvaluateNonconservativeProduct, bool EvaluateSource, bool EvaluateMaximumEigenvalueAfterTimeStep, class TempDataEnumeratorType >
KeywordToAvoidDuplicateSymbolsForInlinedFunctions void exahype2::fv::rusanov::sycl::timeStepWithRusanovPatchwiseUSMStateless (int targetDevice, CellData< double, double > &patchData) InlineMethod
 1:1 translation of the numerical scheme.
 
template<class SolverType , std::size_t NumberOfVolumesPerAxisInPatch, std::size_t HaloSize, std::size_t NumberOfUnknowns, std::size_t NumberOfAuxiliaryVariables, bool EvaluateFlux, bool EvaluateNonconservativeProduct, bool EvaluateSource, bool EvaluateMaximumEigenvalueAfterTimeStep, class TempDataEnumeratorType >
KeywordToAvoidDuplicateSymbolsForInlinedFunctions void exahype2::fv::rusanov::sycl::timeStepWithRusanovTaskgraphManagedStateless (int targetDevice, CellData< double, double > &patchData) InlineMethod
 
template<class SolverType , std::size_t NumberOfVolumesPerAxisInPatch, std::size_t HaloSize, std::size_t NumberOfUnknowns, std::size_t NumberOfAuxiliaryVariables, bool EvaluateFlux, bool EvaluateNonconservativeProduct, bool EvaluateSource, bool EvaluateMaximumEigenvalueAfterTimeStep, class TempDataEnumeratorType >
KeywordToAvoidDuplicateSymbolsForInlinedFunctions void exahype2::fv::rusanov::sycl::timeStepWithRusanovBatchedManagedStateless (int targetDevice, CellData< double, double > &patchData) InlineMethod
 
template<class SolverType , std::size_t NumberOfVolumesPerAxisInPatch, std::size_t HaloSize, std::size_t NumberOfUnknowns, std::size_t NumberOfAuxiliaryVariables, bool EvaluateFlux, bool EvaluateNonconservativeProduct, bool EvaluateSource, bool EvaluateMaximumEigenvalueAfterTimeStep, class TempDataEnumeratorType >
KeywordToAvoidDuplicateSymbolsForInlinedFunctions void exahype2::fv::rusanov::sycl::timeStepWithRusanovPatchwiseManagedStateless (int targetDevice, CellData< double, double > &patchData) InlineMethod
 
template<class SolverType , std::size_t NumberOfVolumesPerAxisInPatch, std::size_t HaloSize, std::size_t NumberOfUnknowns, std::size_t NumberOfAuxiliaryVariables, bool EvaluateFlux, bool EvaluateNonconservativeProduct, bool EvaluateSource, bool EvaluateMaximumEigenvalueAfterTimeStep, class TempDataEnumeratorType >
KeywordToAvoidDuplicateSymbolsForInlinedFunctions void exahype2::fv::rusanov::sycl::timeStepWithRusanovTaskgraphCopyStateless (int targetDevice, CellData< double, double > &patchData, ::tarch::timing::Measurement &measurement) InlineMethod
 Variant of kernel invocation which times core compute time.
 
template<class SolverType , std::size_t NumberOfVolumesPerAxisInPatch, std::size_t HaloSize, std::size_t NumberOfUnknowns, std::size_t NumberOfAuxiliaryVariables, bool EvaluateFlux, bool EvaluateNonconservativeProduct, bool EvaluateSource, bool EvaluateMaximumEigenvalueAfterTimeStep, class TempDataEnumeratorType >
KeywordToAvoidDuplicateSymbolsForInlinedFunctions void exahype2::fv::rusanov::sycl::timeStepWithRusanovBatchedHeapStateless (int targetDevice, CellData< double, double > &patchData, ::tarch::timing::Measurement &measurement) InlineMethod
 
template<class SolverType , std::size_t NumberOfVolumesPerAxisInPatch, std::size_t HaloSize, std::size_t NumberOfUnknowns, std::size_t NumberOfAuxiliaryVariables, bool EvaluateFlux, bool EvaluateNonconservativeProduct, bool EvaluateSource, bool EvaluateMaximumEigenvalueAfterTimeStep, class TempDataEnumeratorType >
KeywordToAvoidDuplicateSymbolsForInlinedFunctions void exahype2::fv::rusanov::sycl::timeStepWithRusanovPatchwiseHeapStateless (int targetDevice, CellData< double, double > &patchData, ::tarch::timing::Measurement &measurement) InlineMethod
 
template<class SolverType , std::size_t NumberOfVolumesPerAxisInPatch, std::size_t HaloSize, std::size_t NumberOfUnknowns, std::size_t NumberOfAuxiliaryVariables, bool EvaluateFlux, bool EvaluateNonconservativeProduct, bool EvaluateSource, bool EvaluateMaximumEigenvalueAfterTimeStep, class TempDataEnumeratorType >
KeywordToAvoidDuplicateSymbolsForInlinedFunctions void exahype2::fv::rusanov::sycl::timeStepWithRusanovTaskgraphUSMStateless (int targetDevice, CellData< double, double > &patchData, ::tarch::timing::Measurement &measurement) InlineMethod
 
template<class SolverType , std::size_t NumberOfVolumesPerAxisInPatch, std::size_t HaloSize, std::size_t NumberOfUnknowns, std::size_t NumberOfAuxiliaryVariables, bool EvaluateFlux, bool EvaluateNonconservativeProduct, bool EvaluateSource, bool EvaluateMaximumEigenvalueAfterTimeStep, class TempDataEnumeratorType >
KeywordToAvoidDuplicateSymbolsForInlinedFunctions void exahype2::fv::rusanov::sycl::timeStepWithRusanovBatchedUSMStateless (int targetDevice, CellData< double, double > &patchData, ::tarch::timing::Measurement &measurement) InlineMethod
 
template<class SolverType , std::size_t NumberOfVolumesPerAxisInPatch, std::size_t HaloSize, std::size_t NumberOfUnknowns, std::size_t NumberOfAuxiliaryVariables, bool EvaluateFlux, bool EvaluateNonconservativeProduct, bool EvaluateSource, bool EvaluateMaximumEigenvalueAfterTimeStep, class TempDataEnumeratorType >
KeywordToAvoidDuplicateSymbolsForInlinedFunctions void exahype2::fv::rusanov::sycl::timeStepWithRusanovPatchwiseUSMStateless (int targetDevice, CellData< double, double > &patchData, ::tarch::timing::Measurement &measurement) InlineMethod
 
template<class SolverType , std::size_t NumberOfVolumesPerAxisInPatch, std::size_t HaloSize, std::size_t NumberOfUnknowns, std::size_t NumberOfAuxiliaryVariables, bool EvaluateFlux, bool EvaluateNonconservativeProduct, bool EvaluateSource, bool EvaluateMaximumEigenvalueAfterTimeStep, class TempDataEnumeratorType >
KeywordToAvoidDuplicateSymbolsForInlinedFunctions void exahype2::fv::rusanov::sycl::timeStepWithRusanovTaskgraphManagedStateless (int targetDevice, CellData< double, double > &patchData, ::tarch::timing::Measurement &measurement) InlineMethod
 
template<class SolverType , std::size_t NumberOfVolumesPerAxisInPatch, std::size_t HaloSize, std::size_t NumberOfUnknowns, std::size_t NumberOfAuxiliaryVariables, bool EvaluateFlux, bool EvaluateNonconservativeProduct, bool EvaluateSource, bool EvaluateMaximumEigenvalueAfterTimeStep, class TempDataEnumeratorType >
KeywordToAvoidDuplicateSymbolsForInlinedFunctions void exahype2::fv::rusanov::sycl::timeStepWithRusanovBatchedManagedStateless (int targetDevice, CellData< double, double > &patchData, ::tarch::timing::Measurement &measurement) InlineMethod
 
template<class SolverType , std::size_t NumberOfVolumesPerAxisInPatch, std::size_t HaloSize, std::size_t NumberOfUnknowns, std::size_t NumberOfAuxiliaryVariables, bool EvaluateFlux, bool EvaluateNonconservativeProduct, bool EvaluateSource, bool EvaluateMaximumEigenvalueAfterTimeStep, class TempDataEnumeratorType >
KeywordToAvoidDuplicateSymbolsForInlinedFunctions void exahype2::fv::rusanov::sycl::timeStepWithRusanovPatchwiseManagedStateless (int targetDevice, CellData< double, double > &patchData, ::tarch::timing::Measurement &measurement) InlineMethod
 
template<class SolverType , std::size_t NumberOfVolumesPerAxisInPatch, std::size_t HaloSize, std::size_t NumberOfUnknowns, std::size_t NumberOfAuxiliaryVariables, bool EvaluateFlux, bool EvaluateNonconservativeProduct, bool EvaluateSource, bool EvaluateMaximumEigenvalueAfterTimeStep, class TempDataEnumeratorType >
KeywordToAvoidDuplicateSymbolsForInlinedFunctions void exahype2::fv::rusanov::sycl::internal::timeStepWithRusanovTaskgraphStateless (int targetDevice, auto &patchData) InlineMethod
 Read the docu page "ExaHyPE's finite volumes Rusanov kernel implementation" (from rusanov.h) before you continue.
 
template<class SolverType , std::size_t NumberOfVolumesPerAxisInPatch, std::size_t HaloSize, std::size_t NumberOfUnknowns, std::size_t NumberOfAuxiliaryVariables, bool EvaluateFlux, bool EvaluateNonconservativeProduct, bool EvaluateSource, bool EvaluateMaximumEigenvalueAfterTimeStep, class TempDataEnumeratorType >
KeywordToAvoidDuplicateSymbolsForInlinedFunctions void exahype2::fv::rusanov::sycl::internal::timeStepWithRusanovBatchedStateless (int targetDevice, auto &patchData) InlineMethod
 Implementation of the Rusanov kernel which builds up a task graph which consists of the logical steps of a Rusanov solver.
 
template<class SolverType , std::size_t NumberOfVolumesPerAxisInPatch, std::size_t HaloSize, std::size_t NumberOfUnknowns, std::size_t NumberOfAuxiliaryVariables, bool EvaluateFlux, bool EvaluateNonconservativeProduct, bool EvaluateSource, bool EvaluateMaximumEigenvalueAfterTimeStep, class TempDataEnumeratorType >
KeywordToAvoidDuplicateSymbolsForInlinedFunctions void exahype2::fv::rusanov::sycl::internal::timeStepWithRusanovPatchwiseStateless (int targetDevice, auto &patchData) InlineMethod
 1:1 translation of the numerical scheme.