102 std::array<NekDouble, 3> &firstOrderDerivs)
104 const int nq0 =
m_base[0]->GetNumPoints();
105 const int nq1 =
m_base[1]->GetNumPoints();
111 for (
int j = 0; j < nq1; ++j, ptr += nq0)
114 StdExpansion::BaryEvaluate<0, true>(coord[0], ptr, deriv0[j]);
116 firstOrderDerivs[0] =
117 StdExpansion::BaryEvaluate<1, false>(coord[1], &deriv0[0]);
119 return StdExpansion::BaryEvaluate<1, true>(coord[1], &phys0[0],
120 firstOrderDerivs[1]);
128 bool doCheckCollDir0 =
true,
bool doCheckCollDir1 =
true);
135 bool doCheckCollDir0 =
true,
bool doCheckCollDir1 =
true);
171 std::array<NekDouble, 3> &firstOrderDerivs)
override;
178 bool doCheckCollDir0,
bool doCheckCollDir1) = 0;
185 bool doCheckCollDir0,
bool doCheckCollDir1) = 0;
197 const unsigned int traceid,
208 int P = -1,
int Q = -1)
override;
#define STD_REGIONS_EXPORT
Describes the specification for a Basis.
void v_GenStdMatBwdDeriv(const int dir, DNekMatSharedPtr &mat) override
virtual void v_IProductWRTBase_SumFacKernel(const Array< OneD, const NekDouble > &base0, const Array< OneD, const NekDouble > &base1, const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, Array< OneD, NekDouble > &wsp, bool doCheckCollDir0, bool doCheckCollDir1)=0
void PhysTensorDeriv(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray_d0, Array< OneD, NekDouble > &outarray_d1)
Calculate the 2D derivative in the local tensor/collapsed coordinate at the physical points.
~StdExpansion2D() override=default
void v_HelmholtzMatrixOp_MatFree(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdRegions::StdMatrixKey &mkey) override
int v_GetShapeDimension() const final
void v_GetTraceToElementMap(const int eid, Array< OneD, unsigned int > &maparray, Array< OneD, int > &signarray, Orientation edgeOrient=eForwards, int P=-1, int Q=-1) override
virtual void v_BwdTrans_SumFacKernel(const Array< OneD, const NekDouble > &base0, const Array< OneD, const NekDouble > &base1, const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, Array< OneD, NekDouble > &wsp, bool doCheckCollDir0, bool doCheckCollDir1)=0
NekDouble BaryTensorDeriv(const Array< OneD, NekDouble > &coord, const Array< OneD, const NekDouble > &inarray, std::array< NekDouble, 3 > &firstOrderDerivs)
NekDouble Integral(const Array< OneD, const NekDouble > &inarray, const Array< OneD, const NekDouble > &w0, const Array< OneD, const NekDouble > &w1)
void BwdTrans_SumFacKernel(const Array< OneD, const NekDouble > &base0, const Array< OneD, const NekDouble > &base1, const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, Array< OneD, NekDouble > &wsp, bool doCheckCollDir0=true, bool doCheckCollDir1=true)
void v_GetTraceCoeffMap(const unsigned int traceid, Array< OneD, unsigned int > &maparray) override
void v_LaplacianMatrixOp_MatFree(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdRegions::StdMatrixKey &mkey) override
void IProductWRTBase_SumFacKernel(const Array< OneD, const NekDouble > &base0, const Array< OneD, const NekDouble > &base1, const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, Array< OneD, NekDouble > &wsp, bool doCheckCollDir0=true, bool doCheckCollDir1=true)
StdExpansion2D(const StdExpansion2D &T)=default
NekDouble v_PhysEvaluate(const Array< OneD, const NekDouble > &coords, const Array< OneD, const NekDouble > &physvals) override
This function evaluates the expansion at a single (arbitrary) point of the domain.
void v_GetElmtTraceToTraceMap(const unsigned int eid, Array< OneD, unsigned int > &maparray, Array< OneD, int > &signarray, Orientation edgeOrient, int P, int Q) override
Determine the mapping to re-orientate the coefficients along the element trace (assumed to align with...
The base class for all shapes.
Array< OneD, LibUtilities::BasisSharedPtr > m_base
@ P
Monomial polynomials .
std::shared_ptr< StdExpansion2D > StdExpansion2DSharedPtr
std::shared_ptr< DNekMat > DNekMatSharedPtr