Alsvinn
0.5.3
The fast FVM simulator with UQ support
|
Namespaces | |
buckleyleverett | |
burgers | |
cubic | |
euler | |
linear | |
Classes | |
class | Central |
class | has_stencil |
SFINAE test, see http://stackoverflow.com/a/257382. More... | |
class | LaxFriedrichs |
class | NumericalFlux |
class | NumericalFluxCPU |
class | NumericalFluxCUDA |
class | NumericalFluxFactory |
class | Rusanov |
class | ScalarEntropyConservativeFlux |
class | TecnoCombined4 |
class | TecnoCombined6 |
Functions | |
template<class Equation , class Function > | |
void | for_each_flux (Function f) |
template<class NumericalFluxType > | |
__device__ __host__ auto | getStencil (NumericalFluxType) -> typename std::enable_if< has_stencil< NumericalFluxType >::value, decltype(NumericalFluxType::stencil())>::type |
Gets the stencil for numerical fluxes that have a stencil defined. More... | |
template<class NumericalFluxType > | |
__device__ __host__ std::enable_if< !has_stencil< NumericalFluxType >::value, ivec2 >::type | getStencil (NumericalFluxType) |
template<class Flux , class Equation , size_t direction> | |
__device__ __host__ real | computeFluxForStencil (const Equation &eq, ivec2 indices, typename Equation::ConstViews &left, typename Equation::ConstViews &right, typename Equation::ConservedVariables &out) |
template<class Flux , class Equation , size_t direction> | |
__device__ __host__ real | computeFluxForStencil (const Equation &eq, ivec4 indices, typename Equation::ConstViews &left, typename Equation::ConstViews &right, typename Equation::ConservedVariables &out) |
template<class Flux , class Equation , size_t direction> | |
__device__ __host__ real | computeFluxForStencil (const Equation &eq, ivec6 indices, typename Equation::ConstViews &left, typename Equation::ConstViews &right, typename Equation::ConservedVariables &out) |
__device__ __host__ real | bar (real left, real right) |
__device__ __host__ real | diff (real left, real right) |
__device__ __host__ real | ln (real left, real right) |
__device__ __host__ real | divLn (real left, real right, real F) |
__device__ __host__ real | div (real a, real b) |
template<class Flux , class Equation , size_t direction> | |
void | computeNetFlux (const Equation &eq, const volume::Volume &left, const volume::Volume &right, volume::Volume &out, volume::Volume &temporaryVolume, real &waveSpeed, size_t numberOfGhostCells, const ivec3 start, const ivec3 end) |
template<class Equation > | |
void | makeZero (Equation &equation, volume::Volume &out, const ivec3 start, const ivec3 end) |
|
inline |
__device__ __host__ real alsfvm::numflux::computeFluxForStencil | ( | const Equation & | eq, |
ivec2 | indices, | ||
typename Equation::ConstViews & | left, | ||
typename Equation::ConstViews & | right, | ||
typename Equation::ConservedVariables & | out | ||
) |
__device__ __host__ real alsfvm::numflux::computeFluxForStencil | ( | const Equation & | eq, |
ivec4 | indices, | ||
typename Equation::ConstViews & | left, | ||
typename Equation::ConstViews & | right, | ||
typename Equation::ConservedVariables & | out | ||
) |
For higher order fluxes.
__device__ __host__ real alsfvm::numflux::computeFluxForStencil | ( | const Equation & | eq, |
ivec6 | indices, | ||
typename Equation::ConstViews & | left, | ||
typename Equation::ConstViews & | right, | ||
typename Equation::ConservedVariables & | out | ||
) |
For higher order fluxes.
void alsfvm::numflux::computeNetFlux | ( | const Equation & | eq, |
const volume::Volume & | left, | ||
const volume::Volume & | right, | ||
volume::Volume & | out, | ||
volume::Volume & | temporaryVolume, | ||
real & | waveSpeed, | ||
size_t | numberOfGhostCells, | ||
const ivec3 | start, | ||
const ivec3 | end | ||
) |
|
inline |
|
inline |
Computes F/ln (left, right), but takes care if divLn==0, then it returns 0
void alsfvm::numflux::for_each_flux | ( | Function | f | ) |
__device__ __host__ auto alsfvm::numflux::getStencil | ( | NumericalFluxType | ) | -> typename std::enable_if<has_stencil<NumericalFluxType>::value, decltype(NumericalFluxType::stencil())>::type |
Gets the stencil for numerical fluxes that have a stencil defined.
__device__ __host__ std::enable_if< !has_stencil<NumericalFluxType>::value,ivec2 >::type alsfvm::numflux::getStencil | ( | NumericalFluxType | ) |
Gets the default numerical stencil (0,1) See http://stackoverflow.com/a/31860104 for how the overloading works
|
inline |
void alsfvm::numflux::makeZero | ( | Equation & | equation, |
volume::Volume & | out, | ||
const ivec3 | start, | ||
const ivec3 | end | ||
) |