65 "Nodal basis initiated with different orders in the a "
76 m_nodalPointsKey(T.m_nodalPointsKey)
90 const Array<OneD, const NekDouble>& inarray,
91 Array<OneD, NekDouble>& outarray)
100 modal = (*inv_vdm) * nodal;
105 const Array<OneD, const NekDouble>& inarray,
106 Array<OneD, NekDouble>& outarray)
119 const Array<OneD, const NekDouble>& inarray,
120 Array<OneD, NekDouble>& outarray)
130 nodal = (*vdm)*modal;
134 Array<OneD, const NekDouble> &x,
135 Array<OneD, const NekDouble> &y)
143 Array<OneD, const NekDouble> r, s;
144 Array<OneD, NekDouble> c(2);
153 Array<OneD,NekDouble> phys(nqtot);
178 const Array<OneD, const NekDouble>& inarray,
179 Array<OneD, NekDouble>& outarray)
185 const Array<OneD, const NekDouble>& inarray,
186 Array<OneD, NekDouble>& outarray)
194 const Array<OneD, const NekDouble>& inarray,
195 Array<OneD, NekDouble>& outarray)
218 const Array<OneD, const NekDouble>& inarray,
219 Array<OneD, NekDouble>& outarray)
225 const Array<OneD, const NekDouble>& inarray,
226 Array<OneD, NekDouble>& outarray)
234 const Array<OneD, const NekDouble>& inarray,
235 Array<OneD, NekDouble>& outarray)
242 const Array<OneD, const NekDouble>& inarray,
243 Array<OneD, NekDouble>& outarray)
255 Array<OneD, NekDouble> &outarray)
258 "calling argument mode is larger than total expansion order");
261 outarray[mode] = 1.0;
282 Array<OneD, unsigned int> &maparray,
283 Array<OneD, int> &signarray)
286 "Local Edge ID must be between 0 and 2");
290 if (maparray.num_elements() != nEdgeCoeffs)
292 maparray = Array<OneD, unsigned int>(nEdgeCoeffs);
295 if (signarray.num_elements() != nEdgeCoeffs)
297 signarray = Array<OneD, int>(nEdgeCoeffs,1);
301 fill(signarray.get(), signarray.get()+nEdgeCoeffs, 1);
305 maparray[1] = eid == 2 ? 0 : eid+1;
306 for (
int i = 2; i < nEdgeCoeffs; i++)
308 maparray[i] = eid*(nEdgeCoeffs-2)+1+i;
313 reverse(maparray.get(), maparray.get()+nEdgeCoeffs);
318 bool useCoeffPacking)
320 ASSERTL0(localVertexId >= 0 && localVertexId <= 2,
321 "Local Vertex ID must be between 0 and 2");
322 return localVertexId;
328 Array<OneD, unsigned int> &maparray,
329 Array<OneD, int> &signarray)
332 "Local Edge ID must be between 0 and 2");
336 if (maparray.num_elements() != nEdgeIntCoeffs)
338 maparray = Array<OneD, unsigned int>(nEdgeIntCoeffs);
341 if (signarray.num_elements() != nEdgeIntCoeffs)
343 signarray = Array<OneD, int>(nEdgeIntCoeffs,1);
347 fill(signarray.get(), signarray.get()+nEdgeIntCoeffs, 1);
350 for (
int i = 0; i < nEdgeIntCoeffs; i++)
352 maparray[i] = eid*nEdgeIntCoeffs+3+i;
357 reverse(maparray.get(), maparray.get()+nEdgeIntCoeffs);
362 Array<OneD, unsigned int>& outarray)
367 outarray = Array<OneD, unsigned int>(
378 Array<OneD, unsigned int>& outarray)
426 const Array<OneD, const NekDouble> &inarray,
427 Array<OneD, NekDouble> &outarray,
434 const Array<OneD, const NekDouble> &inarray,
435 Array<OneD, NekDouble> &outarray,
439 inarray,outarray,mkey);
445 const Array<OneD, const NekDouble> &inarray,
446 Array<OneD, NekDouble> &outarray,
451 k1,k2,inarray,outarray,mkey);
456 const Array<OneD, const NekDouble> &inarray,
457 Array<OneD, NekDouble> &outarray,
464 const Array<OneD, const NekDouble> &inarray,
465 Array<OneD, NekDouble> &outarray,
469 inarray,outarray,mkey);