36#ifndef NEKTAR_LIBRARY_COLLECTIONS_IPRODUCT_H
37#define NEKTAR_LIBRARY_COLLECTIONS_IPRODUCT_H
42void QuadIProduct(
bool colldir0,
bool colldir1,
int numElmt,
int nquad0,
43 int nquad1,
int nmodes0,
int nmodes1,
44 const Array<OneD, const NekDouble> &base0,
45 const Array<OneD, const NekDouble> &base1,
46 const Array<OneD, const NekDouble> &jac,
47 const Array<OneD, const NekDouble> &input,
48 Array<OneD, NekDouble> &output, Array<OneD, NekDouble> &wsp);
50void TriIProduct(
bool sortTopVertex,
int numElmt,
int nquad0,
int nquad1,
51 int nmodes0,
int nmodes1,
52 const Array<OneD, const NekDouble> &base0,
53 const Array<OneD, const NekDouble> &base1,
54 const Array<OneD, const NekDouble> &jac,
55 const Array<OneD, const NekDouble> &input,
56 Array<OneD, NekDouble> &output, Array<OneD, NekDouble> &wsp);
58void HexIProduct(
bool colldir0,
bool colldir1,
bool colldir2,
int numElmt,
59 int nquad0,
int nquad1,
int nquad2,
int nmodes0,
int nmodes1,
60 int nmodes2,
const Array<OneD, const NekDouble> &base0,
61 const Array<OneD, const NekDouble> &base1,
62 const Array<OneD, const NekDouble> &base2,
63 const Array<OneD, const NekDouble> &jac,
64 const Array<OneD, const NekDouble> &input,
65 Array<OneD, NekDouble> &output, Array<OneD, NekDouble> &wsp);
67void PrismIProduct(
bool sortTopVert,
int numElmt,
int nquad0,
int nquad1,
68 int nquad2,
int nmodes0,
int nmodes1,
int nmodes2,
69 const Array<OneD, const NekDouble> &base0,
70 const Array<OneD, const NekDouble> &base1,
71 const Array<OneD, const NekDouble> &base2,
72 const Array<OneD, const NekDouble> &jac,
73 const Array<OneD, const NekDouble> &input,
74 Array<OneD, NekDouble> &output, Array<OneD, NekDouble> &wsp);
76void PyrIProduct(
bool sortTopVert,
int numElmt,
int nquad0,
int nquad1,
77 int nquad2,
int nmodes0,
int nmodes1,
int nmodes2,
78 const Array<OneD, const NekDouble> &base0,
79 const Array<OneD, const NekDouble> &base1,
80 const Array<OneD, const NekDouble> &base2,
81 const Array<OneD, const NekDouble> &jac,
82 const Array<OneD, const NekDouble> &input,
83 Array<OneD, NekDouble> &output, Array<OneD, NekDouble> &wsp);
85void TetIProduct(
bool sortTopEdge,
int numElmt,
int nquad0,
int nquad1,
86 int nquad2,
int nmodes0,
int nmodes1,
int nmodes2,
87 const Array<OneD, const NekDouble> &base0,
88 const Array<OneD, const NekDouble> &base1,
89 const Array<OneD, const NekDouble> &base2,
90 const Array<OneD, const NekDouble> &jac,
91 const Array<OneD, const NekDouble> &input,
92 Array<OneD, NekDouble> &output, Array<OneD, NekDouble> &wsp);
void TetIProduct(bool sortTopEdge, int numElmt, int nquad0, int nquad1, int nquad2, int nmodes0, int nmodes1, int nmodes2, const Array< OneD, const NekDouble > &base0, const Array< OneD, const NekDouble > &base1, const Array< OneD, const NekDouble > &base2, const Array< OneD, const NekDouble > &jac, const Array< OneD, const NekDouble > &input, Array< OneD, NekDouble > &output, Array< OneD, NekDouble > &wsp)
void PyrIProduct(bool sortTopVert, int numElmt, int nquad0, int nquad1, int nquad2, int nmodes0, int nmodes1, int nmodes2, const Array< OneD, const NekDouble > &base0, const Array< OneD, const NekDouble > &base1, const Array< OneD, const NekDouble > &base2, const Array< OneD, const NekDouble > &jac, const Array< OneD, const NekDouble > &input, Array< OneD, NekDouble > &output, Array< OneD, NekDouble > &wsp)
void TriIProduct(bool sortTopVertex, int numElmt, int nquad0, int nquad1, int nmodes0, int nmodes1, const Array< OneD, const NekDouble > &base0, const Array< OneD, const NekDouble > &base1, const Array< OneD, const NekDouble > &jac, const Array< OneD, const NekDouble > &input, Array< OneD, NekDouble > &output, Array< OneD, NekDouble > &wsp)
void QuadIProduct(bool colldir0, bool colldir1, int numElmt, int nquad0, int nquad1, int nmodes0, int nmodes1, const Array< OneD, const NekDouble > &base0, const Array< OneD, const NekDouble > &base1, const Array< OneD, const NekDouble > &jac, const Array< OneD, const NekDouble > &input, Array< OneD, NekDouble > &output, Array< OneD, NekDouble > &wsp)
void PrismIProduct(bool sortTopVert, int numElmt, int nquad0, int nquad1, int nquad2, int nmodes0, int nmodes1, int nmodes2, const Array< OneD, const NekDouble > &base0, const Array< OneD, const NekDouble > &base1, const Array< OneD, const NekDouble > &base2, const Array< OneD, const NekDouble > &jac, const Array< OneD, const NekDouble > &input, Array< OneD, NekDouble > &output, Array< OneD, NekDouble > &wsp)
void HexIProduct(bool colldir0, bool colldir1, bool colldir2, int numElmt, int nquad0, int nquad1, int nquad2, int nmodes0, int nmodes1, int nmodes2, const Array< OneD, const NekDouble > &base0, const Array< OneD, const NekDouble > &base1, const Array< OneD, const NekDouble > &base2, const Array< OneD, const NekDouble > &jac, const Array< OneD, const NekDouble > &input, Array< OneD, NekDouble > &output, Array< OneD, NekDouble > &wsp)