1 #ifndef GLOBALDOFSPACE_HPP
2 #define GLOBALDOFSPACE_HPP
21 size_t n_local_vertex_dofs,
22 size_t n_local_edge_dofs,
23 size_t n_local_face_dofs,
24 size_t n_local_cell_dofs
84 Eigen::VectorXd
restrictEdge(
size_t iE,
const Eigen::VectorXd & vh)
const;
87 Eigen::VectorXd
restrictFace(
size_t iF,
const Eigen::VectorXd & vh)
const;
90 Eigen::VectorXd
restrictCell(
size_t iT,
const Eigen::VectorXd & vh)
const;
93 inline Eigen::VectorXd
restrict(
const Edge & E,
const Eigen::VectorXd vh)
const
99 inline Eigen::VectorXd
restrict(
const Face & F,
const Eigen::VectorXd vh)
const
105 inline Eigen::VectorXd
restrict(
const Cell & T,
const Eigen::VectorXd vh)
const
125 Eigen::MatrixXd
extendOperator(
size_t d1,
size_t i1,
size_t d2,
size_t i2,
const Eigen::MatrixXd & op)
const;
Base class for global DOF spaces. Provides functions to manipulate global DOFs (the local version bei...
Definition: globaldofspace.hpp:16
Base class for DOF spaces: functions to access local DOFs (organised from the smallest dimension to t...
Definition: localdofspace.hpp:15
Class to describe a mesh.
Definition: MeshND.hpp:17
size_t globalOffset(const Cell &T) const
Return the global offset for the unknowns on the cell T.
Definition: globaldofspace.hpp:54
Eigen::VectorXd restrictCell(size_t iT, const Eigen::VectorXd &vh) const
Restrict to the cell (including vertices, edges and faces) of index iT.
Definition: globaldofspace.cpp:77
std::vector< size_t > globalDOFIndices(const Cell &T) const
Returns a vector listing the global DOFs attached to the element T: vertex DOFs, edge DOFs,...
Definition: globaldofspace.cpp:298
void addInnerProductContribution(const Cell &T, const Face &F, Eigen::MatrixXd &prodT, const Eigen::MatrixXd &prodF) const
Takes an inner product prodF on a face F, and adds its contributions to the inner product prodT on th...
Definition: globaldofspace.cpp:229
const Mesh & mesh() const
Returns the mesh.
Definition: localdofspace.hpp:31
size_t globalOffset(const Vertex &V) const
Return the global offset for the unknowns on the vertex V.
Definition: globaldofspace.hpp:32
size_t globalOffset(size_t d, size_t i) const
Return the global offset for the unknows on the i-th element of dimension d.
Definition: globaldofspace.hpp:63
size_t globalOffset(const Face &F) const
Return the global offset for the unknowns on the face F.
Definition: globaldofspace.hpp:46
size_t m_n_local_edge_dofs
Definition: localdofspace.hpp:225
size_t m_n_local_vertex_dofs
Definition: localdofspace.hpp:224
Eigen::VectorXd restrict(const Edge &E, const Eigen::VectorXd vh) const
Restrict to an edge.
Definition: globaldofspace.hpp:93
Eigen::VectorXd restrict(const Cell &T, const Eigen::VectorXd vh) const
Restrict to a cell.
Definition: globaldofspace.hpp:105
Eigen::MatrixXd extendOperator(const Cell &T, const Face &F, const Eigen::MatrixXd &opF) const
Definition: globaldofspace.cpp:114
Eigen::VectorXd restrictEdge(size_t iE, const Eigen::VectorXd &vh) const
Restrict to the edge (including its vertices) of index iE.
Definition: globaldofspace.cpp:25
size_t numLocalDofs(size_t d) const
Returns the number of local d-cell DOFs.
Definition: localdofspace.hpp:61
size_t m_n_local_face_dofs
Definition: localdofspace.hpp:226
GlobalDOFSpace(const Mesh &mesh, size_t n_local_vertex_dofs, size_t n_local_edge_dofs, size_t n_local_face_dofs, size_t n_local_cell_dofs)
Constructor.
Definition: globaldofspace.cpp:9
size_t m_n_local_cell_dofs
Definition: localdofspace.hpp:227
Eigen::VectorXd restrictFace(size_t iF, const Eigen::VectorXd &vh) const
Restrict to the face (including vertices and edges) of index iF.
Definition: globaldofspace.cpp:46
size_t globalOffset(const Edge &E) const
Return the global offset for the unknowns on the edge E.
Definition: globaldofspace.hpp:39
Eigen::VectorXd restrict(const Face &F, const Eigen::VectorXd vh) const
Restrict to a face.
Definition: globaldofspace.hpp:99
const Mesh & m_mesh
Definition: localdofspace.hpp:223
std::size_t n_vertices() const
number of vertices in the mesh.
Definition: MeshND.hpp:57
std::size_t n_edges() const
number of edges in the mesh.
Definition: MeshND.hpp:58
std::size_t n_faces() const
number of faces in the mesh.
Definition: MeshND.hpp:59
Definition: ddr-magnetostatics.hpp:40
MeshND::Edge< 2 > Edge
Definition: Mesh2D.hpp:11
MeshND::Face< 2 > Face
Definition: Mesh2D.hpp:12
MeshND::Cell< 2 > Cell
Definition: Mesh2D.hpp:13
MeshND::Vertex< 2 > Vertex
Definition: Mesh2D.hpp:10