Nektar++
NodalUtil.h
Go to the documentation of this file.
1 ///////////////////////////////////////////////////////////////////////////////
2 //
3 // File NodalUtil.h
4 //
5 // For more information, please see: http://www.nektar.info
6 //
7 // The MIT License
8 //
9 // Copyright (c) 2006 Division of Applied Mathematics, Brown University (USA),
10 // Department of Aeronautics, Imperial College London (UK), and Scientific
11 // Computing and Imaging Institute, University of Utah (USA).
12 //
13 // License for the specific language governing rights and limitations under
14 // Permission is hereby granted, free of charge, to any person obtaining a
15 // copy of this software and associated documentation files (the "Software"),
16 // to deal in the Software without restriction, including without limitation
17 // the rights to use, copy, modify, merge, publish, distribute, sublicense,
18 // and/or sell copies of the Software, and to permit persons to whom the
19 // Software is furnished to do so, subject to the following conditions:
20 //
21 // The above copyright notice and this permission notice shall be included
22 // in all copies or substantial portions of the Software.
23 //
24 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
25 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
26 // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
27 // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
28 // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
29 // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
30 // DEALINGS IN THE SOFTWARE.
31 //
32 // Description: 2D and 3D Nodal Triangle and Tetrahedron Utilities header file --
33 // Basis function, Interpolation, Integral, Derivation, etc.
34 //
35 ///////////////////////////////////////////////////////////////////////////////
36 
37 #ifndef NODALUTIL_H
38 #define NODALUTIL_H
39 
45 
46 
47 //#include <LibUtilities/BasicUtils/BasicUtilsFwd.hpp> // for NekManager
49 
50 
51 namespace Nektar
52 {
53  namespace LibUtilities
54  {
55 
56  // /////////////////////////////////////
57  // General matrix and vector stuff
58  template< typename T > NekVector<T> GetColumn(const NekMatrix<T> & matA, int n);
59  LIB_UTILITIES_EXPORT NekMatrix<NekDouble> & SetColumn(NekMatrix<NekDouble> & matA, int n, const NekVector<NekDouble> & x);
60  LIB_UTILITIES_EXPORT NekVector<NekDouble> GetE(int rows, int n);
61  LIB_UTILITIES_EXPORT NekMatrix<NekDouble> Invert(const NekMatrix<NekDouble> & matA);
62  LIB_UTILITIES_EXPORT NekMatrix<NekDouble> GetTranspose(const NekMatrix<NekDouble> & matA);
63  LIB_UTILITIES_EXPORT int GetSize(const Array<OneD, const NekDouble> & x);
64  LIB_UTILITIES_EXPORT int GetSize(const NekVector<NekDouble> & x);
65  LIB_UTILITIES_EXPORT int GetDegree(int nBasisFunctions);
67  LIB_UTILITIES_EXPORT NekVector<NekDouble> ToVector( const Array<OneD, const NekDouble> & x );
68  LIB_UTILITIES_EXPORT Array<OneD, NekDouble> ToArray( const NekVector<NekDouble> & x );
69  LIB_UTILITIES_EXPORT NekVector<NekDouble> Hadamard( const NekVector<NekDouble> & x, const NekVector<NekDouble> & y );
70  LIB_UTILITIES_EXPORT NekVector<NekDouble> VectorPower( const NekVector<NekDouble> & x, NekDouble p );
71  LIB_UTILITIES_EXPORT std::string MatrixToString( const NekMatrix<NekDouble> & A, int precision = 2, NekDouble threshold = 1e12 );
72  LIB_UTILITIES_EXPORT std::string VectorToString( const NekVector<NekDouble> & v, int precision = 2, NekDouble threshold = 1e12 );
73 
74  // ////////////////////////////////////////////////////////////////
75  // Polynomials(Jacobi, Legendre, and Dubiner) and its derivations
76  LIB_UTILITIES_EXPORT NekVector<NekDouble> LegendrePoly(int degree, const NekVector<NekDouble>& x);
77  LIB_UTILITIES_EXPORT NekVector<NekDouble> DubinerPoly(int p, int q, const NekVector<NekDouble>& x, const NekVector<NekDouble>& y);
78  LIB_UTILITIES_EXPORT NekVector<NekDouble> JacobiPoly(int degree, const NekVector<NekDouble>& x, NekDouble alpha, NekDouble beta);
80  LIB_UTILITIES_EXPORT NekVector<NekDouble> LegendrePolyDerivative(int degree, const NekVector<NekDouble>& x);
81  LIB_UTILITIES_EXPORT NekVector<NekDouble> DubinerPolyXDerivative(int p, int q, const NekVector<NekDouble>& x, const NekVector<NekDouble>& y);
82  LIB_UTILITIES_EXPORT NekVector<NekDouble> DubinerPolyYDerivative(int p, int q, const NekVector<NekDouble>& x, const NekVector<NekDouble>& y);
83  LIB_UTILITIES_EXPORT NekVector<NekDouble> JacobiPolyDerivative(int degree, const NekVector<NekDouble>& x, int alpha, int beta);
84 
85  // /////////////////////////////
86  // Triangle stuff
87  LIB_UTILITIES_EXPORT NekVector<NekDouble> MakeDubinerQuadratureSystem(int nBasisFunctions);
88  LIB_UTILITIES_EXPORT SharedNekMatrixPtr MakeVmatrixOfDubinerPolynomial(const NekVector<NekDouble>& x, const NekVector<NekDouble>& y);
89  LIB_UTILITIES_EXPORT NekVector<NekDouble> MakeQuadratureWeights(const NekVector<NekDouble>& x, const NekVector<NekDouble>& y);
90  LIB_UTILITIES_EXPORT NekMatrix<NekDouble> GetVandermonde(const NekVector<NekDouble>& x, const NekVector<NekDouble>& y);
91  LIB_UTILITIES_EXPORT NekMatrix<NekDouble> GetVandermonde(const NekVector<NekDouble>& x, const NekVector<NekDouble>& y, int degree);
92  LIB_UTILITIES_EXPORT NekMatrix<NekDouble> GetVandermondeForXDerivative(const NekVector<NekDouble>& x, const NekVector<NekDouble>& y, int degree);
93  LIB_UTILITIES_EXPORT NekMatrix<NekDouble> GetVandermondeForXDerivative(const NekVector<NekDouble>& x, const NekVector<NekDouble>& y);
94  LIB_UTILITIES_EXPORT NekMatrix<NekDouble> GetVandermondeForYDerivative(const NekVector<NekDouble>& x, const NekVector<NekDouble>& y, int degree);
95  LIB_UTILITIES_EXPORT NekMatrix<NekDouble> GetVandermondeForYDerivative(const NekVector<NekDouble>& x, const NekVector<NekDouble>& y);
96  LIB_UTILITIES_EXPORT NekMatrix<NekDouble> GetInterpolationMatrix(const NekVector<NekDouble>& x, const NekVector<NekDouble>& y,
97  const NekVector<NekDouble>& xi, const NekVector<NekDouble>& yi);
98  LIB_UTILITIES_EXPORT Points<NekDouble>::MatrixSharedPtrType GetYDerivativeMatrix(const NekVector<NekDouble>& x, const NekVector<NekDouble>& y,
99  const NekVector<NekDouble>& xi, const NekVector<NekDouble>& yi);
100  LIB_UTILITIES_EXPORT Points<NekDouble>::MatrixSharedPtrType GetXDerivativeMatrix(const NekVector<NekDouble>& x, const NekVector<NekDouble>& y,
101  const NekVector<NekDouble>& xi, const NekVector<NekDouble>& yi);
102 
103  // /////////////////////////////
104  // Tetrahedron stuff
105  LIB_UTILITIES_EXPORT int GetTetDegree(int nBasisFunc);
106  LIB_UTILITIES_EXPORT NekVector<NekDouble> TetrahedralBasis(int p, int q, int r, const NekVector<NekDouble>& x,
107  const NekVector<NekDouble>& y, const NekVector<NekDouble>& z);
108  LIB_UTILITIES_EXPORT NekMatrix<NekDouble> GetTetVandermonde(const NekVector<NekDouble>& x, const NekVector<NekDouble>& y, const NekVector<NekDouble>& z, int degree);
109  LIB_UTILITIES_EXPORT NekMatrix<NekDouble> GetTetVandermonde(const NekVector<NekDouble>& x, const NekVector<NekDouble>& y, const NekVector<NekDouble>& z);
110  LIB_UTILITIES_EXPORT SharedNekMatrixPtr MakeVmatrixOfTet(const NekVector<NekDouble>& x, const NekVector<NekDouble>& y, const NekVector<NekDouble>& z);
111  LIB_UTILITIES_EXPORT NekMatrix<NekDouble> GetTetInterpolationMatrix(const NekVector<NekDouble>& x, const NekVector<NekDouble>& y, const NekVector<NekDouble>& z,
112  const NekVector<NekDouble>& xi, const NekVector<NekDouble>& yi, const NekVector<NekDouble>& zi);
113  LIB_UTILITIES_EXPORT NekVector<NekDouble> MakeTetWeights(const NekVector<NekDouble>& x, const NekVector<NekDouble>& y, const NekVector<NekDouble>& z);
114  LIB_UTILITIES_EXPORT NekVector<NekDouble> MakeTetQuadratureSystem(int nBasisFunctions);
115  LIB_UTILITIES_EXPORT NekVector<NekDouble> TetXDerivative(int p, int q, int r, const NekVector<NekDouble>& x, const NekVector<NekDouble>& y,
116  const NekVector<NekDouble>& z);
117  LIB_UTILITIES_EXPORT NekMatrix<NekDouble> GetVandermondeForTetXDerivative(const NekVector<NekDouble>& x, const NekVector<NekDouble>& y, const NekVector<NekDouble>& z);
118  LIB_UTILITIES_EXPORT NekMatrix<NekDouble> GetVandermondeForTetXDerivative(const NekVector<NekDouble>& x, const NekVector<NekDouble>& y, const NekVector<NekDouble>& z,
119  int degree);
120  LIB_UTILITIES_EXPORT Points<NekDouble>::MatrixSharedPtrType GetTetXDerivativeMatrix(const NekVector<NekDouble>& x, const NekVector<NekDouble>& y,
121  const NekVector<NekDouble>& z, const NekVector<NekDouble>& xi, const NekVector<NekDouble>& yi, const NekVector<NekDouble>& zi);
122 
123  LIB_UTILITIES_EXPORT NekVector<NekDouble> TetYDerivative(int p, int q, int r, const NekVector<NekDouble>& x, const NekVector<NekDouble>& y,
124  const NekVector<NekDouble>& z);
125  LIB_UTILITIES_EXPORT NekMatrix<NekDouble> GetVandermondeForTetYDerivative(const NekVector<NekDouble>& x, const NekVector<NekDouble>& y, const NekVector<NekDouble>& z);
126  LIB_UTILITIES_EXPORT NekMatrix<NekDouble> GetVandermondeForTetYDerivative(const NekVector<NekDouble>& x, const NekVector<NekDouble>& y, const NekVector<NekDouble>& z,
127  int degree);
128  LIB_UTILITIES_EXPORT Points<NekDouble>::MatrixSharedPtrType GetTetYDerivativeMatrix(const NekVector<NekDouble>& x, const NekVector<NekDouble>& y,
129  const NekVector<NekDouble>& z, const NekVector<NekDouble>& xi, const NekVector<NekDouble>& yi, const NekVector<NekDouble>& zi);
130 
131  LIB_UTILITIES_EXPORT NekVector<NekDouble> TetZDerivative(int p, int q, int r, const NekVector<NekDouble>& x, const NekVector<NekDouble>& y,
132  const NekVector<NekDouble>& z);
133  LIB_UTILITIES_EXPORT NekMatrix<NekDouble> GetVandermondeForTetZDerivative(const NekVector<NekDouble>& x, const NekVector<NekDouble>& y, const NekVector<NekDouble>& z);
134  LIB_UTILITIES_EXPORT NekMatrix<NekDouble> GetVandermondeForTetZDerivative(const NekVector<NekDouble>& x, const NekVector<NekDouble>& y, const NekVector<NekDouble>& z,
135  int degree);
136  LIB_UTILITIES_EXPORT Points<NekDouble>::MatrixSharedPtrType GetTetZDerivativeMatrix(const NekVector<NekDouble>& x, const NekVector<NekDouble>& y,
137  const NekVector<NekDouble>& z, const NekVector<NekDouble>& xi, const NekVector<NekDouble>& yi, const NekVector<NekDouble>& zi);
138 
139 
140  // ///////////////////////////////////////////////////////////////////////////////////////////////////////////////
141  // Monomial Vandermonde stuff for Triangle : Useful to test triangle(integration, interpolation, and derivation)
142  LIB_UTILITIES_EXPORT NekMatrix<NekDouble> GetMonomialVandermonde(const NekVector<NekDouble>& x, const NekVector<NekDouble>& y, int degree);
143  LIB_UTILITIES_EXPORT NekMatrix<NekDouble> GetMonomialVandermonde(const NekVector<NekDouble>& x, const NekVector<NekDouble>& y);
144  LIB_UTILITIES_EXPORT NekMatrix<NekDouble> GetXDerivativeOfMonomialVandermonde(const NekVector<NekDouble>& x, const NekVector<NekDouble>& y, int degree);
145  LIB_UTILITIES_EXPORT NekMatrix<NekDouble> GetXDerivativeOfMonomialVandermonde(const NekVector<NekDouble>& x, const NekVector<NekDouble>& y);
146  LIB_UTILITIES_EXPORT NekMatrix<NekDouble> GetYDerivativeOfMonomialVandermonde(const NekVector<NekDouble>& x, const NekVector<NekDouble>& y, int degree);
147  LIB_UTILITIES_EXPORT NekMatrix<NekDouble> GetYDerivativeOfMonomialVandermonde(const NekVector<NekDouble>& x, const NekVector<NekDouble>& y);
148  LIB_UTILITIES_EXPORT NekVector<NekDouble> GetIntegralOfMonomialVandermonde(int degree);
149 
150 
151  // ///////////////////////////////////////////////////////////////////////////////////////////////////////////////
152  // Monomial Vandermonde stuff for Tetrahedron : Useful to test tetrahedron(integration, interpolation, and derivation)
153  LIB_UTILITIES_EXPORT NekMatrix<NekDouble> GetMonomialVandermonde(const NekVector<NekDouble>& x, const NekVector<NekDouble>& y,
154  const NekVector<NekDouble>& z, int degree);
155  LIB_UTILITIES_EXPORT NekMatrix<NekDouble> GetMonomialVandermonde(const NekVector<NekDouble>& x, const NekVector<NekDouble>& y, const NekVector<NekDouble>& z);
156  LIB_UTILITIES_EXPORT NekMatrix<NekDouble> GetTetXDerivativeOfMonomialVandermonde(const NekVector<NekDouble>& x, const NekVector<NekDouble>& y,
157  const NekVector<NekDouble>& z, int degree);
158  LIB_UTILITIES_EXPORT NekMatrix<NekDouble> GetTetXDerivativeOfMonomialVandermonde(const NekVector<NekDouble>& x, const NekVector<NekDouble>& y,
159  const NekVector<NekDouble>& z);
160  LIB_UTILITIES_EXPORT NekMatrix<NekDouble> GetTetYDerivativeOfMonomialVandermonde(const NekVector<NekDouble>& x, const NekVector<NekDouble>& y,
161  const NekVector<NekDouble>& z, int degree);
162  LIB_UTILITIES_EXPORT NekMatrix<NekDouble> GetTetYDerivativeOfMonomialVandermonde(const NekVector<NekDouble>& x, const NekVector<NekDouble>& y,
163  const NekVector<NekDouble>& z);
164  LIB_UTILITIES_EXPORT NekMatrix<NekDouble> GetTetZDerivativeOfMonomialVandermonde(const NekVector<NekDouble>& x, const NekVector<NekDouble>& y,
165  const NekVector<NekDouble>& z, int degree);
166  LIB_UTILITIES_EXPORT NekMatrix<NekDouble> GetTetZDerivativeOfMonomialVandermonde(const NekVector<NekDouble>& x, const NekVector<NekDouble>& y,
167  const NekVector<NekDouble>& z);
168 
169  } // end of LibUtilities namespace
170 } // end of Nektar namespace
171 
172 #endif //NODALUTIL_H
NekMatrix< NekDouble > GetVandermondeForYDerivative(const NekVector< NekDouble > &x, const NekVector< NekDouble > &y, int degree)
Definition: NodalUtil.cpp:1280
std::string MatrixToString(const NekMatrix< NekDouble > &A, int precision, NekDouble expSigFigs)
Definition: NodalUtil.cpp:157
int GetDegree(int nBasisFunctions)
Definition: NodalUtil.cpp:207
NekVector< NekDouble > TetYDerivative(int p, int q, int r, const NekVector< NekDouble > &x, const NekVector< NekDouble > &y, const NekVector< NekDouble > &z)
Definition: NodalUtil.cpp:886
NekVector< NekDouble > MakeTetQuadratureSystem(int nBasisFunctions)
Definition: NodalUtil.cpp:245
NekMatrix< NekDouble > GetVandermondeForTetXDerivative(const NekVector< NekDouble > &x, const NekVector< NekDouble > &y, const NekVector< NekDouble > &z, int degree)
Definition: NodalUtil.cpp:772
SharedNekMatrixPtr MakeVmatrixOfTet(const NekVector< NekDouble > &x, const NekVector< NekDouble > &y, const NekVector< NekDouble > &z)
Definition: NodalUtil.cpp:547
NekMatrix< NekDouble > GetTetInterpolationMatrix(const NekVector< NekDouble > &x, const NekVector< NekDouble > &y, const NekVector< NekDouble > &z, const NekVector< NekDouble > &xi, const NekVector< NekDouble > &yi, const NekVector< NekDouble > &zi)
Definition: NodalUtil.cpp:594
NekMatrix< NekDouble > GetTetVandermonde(const NekVector< NekDouble > &x, const NekVector< NekDouble > &y, const NekVector< NekDouble > &z, int degree)
Definition: NodalUtil.cpp:477
int GetTetDegree(int nBasisFunc)
Definition: NodalUtil.cpp:222
NekVector< NekDouble > Hadamard(const NekVector< NekDouble > &x, const NekVector< NekDouble > &y)
Definition: NodalUtil.cpp:131
NekMatrix< NekDouble > GetTetXDerivativeOfMonomialVandermonde(const NekVector< NekDouble > &x, const NekVector< NekDouble > &y, const NekVector< NekDouble > &z, int degree)
Definition: NodalUtil.cpp:1427
NekVector< NekDouble > DubinerPolyXDerivative(int p, int q, const NekVector< NekDouble > &x, const NekVector< NekDouble > &y)
Definition: NodalUtil.cpp:664
NekVector< NekDouble > TetZDerivative(int p, int q, int r, const NekVector< NekDouble > &x, const NekVector< NekDouble > &y, const NekVector< NekDouble > &z)
Definition: NodalUtil.cpp:1064
NekVector< NekDouble > MakeTetWeights(const NekVector< NekDouble > &x, const NekVector< NekDouble > &y, const NekVector< NekDouble > &z)
Definition: NodalUtil.cpp:562
NekVector< NekDouble > MakeDubinerQuadratureSystem(int nBasisFunctions)
Definition: NodalUtil.cpp:236
NekMatrix< NekDouble > GetVandermondeForXDerivative(const NekVector< NekDouble > &x, const NekVector< NekDouble > &y, int degree)
Definition: NodalUtil.cpp:821
NekVector< NekDouble > LegendrePolyDerivative(int degree, const NekVector< NekDouble > &x)
Definition: NodalUtil.cpp:624
NekMatrix< NekDouble > GetVandermonde(const NekVector< NekDouble > &x, const NekVector< NekDouble > &y, int degree)
Definition: NodalUtil.cpp:515
NekVector< NekDouble > MakeQuadratureWeights(const NekVector< NekDouble > &x, const NekVector< NekDouble > &y)
Definition: NodalUtil.cpp:579
NekVector< T > GetColumn(const NekMatrix< T > &matA, int n)
Definition: NodalUtil.cpp:52
NekMatrix< NekDouble > GetYDerivativeOfMonomialVandermonde(const NekVector< NekDouble > &x, const NekVector< NekDouble > &y, int degree)
Definition: NodalUtil.cpp:1551
NekVector< NekDouble > ToVector(const Array< OneD, const NekDouble > &x)
Definition: NodalUtil.cpp:121
NekMatrix< NekDouble > GetTetZDerivativeOfMonomialVandermonde(const NekVector< NekDouble > &x, const NekVector< NekDouble > &y, const NekVector< NekDouble > &z, int degree)
Definition: NodalUtil.cpp:1510
NekVector< NekDouble > JacobiPoly(int degree, const NekVector< NekDouble > &x, NekDouble alpha, NekDouble beta)
Definition: NodalUtil.cpp:253
NekMatrix< NekDouble > GetMonomialVandermonde(const NekVector< NekDouble > &x, const NekVector< NekDouble > &y, int degree)
Definition: NodalUtil.cpp:1327
NekVector< NekDouble > TetrahedralBasis(int p, int q, int r, const NekVector< NekDouble > &x, const NekVector< NekDouble > &y, const NekVector< NekDouble > &z)
Definition: NodalUtil.cpp:415
NekVector< NekDouble > DubinerPolyYDerivative(int p, int q, const NekVector< NekDouble > &x, const NekVector< NekDouble > &y)
Definition: NodalUtil.cpp:1217
NekMatrix< NekDouble > GetTranspose(const NekMatrix< NekDouble > &matA)
Definition: NodalUtil.cpp:96
NekDouble MakeRound(NekDouble x)
Definition: NodalUtil.cpp:231
NekVector< NekDouble > LegendrePoly(int degree, const NekVector< NekDouble > &x)
Definition: NodalUtil.cpp:340
NekMatrix< NekDouble > GetVandermondeForTetYDerivative(const NekVector< NekDouble > &x, const NekVector< NekDouble > &y, const NekVector< NekDouble > &z, int degree)
Definition: NodalUtil.cpp:1013
std::string VectorToString(const NekVector< NekDouble > &v, int precision, NekDouble expSigFigs)
Definition: NodalUtil.cpp:183
int GetSize(const Array< OneD, const NekDouble > &x)
Definition: NodalUtil.cpp:111
#define LIB_UTILITIES_EXPORT
NekVector< NekDouble > VectorPower(const NekVector< NekDouble > &x, NekDouble p)
Definition: NodalUtil.cpp:143
NekMatrix< NekDouble > Invert(const NekMatrix< NekDouble > &matA)
Definition: NodalUtil.cpp:79
Points< NekDouble >::MatrixSharedPtrType GetXDerivativeMatrix(const NekVector< NekDouble > &x, const NekVector< NekDouble > &y, const NekVector< NekDouble > &xi, const NekVector< NekDouble > &yi)
Definition: NodalUtil.cpp:852
NekVector< NekDouble > GetE(int rows, int n)
Definition: NodalUtil.cpp:72
double NekDouble
Points< NekDouble >::MatrixSharedPtrType GetTetZDerivativeMatrix(const NekVector< NekDouble > &x, const NekVector< NekDouble > &y, const NekVector< NekDouble > &z, const NekVector< NekDouble > &xi, const NekVector< NekDouble > &yi, const NekVector< NekDouble > &zi)
Definition: NodalUtil.cpp:1195
NekMatrix< NekDouble > GetXDerivativeOfMonomialVandermonde(const NekVector< NekDouble > &x, const NekVector< NekDouble > &y, int degree)
Definition: NodalUtil.cpp:1389
Array< OneD, NekDouble > ToArray(const NekVector< NekDouble > &x)
Definition: NodalUtil.cpp:126
NekVector< NekDouble > DubinerPoly(int p, int q, const NekVector< NekDouble > &x, const NekVector< NekDouble > &y)
Definition: NodalUtil.cpp:375
NekMatrix< NekDouble > & SetColumn(NekMatrix< NekDouble > &matA, int n, const NekVector< NekDouble > &x)
Definition: NodalUtil.cpp:62
Points< NekDouble >::MatrixSharedPtrType GetTetXDerivativeMatrix(const NekVector< NekDouble > &x, const NekVector< NekDouble > &y, const NekVector< NekDouble > &z, const NekVector< NekDouble > &xi, const NekVector< NekDouble > &yi, const NekVector< NekDouble > &zi)
Definition: NodalUtil.cpp:806
NekMatrix< NekDouble > GetVandermondeForTetZDerivative(const NekVector< NekDouble > &x, const NekVector< NekDouble > &y, const NekVector< NekDouble > &z, int degree)
Definition: NodalUtil.cpp:1161
boost::shared_ptr< NekMatrix< DataType > > MatrixSharedPtrType
Definition: Points.h:228
SharedNekMatrixPtr MakeVmatrixOfDubinerPolynomial(const NekVector< NekDouble > &x, const NekVector< NekDouble > &y)
Definition: NodalUtil.cpp:554
NekMatrix< NekDouble > GetInterpolationMatrix(const NekVector< NekDouble > &x, const NekVector< NekDouble > &y, const NekVector< NekDouble > &xi, const NekVector< NekDouble > &yi)
Definition: NodalUtil.cpp:609
NekVector< NekDouble > GetIntegralOfMonomialVandermonde(int degree)
Definition: NodalUtil.cpp:1588
NekMatrix< NekDouble > GetTetYDerivativeOfMonomialVandermonde(const NekVector< NekDouble > &x, const NekVector< NekDouble > &y, const NekVector< NekDouble > &z, int degree)
Definition: NodalUtil.cpp:1468
boost::shared_ptr< NekMatrix< NekDouble, StandardMatrixTag > > SharedNekMatrixPtr
Points< NekDouble >::MatrixSharedPtrType GetYDerivativeMatrix(const NekVector< NekDouble > &x, const NekVector< NekDouble > &y, const NekVector< NekDouble > &xi, const NekVector< NekDouble > &yi)
Definition: NodalUtil.cpp:1303
NekVector< NekDouble > TetXDerivative(int p, int q, int r, const NekVector< NekDouble > &x, const NekVector< NekDouble > &y, const NekVector< NekDouble > &z)
Definition: NodalUtil.cpp:711
NekVector< NekDouble > JacobiPolyDerivative(int degree, const NekVector< NekDouble > &x, int alpha, int beta)
Definition: NodalUtil.cpp:867
Points< NekDouble >::MatrixSharedPtrType GetTetYDerivativeMatrix(const NekVector< NekDouble > &x, const NekVector< NekDouble > &y, const NekVector< NekDouble > &z, const NekVector< NekDouble > &xi, const NekVector< NekDouble > &yi, const NekVector< NekDouble > &zi)
Definition: NodalUtil.cpp:1047