1 #ifndef AMREX_EB2_IF_ROTATION_H_
2 #define AMREX_EB2_IF_ROTATION_H_
3 #include <AMReX_Config.H>
20 :
m_f(std::move(a_f)),
27 #if (AMREX_SPACEDIM==2)
28 [[nodiscard]]
inline Real operator() (
const RealArray& p)
const noexcept
35 template <class U=F, std::enable_if_t<IsGPUable<U>::value,
int> = 0>
37 Real operator() (Real x, Real y)
const noexcept
44 #if (AMREX_SPACEDIM==3)
45 [[nodiscard]]
inline Real operator() (
const RealArray& p)
const noexcept
52 return m_f({p[0], y, z});
58 return m_f({
x, p[1], z});
64 return m_f({
x, y, p[2]});
69 template <class U=F, std::enable_if_t<IsGPUable<U>::value,
int> = 0>
71 Real operator() (Real x, Real y, Real z)
const noexcept
110 rotate (F&&
f,
const Real angle,
const int dir)
#define AMREX_GPU_HOST_DEVICE
Definition: AMReX_GpuQualifiers.H:20
Definition: AMReX_EB2_IF_Rotation.H:16
int m_dir
Definition: AMReX_EB2_IF_Rotation.H:101
Real m_sin_angle
Definition: AMReX_EB2_IF_Rotation.H:100
Real m_cos_angle
Definition: AMReX_EB2_IF_Rotation.H:99
F m_f
Definition: AMReX_EB2_IF_Rotation.H:98
RotationIF(F a_f, Real angle, int dir)
Definition: AMReX_EB2_IF_Rotation.H:19
Definition: AMReX_FabArrayBase.H:32
constexpr RotationIF< std::decay_t< F > > rotate(F &&f, const Real angle, const int dir)
Definition: AMReX_EB2_IF_Rotation.H:110
static int f(amrex::Real t, N_Vector y_data, N_Vector y_rhs, void *user_data)
Definition: AMReX_SundialsIntegrator.H:44
Array< Real, AMREX_SPACEDIM > RealArray
Definition: AMReX_Array.H:26
Definition: AMReX_EB2_IF_Base.H:15