74             const int nquad0 = 
m_base[0]->GetNumPoints();
 
   75             const int nquad1 = 
m_base[1]->GetNumPoints();
 
   76             const int nquad2 = 
m_base[2]->GetNumPoints();
 
   81             Vmath::Vcopy(nquad0*nquad1*nquad2, &inarray[0], 1, &wsp[0], 1);
 
   83             if (out_dx.num_elements() > 0)
 
   87                 Blas::Dgemm(
'N',
'N', nquad0,nquad1*nquad2,nquad0,1.0,
 
   88                             D0,nquad0,&wsp[0],nquad0,0.0,&out_dx[0],nquad0);
 
   91             if (out_dy.num_elements() > 0) 
 
   94                 for (
int j = 0; j < nquad2; ++j)
 
   96                     Blas::Dgemm(
'N', 
'T', nquad0, nquad1,      nquad1,
 
   97                                 1.0, &wsp[j*nquad0*nquad1],    nquad0,
 
   99                                 0.0, &out_dy[j*nquad0*nquad1], nquad0);
 
  103             if (out_dz.num_elements() > 0) 
 
  107                 Blas::Dgemm(
'N',
'T',nquad0*nquad1,nquad2,nquad2,1.0,
 
  108                             &wsp[0],nquad0*nquad1,D2,nquad2,0.0,&out_dz[0],
 
  120             bool                                doCheckCollDir0,
 
  121             bool                                doCheckCollDir1,
 
  122             bool                                doCheckCollDir2)
 
  124             v_BwdTrans_SumFacKernel(base0, base1, base2, inarray, outarray, wsp, doCheckCollDir0, doCheckCollDir1, doCheckCollDir2);
 
  134                 bool doCheckCollDir0,
 
  135                 bool doCheckCollDir1,
 
  136                 bool doCheckCollDir2)
 
  148             WARNINGL2(coords[0] >= -1,
"coord[0] < -1");
 
  149             WARNINGL2(coords[0] <=  1,
"coord[0] >  1");
 
  150             WARNINGL2(coords[1] >= -1,
"coord[1] < -1");
 
  151             WARNINGL2(coords[1] <=  1,
"coord[1] >  1");
 
  152             WARNINGL2(coords[2] >= -1,
"coord[2] < -1");
 
  153             WARNINGL2(coords[2] <=  1,
"coord[2] >  1");
 
  160             I[0] = 
m_base[0]->GetI(eta);
 
  161             I[1] = 
m_base[1]->GetI(eta+1);
 
  162             I[2] = 
m_base[2]->GetI(eta+2);
 
  173             int Qx = 
m_base[0]->GetNumPoints();
 
  174             int Qy = 
m_base[1]->GetNumPoints();
 
  175             int Qz = 
m_base[2]->GetNumPoints();
 
  184             interpolatingNodes = &I[0]->GetPtr()[0];
 
  186             Blas::Dgemv(
'T',Qx,Qy*Qz,1.0,&physvals[0],Qx,&interpolatingNodes[0], 1, 0.0, &sumFactorization_qr[0], 1);
 
  189             interpolatingNodes = &I[1]->GetPtr()[0];
 
  191             Blas::Dgemv(
'T',Qy,Qz,1.0,&sumFactorization_qr[0],Qy,&interpolatingNodes[0],1,0.0,&sumFactorization_r[0], 1);
 
  194             interpolatingNodes = &I[2]->GetPtr()[0];
 
  195             value = 
Blas::Ddot(Qz, interpolatingNodes, 1, &sumFactorization_r[0], 1);
 
  226                 if(!(
m_base[0]->Collocation() && 
m_base[1]->Collocation() &&
 
  227                      m_base[2]->Collocation()))
 
  257                 int nquad0  = 
m_base[0]->GetNumPoints();
 
  258                 int nquad1  = 
m_base[1]->GetNumPoints();
 
  259                 int nquad2  = 
m_base[2]->GetNumPoints();
 
  260                 int nmodes0 = 
m_base[0]->GetNumModes();
 
  261                 int nmodes1 = 
m_base[1]->GetNumModes();
 
  262                 int nmodes2 = 
m_base[2]->GetNumModes();
 
  263                 int wspsize = max(nquad0*nmodes2*(nmodes1+nquad1),
 
  264                                   nquad0*nquad1*(nquad2+nmodes0)+
 
  265                                   nmodes0*nmodes1*nquad2);
 
  276                 if(!(
m_base[0]->Collocation() && 
m_base[1]->Collocation() &&
 
  277                      m_base[2]->Collocation()))
 
  285                                                      wsp0,wsp2,
true,
true,
true);
 
  288                                                      outarray,wsp2,
true,
true,
true);
 
  319             std::map<int, NormalVector>::const_iterator x;
 
  322                       "face normal not computed.");
 
  358             switch(faceDirBasisType)
 
  399                     ASSERTL0(
false, 
"expansion type unknown");
 
  414             switch(faceDirBasisType)
 
  450                             ASSERTL0(
false,
"invalid value to flag");
 
  478                             ASSERTL0(
false,
"invalid value to flag");
 
  508                             ASSERTL0(
false,
"invalid value to flag");
 
  515                     ASSERTL0(
false,
"expansion type unknown");
 
