......@@ -95,7 +95,8 @@ public:
const SpaceTimeMesh &STM) = 0;
// TODO: the function below should be deleted here and accessed via the corresponding Vector
// and its GetDoFs() function
int get_max_space_deg() const { return (*this)().GetDoFs().get_max_space_deg(); }
int get_max_time_deg() const { return (*this)().GetDoFs().get_max_time_deg(); }
......@@ -151,6 +152,122 @@ public:
}
string Name(const tcell &c) const { return (*this)().GetDoFs().Name(c); }
int NodalPoints(const cell &c) const {
return (*this)().GetDoFs().NodalPoints(c);
}
int NodalPoints(int n, const cell &c) const {
return (*this)().GetDoFs().NodalPoints(n, c);
}
void NodalPoints(const cell &c, vector<Point> &z) const {
(*this)().GetDoFs().NodalPoints(c, z);
}
void NodalPoints(int n, const cell &c, vector<Point> &z) const {
(*this)().GetDoFs().NodalPoints(n, c, z);
}
void NodalPointsLocal(const int &i, vector<Point> &z, const int k = 0) const {
(*this)().GetDoFs().NodalPointsLocal(i, z, k);
}
int NodalPointsLocal(const int &i, const int k = 0) const {
return (*this)().GetDoFs().NodalPointsLocal(i, k);
}
void NodalDoFs(const cell &c, vector<short> &z) const {
(*this)().GetDoFs().NodalDoFs(c, z);
}
void NodalDoFs(int n, const cell &c, vector<short> &z) const {
(*this)().GetDoFs().NodalDoFs(n, c, z);
}
int NodalPointsOnFace(const cell &c, int face) const {
return (*this)().GetDoFs().NodalPointsOnFace(c, face);
}
void NodalPointsOnFace(const cell &c, int face, vector<Point> &z) const {
(*this)().GetDoFs().NodalPointsOnFace(c, face, z);
}
void NodalPointsOnFace(int n, const cell &c, int face, vector<Point> &z) const {
(*this)().GetDoFs().NodalPointsOnFace(n, c, face, z);
}
int NodalPointsOnFace(int n, const cell &c, int face) const {
return (*this)().GetDoFs().NodalPointsOnFace(n, c, face);
}
int NodalPointOnFace(const cell &c, int face, int j) const {
return (*this)().GetDoFs().NodalPointOnFace(c, face, j);
}
int NodalPointOnFace(int n, const cell &c, int face, int j) const {
return (*this)().GetDoFs().NodalPointOnFace(n, c, face, j);
}
int NodalPointsOnFace(const tcell &tc, int i) const {
return (*this)().GetDoFs().NodalPointsOnFace(tc, i);
}
int NodalPointOnFace(const tcell &tc, int i, int j) const {
return (*this)().GetDoFs().NodalPointOnFace(tc, i, j);
}
int NodalPointsOnEdge(const cell &c, int edge) const {
return (*this)().GetDoFs().NodalPointsOnEdge(c, edge);
}
int NodalPointsOnEdge(int n, const cell &c, int edge) const {
return (*this)().GetDoFs().NodalPointsOnEdge(n, c, edge);
}
int NodalPointOnEdge(const cell &c, int edge, int j) const {
return (*this)().GetDoFs().NodalPointOnEdge(c, edge, j);
}
int NodalPointOnEdge(int n, const cell &c, int edge, int j) const {
return (*this)().GetDoFs().NodalPointOnEdge(n, c, edge, j);
}
const vector<vector<NPData>> &NodalPointData(const cell &c) const {
return (*this)().GetDoFs().NodalPointData(c);
}
const vector<NPData> &NodalPointData(int n, const cell &c) const {
return (*this)().GetDoFs().NodalPointData(n, c);
}
const NPData &NodalPointData(int n, const cell &c, int i) const {
return (*this)().GetDoFs().NodalPointData(n, c, i);
}
const vector<vector<vector<NPData>>> &NodalPointFaceData(const cell &c) const {
return (*this)().GetDoFs().NodalPointFaceData(c);
}
const vector<vector<NPData>> &NodalPointFaceData(const cell &c, int face) const {
return (*this)().GetDoFs().NodalPointFaceData(c, face);
}
const vector<NPData> &NodalPointFaceData(int n, const cell &c, int face) const {
return (*this)().GetDoFs().NodalPointFaceData(n, c, face);
}
const NPData &NodalPointFaceData(int n, const cell &c, int face, int j) const {
return (*this)().GetDoFs().NodalPointFaceData(n, c, face, j);
}
int TypeDoF(int tp) const {
return (*this)().GetDoFs().TypeDoF(tp);
}
void TypeDoFs(int *tp) const {
(*this)().GetDoFs().TypeDoFs(tp);
}
};
typedef STDiscretizationT<> STDiscretization;
......
......@@ -17,7 +17,7 @@ protected:
public:
DGElementT<TT, sDim, tDim>(const DGDiscretizationT<TT, sDim, tDim> &disc,
const matrixgraph &g, const cell &c)
: ElementT<TT, sDim, tDim>(disc, g, c), degree(g.get_cell_deg(c)),
: ElementT<TT, sDim, tDim>(disc, g, c), degree(g.GetDoFs().get_cell_deg(c)),
dim(c.dim()), C(c), gradient(this->nQ(), this->shape.size()), nodalPoints(0) {
for (int q = 0; q < this->nQ(); ++q) {
for (int i = 0; i < this->shape.size(); ++i) {
......
......@@ -15,7 +15,7 @@ protected:
public:
EGElementT<TT, sDim, tDim>(const EGDiscretizationT<TT, sDim, tDim> &disc,
const matrixgraph &g, const cell &c)
: ElementT<TT, sDim, tDim>(disc, g, c), degree(g.get_cell_deg(c)), dim(c.dim()), C(c),
: ElementT<TT, sDim, tDim>(disc, g, c), degree(g.GetDoFs().get_cell_deg(c)), dim(c.dim()), C(c),
gradient(this->nQ(), this->shape.size()) {
for (int q = 0; q < this->nQ(); ++q) {
for (int i = 0; i < this->shape.size(); ++i)
......