1#ifndef NUMERIC_ADVECT_ADVECT_H
2#define NUMERIC_ADVECT_ADVECT_H
7#include "AMReX_Extension.H"
9#include "Numeric/Stencil.H"
30template<
typename... OBJ>
37 static constexpr const char*
names[] = { OBJ::name... };
41 template<
int I = 0,
class Phi,
class Velocity>
51 if constexpr (
I <
sizeof...(OBJ))
65 template<
int I = 0,
class Phi,
class Velocity>
78 template<
class Phi,
class Velocity>
98 if constexpr (
I <
sizeof...(OBJ))
101 return std::get<I>(
obj).NGhost();
122 if constexpr (
I <
sizeof...(OBJ))
125 return std::get<I>(
obj).phi_location;
140 if constexpr (
I <
sizeof...(OBJ))
143 return std::get<I>(
obj).velocity_location;
static constexpr const char * names[]
AMREX_FORCE_INLINE AMREX_GPU_HOST_DEVICE Set::Vector Vector(Phi const &phi, Velocity const &velocity, int i, int j, int k, int comp, const Set::Scalar *DX, Options options={}, std::array< Numeric::StencilType, AMREX_SPACEDIM > stencil=Numeric::DefaultType) const
AMREX_FORCE_INLINE AMREX_GPU_HOST_DEVICE bool IsDefined() const
AMREX_FORCE_INLINE AMREX_GPU_HOST_DEVICE int NGhost() const
AMREX_FORCE_INLINE AMREX_GPU_HOST_DEVICE Set::Scalar operator()(Phi const &phi, Velocity const &velocity, int i, int j, int k, int comp, const Set::Scalar *DX, Options options={}, std::array< Numeric::StencilType, AMREX_SPACEDIM > stencil=Numeric::DefaultType) const
AMREX_FORCE_INLINE AMREX_GPU_HOST_DEVICE Set::HC PhiLocation() const
AMREX_FORCE_INLINE AMREX_GPU_HOST_DEVICE Set::HC VelocityLocation() const
AMREX_FORCE_INLINE AMREX_GPU_HOST_DEVICE Set::Scalar Scalar(Phi const &phi, Velocity const &velocity, int i, int j, int k, int comp, const Set::Scalar *DX, Options options={}, std::array< Numeric::StencilType, AMREX_SPACEDIM > stencil=Numeric::DefaultType) const
This namespace contains some numerical tools.
static std::array< StencilType, AMREX_SPACEDIM > DefaultType
Eigen::Matrix< amrex::Real, AMREX_SPACEDIM, 1 > Vector
void Abort(const char *msg)