#ifndef OERSTED_FINITEELEMENTMESH_H #define OERSTED_FINITEELEMENTMESH_H #include #include "Eigen" #include "Node.h" #include "Triangle.h" template class QuadratureDerivatives { private: SmallVector Value[Q]; }; template class QuadratureDerivatives<2, Q> { public: double dx(size_t i) { return d[i].x(); }; double dy(size_t i) { return d[i].y(); }; private: XY d[Q]; }; template class QuadratureDerivatives<3, Q> { public: double dx(size_t i) { return d[i].x(); }; double dy(size_t i) { return d[i].y(); }; double dz(size_t i) { return d[i].z(); }; private: XYZ d[Q]; }; template class FiniteElementMesh { }; template class FiniteElementMesh<2, P> { public: FiniteElementMesh(std::vector nodes, std::vector> tris) : Nodes(nodes), Triangles(tris) {}; std::vector const nodes() { return Nodes; }; std::vector> const triangles() { return Triangles; }; protected: std::vector Nodes; std::vector> Triangles; }; #endif //OERSTED_FINITEELEMENTMESH_H