48 exp->FwdTrans(in, out);
56 exp->BwdTrans(in, out);
64 exp->IProductWRTBase(in, out);
72 return exp->PhysEvaluate(coords, physvals);
85 return exp->L2(in, err);
90 int nPhys = exp->GetTotPoints();
91 int coordim = exp->GetCoordim();
93 std::vector<Array<OneD, NekDouble>> coords(coordim);
94 for (
int i = 0; i < coordim; ++i)
102 exp->GetCoords(coords[0]);
103 return py::make_tuple(coords[0]);
106 exp->GetCoords(coords[0], coords[1]);
107 return py::make_tuple(coords[0], coords[1]);
110 exp->GetCoords(coords[0], coords[1], coords[2]);
111 return py::make_tuple(coords[0], coords[1], coords[2]);
121 int nPhys = exp->GetTotPoints();
122 int coordim = exp->GetCoordim();
124 std::vector<Array<OneD, NekDouble>> derivs(coordim);
125 for (
int i = 0; i < coordim; ++i)
133 exp->PhysDeriv(inarray, derivs[0]);
134 return py::make_tuple(derivs[0]);
137 exp->PhysDeriv(inarray, derivs[0], derivs[1]);
138 return py::make_tuple(derivs[0], derivs[1]);
141 exp->PhysDeriv(inarray, derivs[0], derivs[1], derivs[2]);
142 return py::make_tuple(derivs[0], derivs[1], derivs[2]);
152 auto mat = stdExp->GenMatrix(mkey);
156 return py::array({mat->GetRows(), mat->GetColumns()},
164 auto mat = stdExp->GetStdMatrix(mkey);
165 return py::array({mat->GetRows(), mat->GetColumns()},
172 py::class_<StdExpansion, std::shared_ptr<StdExpansion>>(m,
"StdExpansion")
174 .def(
"GetNcoeffs", &StdExpansion::GetNcoeffs)
175 .def(
"GetTotPoints", &StdExpansion::GetTotPoints)
176 .def(
"GetBasisType", &StdExpansion::GetBasisType)
177 .def(
"GetPointsType", &StdExpansion::GetPointsType)
178 .def(
"GetNverts", &StdExpansion::GetNverts)
179 .def(
"GetNtraces", &StdExpansion::GetNtraces)
180 .def(
"DetShapeType", &StdExpansion::DetShapeType)
181 .def(
"GetShapeDimension", &StdExpansion::GetShapeDimension)
182 .def(
"Integral", &StdExpansion::Integral)
184 .def(
"GetBasis", &StdExpansion::GetBasis)
NekDouble StdExpansion_L2_Error(StdExpansionSharedPtr exp, const Array< OneD, const NekDouble > &in, const Array< OneD, const NekDouble > &err)
py::tuple StdExpansion_PhysDeriv(StdExpansionSharedPtr exp, const Array< OneD, const NekDouble > &inarray)
py::array StdExpansion_GetStdMatrix(std::shared_ptr< StdExpansion > &stdExp, const StdMatrixKey &mkey)
Array< OneD, NekDouble > StdExpansion_FwdTrans(StdExpansionSharedPtr exp, const Array< OneD, const NekDouble > &in)
void export_StdExpansion(py::module &m)
NekDouble StdExpansion_L2(StdExpansionSharedPtr exp, const Array< OneD, const NekDouble > &in)
py::tuple StdExpansion_GetCoords(StdExpansionSharedPtr exp)
Array< OneD, NekDouble > StdExpansion_BwdTrans(StdExpansionSharedPtr exp, const Array< OneD, const NekDouble > &in)
NekDouble StdExpansion_PhysEvaluate(StdExpansionSharedPtr exp, const Array< OneD, const NekDouble > &coords, const Array< OneD, const NekDouble > &physvals)
py::array StdExpansion_GenMatrix(std::shared_ptr< StdExpansion > &stdExp, const StdMatrixKey &mkey)
Array< OneD, NekDouble > StdExpansion_IProductWRTBase(StdExpansionSharedPtr exp, const Array< OneD, const NekDouble > &in)
std::shared_ptr< StdExpansion > StdExpansionSharedPtr