void HelmholtzMatrixOp_MatFree_GenericImpl(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey)
 
NekDouble GetConstFactor(const ConstFactorType &factor) const 
 
#define ASSERTL0(condition, msg)
 
void LaplacianMatrixOp_MatFree_GenericImpl(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey)
 
Principle Modified Functions . 
 
void BwdTrans_SumFacKernel(const Array< OneD, const NekDouble > &base0, const Array< OneD, const NekDouble > &base1, const Array< OneD, const NekDouble > &base2, const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, Array< OneD, NekDouble > &wsp, bool doCheckCollDir0, bool doCheckCollDir1, bool doCheckCollDir2)
 
virtual void v_LaplacianMatrixOp_MatFree(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdRegions::StdMatrixKey &mkey)
 
void MultiplyByQuadratureMetric(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray)
 
const NormalVector & v_GetSurfaceNormal(const int id) const 
 
void MultiplyByStdQuadratureMetric(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray)
 
void Svtvp(int n, const T alpha, const T *x, const int incx, const T *y, const int incy, T *z, const int incz)
svtvp (scalar times vector plus vector): z = alpha*x + y 
 
LibUtilities::BasisKey EvaluateTriFaceBasisKey(const int facedir, const LibUtilities::BasisType faceDirBasisType, const int numpoints, const int nummodes)
 
Principle Modified Functions . 
 
void LocCoordToLocCollapsed(const Array< OneD, const NekDouble > &xi, Array< OneD, NekDouble > &eta)
Convert local cartesian coordinate xi into local collapsed coordinates eta. 
 
virtual bool v_FaceNormalNegated(const int face)
 
virtual void v_BwdTrans_SumFacKernel(const Array< OneD, const NekDouble > &base0, const Array< OneD, const NekDouble > &base1, const Array< OneD, const NekDouble > &base2, const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, Array< OneD, NekDouble > &wsp, bool doCheckCollDir0, bool doCheckCollDir1, bool doCheckCollDir2)=0
 
Gauss Radau pinned at x=-1, . 
 
Principle Orthogonal Functions . 
 
std::map< int, bool > m_negatedNormals
 
bool ConstFactorExists(const ConstFactorType &factor) const 
 
int GetTotPoints() const 
This function returns the total number of quadrature points used in the element. 
 
void PhysTensorDeriv(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray_d1, Array< OneD, NekDouble > &outarray_d2, Array< OneD, NekDouble > &outarray_d3)
Calculate the 3D derivative in the local tensor/collapsed coordinate at the physical points...
 
The base class for all shapes. 
 
void IProductWRTBase_SumFacKernel(const Array< OneD, const NekDouble > &base0, const Array< OneD, const NekDouble > &base1, const Array< OneD, const NekDouble > &base2, const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, Array< OneD, NekDouble > &wsp, bool doCheckCollDir0, bool doCheckCollDir1, bool doCheckCollDir2)
 
LibUtilities::BasisKey EvaluateQuadFaceBasisKey(const int facedir, const LibUtilities::BasisType faceDirBasisType, const int numpoints, const int nummodes)
 
Principle Modified Functions . 
 
virtual NekDouble v_Integral(const Array< OneD, const NekDouble > &inarray)
Integrates the specified function over the domain. 
 
Principle Orthogonal Functions . 
 
Principle Orthogonal Functions . 
 
virtual ~StdExpansion3D()
 
Defines a specification for a set of points. 
 
void Neg(int n, T *x, const int incx)
Negate x = -x. 
 
void LaplacianMatrixOp_MatFree_Kernel(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, Array< OneD, NekDouble > &wsp)
 
T Ddot(int n, const Array< OneD, const T > &w, const int incw, const Array< OneD, const T > &x, const int incx, const Array< OneD, const int > &y, const int incy)
 
std::map< int, NormalVector > m_faceNormals
 
const NormalVector & v_GetFaceNormal(const int face) const 
 
virtual void v_NegateFaceNormal(const int face)
 
#define WARNINGL2(condition, msg)
 
virtual NekDouble v_PhysEvaluate(const Array< OneD, const NekDouble > &coords, const Array< OneD, const NekDouble > &physvals)
This function evaluates the expansion at a single (arbitrary) point of the domain. 
 
static const BasisKey NullBasisKey(eNoBasisType, 0, NullPointsKey)
Defines a null basis with no type or points. 
 
T Vsum(int n, const T *x, const int incx)
Subtract return sum(x) 
 
virtual void v_HelmholtzMatrixOp_MatFree(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdRegions::StdMatrixKey &mkey)
 
Array< OneD, LibUtilities::BasisSharedPtr > m_base
 
void Vcopy(int n, const T *x, const int incx, T *y, const int incy)
 
Describes the specification for a Basis. 
 
1D Gauss-Lobatto-Legendre quadrature points 
 
virtual void v_IProductWRTBase_SumFacKernel(const Array< OneD, const NekDouble > &base0, const Array< OneD, const NekDouble > &base1, const Array< OneD, const NekDouble > &base2, const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, Array< OneD, NekDouble > &wsp, bool doCheckCollDir0, bool doCheckCollDir1, bool doCheckCollDir2)=0