Nektar++
Loading...
Searching...
No Matches
Namespaces | Macros
StdHexExp.cpp File Reference
#include <LibUtilities/Foundations/InterpCoeff.h>
#include <StdRegions/StdHexExp.h>
#include <LibUtilities/BasicUtils/NekInline.hpp>
#include <StdRegions/Operators/SwitchLevel1.h>
#include <StdRegions/Operators/SwitchLevel2.h>
#include <StdRegions/Operators/BwdTransSumFacStdKernels.hpp>
#include <StdRegions/Operators/IProductWRTBaseSumFacStdKernels.hpp>

Go to the source code of this file.

Namespaces

namespace  Nektar
 
namespace  Nektar::StdRegions
 

Macros

#define BWDTRANS_DEF
 
#define BWDTRANS_Q(r, i)
 
#define BWDTRANS_M(r, i)
 
#define IPRODUCTWRTBASE_DEF
 
#define IPRODUCTWRTBASE_Q(r, i)
 
#define IPRODUCTWRTBASE_M(r, i)
 
#define IPRODUCTWRTBASE_DEF
 
#define IPRODUCTWRTBASE_Q(r, i)
 
#define IPRODUCTWRTBASE_M(r, i)
 

Macro Definition Documentation

◆ BWDTRANS_DEF

#define BWDTRANS_DEF
Value:
BwdTransHexKernel(nmodes0, nmodes1, nmodes2, nquad0, nquad1, nquad2, \
(const vec_t *)base0.data(), \
(const vec_t *)base1.data(), \
(const vec_t *)base2.data(), wsp0.data(), wsp1.data(), \
(const vec_t *)inarray.data(), (vec_t *)outarray.data())
static NEK_FORCE_INLINE void BwdTransHexKernel(const unsigned int nm0, const unsigned int nm1, const unsigned int nm2, const unsigned int nq0, const unsigned int nq1, const unsigned int nq2, const simd_type *basis0, const simd_type *basis1, const simd_type *basis2, simd_type *sum_irq, simd_type *sum_jir, const simd_type *in, simd_type *out)

◆ BWDTRANS_M

#define BWDTRANS_M (   r,
 
)
Value:
case NM(i): \
{ \
switch (nquad0) \
{ \
BOOST_PP_FOR_##r((NM(i), NM_P1(i), BOOST_PP_MUL(2, NM(i))), \
break; \
} \
} \
break;
#define BWDTRANS_DEF
#define BWDTRANS_Q(r, i)
#define NM(i)
#define NM_P1(i)
#define STDLEV2TEST1(r, state)
#define STDLEV2UPDATE1(r, state)

◆ BWDTRANS_Q

#define BWDTRANS_Q (   r,
 
)
Value:
case NQ(i): \
NM(i), NM(i), NM(i), NQ(i), NQ(i), NQ(i), \
(const vec_t *)base0.data(), (const vec_t *)base1.data(), \
(const vec_t *)base2.data(), wsp0.data(), wsp1.data(), \
(const vec_t *)inarray.data(), (vec_t *)outarray.data()); \
break;
#define NQ(i)

◆ IPRODUCTWRTBASE_DEF [1/2]

#define IPRODUCTWRTBASE_DEF
Value:
IProductHexKernel<false, false, true>( \
order0, order1, order2, nquad0, nquad1, nquad2, \
(const vec_t *)inarray.data(), (const vec_t *)base0.data(), \
(const vec_t *)base1.data(), (const vec_t *)base2.data(), \
(const vec_t *)m_weights[0].data(), \
(const vec_t *)m_weights[1].data(), \
(const vec_t *)m_weights[2].data(), (const vec_t *)jac.data(), \
(vec_t *)wsp0.data(), (vec_t *)wsp1.data(), (vec_t *)outarray.data(), \
1.0, CollDir0, CollDir1, CollDir2)

◆ IPRODUCTWRTBASE_DEF [2/2]

#define IPRODUCTWRTBASE_DEF
Value:
IProductHexKernel<false, false, false>( \
order0, order1, order2, nquad0, nquad1, nquad2, \
(const vec_t *)inarray.data(), (const vec_t *)base0.data(), \
(const vec_t *)base1.data(), (const vec_t *)base2.data(), \
(const vec_t *)m_weights[0].data(), \
(const vec_t *)m_weights[1].data(), \
(const vec_t *)m_weights[2].data(), (const vec_t *)jac.data(), \
(vec_t *)wsp0.data(), (vec_t *)wsp1.data(), (vec_t *)outarray.data(), \
1.0, CollDir0, CollDir1, CollDir2)

◆ IPRODUCTWRTBASE_M [1/2]

#define IPRODUCTWRTBASE_M (   r,
 
)
Value:
case NM(i): \
{ \
switch (nquad0) \
{ \
BOOST_PP_FOR_##r((NM(i), NM_P1(i), BOOST_PP_MUL(2, NM(i))), \
break; \
} \
} \
break;
#define IPRODUCTWRTBASE_DEF
#define IPRODUCTWRTBASE_Q(r, i)

◆ IPRODUCTWRTBASE_M [2/2]

#define IPRODUCTWRTBASE_M (   r,
 
)
Value:
case NM(i): \
{ \
switch (nquad0) \
{ \
BOOST_PP_FOR_##r((NM(i), NM_P1(i), BOOST_PP_MUL(2, NM(i))), \
break; \
} \
} \
break;

◆ IPRODUCTWRTBASE_Q [1/2]

#define IPRODUCTWRTBASE_Q (   r,
 
)
Value:
case NQ(i): \
IProductHexKernel<false, false, true>( \
NM(i), NM(i), NM(i), NQ(i), NQ(i), NQ(i), \
(const vec_t *)inarray.data(), (const vec_t *)base0.data(), \
(const vec_t *)base1.data(), (const vec_t *)base2.data(), \
(const vec_t *)m_weights[0].data(), \
(const vec_t *)m_weights[1].data(), \
(const vec_t *)m_weights[2].data(), (const vec_t *)jac.data(), \
(vec_t *)wsp0.data(), (vec_t *)wsp1.data(), \
(vec_t *)outarray.data(), 1.0, CollDir0, CollDir1, CollDir2); \
break;
static NEK_FORCE_INLINE void IProductHexKernel(const unsigned int nm0, const unsigned int nm1, const unsigned int nm2, const unsigned int nq0, const unsigned int nq1, const unsigned int nq2, const simd_type *in, const simd_type *basis0, const simd_type *basis1, const simd_type *basis2, const simd_type *w0, const simd_type *w1, const simd_type *w2, const simd_type *jac, simd_type *sums_kj, simd_type *sums_k, simd_type *out, typename simd_type::scalarType scale=1.0, const bool CollDir0=false, const bool CollDir1=false, const bool CollDir2=false)

◆ IPRODUCTWRTBASE_Q [2/2]

#define IPRODUCTWRTBASE_Q (   r,
 
)
Value:
case NQ(i): \
IProductHexKernel<false, false, false>( \
NM(i), NM(i), NM(i), NQ(i), NQ(i), NQ(i), \
(const vec_t *)inarray.data(), (const vec_t *)base0.data(), \
(const vec_t *)base1.data(), (const vec_t *)base2.data(), \
(const vec_t *)m_weights[0].data(), \
(const vec_t *)m_weights[1].data(), \
(const vec_t *)m_weights[2].data(), (const vec_t *)jac.data(), \
(vec_t *)wsp0.data(), (vec_t *)wsp1.data(), \
(vec_t *)outarray.data(), 1.0, CollDir0, CollDir1, CollDir2); \
break;