HArD::Core3D
Hybrid Arbitrary Degree::Core 3D - Library to implement 3D schemes with vertex, edge, face and cell polynomials as unknowns
Classes | Typedefs | Functions | Variables
Common

Various general functions and classes. More...

Classes

class  HArDCore3D::GlobalDOFSpace
 Base class for global DOF spaces. Provides functions to manipulate global DOFs (the local version being provided by DOFSpace). More...
 
struct  HArDCore3D::IntegralWeight
 Structure for weights (scalar, at the moment) in integral. More...
 
struct  HArDCore3D::LocalStaticCondensation
 Structure to store information for, and perform, local static condensation. More...
 
class  HArDCore3D::LocalDOFSpace
 Base class for DOF spaces: functions to access local DOFs (organised from the smallest dimension to the largest) associated with each geometric entity. More...
 
struct  HArDCore3D::SystemVectors< MatrixType >
 Struct to store the systems and vector. More...
 
struct  HArDCore3D::PolynomialSpaceDimension< GeometricSupport >
 Basis dimensions for various polynomial spaces on edges/faces/elements (when relevant): Pk, Gk, Rk and complements. More...
 
struct  HArDCore3D::PolynomialSpaceDimension< Cell >
 
struct  HArDCore3D::PolynomialSpaceDimension< Face >
 
struct  HArDCore3D::PolynomialSpaceDimension< Edge >
 
class  HArDCore3D::VariableDOFSpace
 Base class for global DOF spaces. More...
 

Typedefs

typedef std::function< double(const Cell &, const Eigen::Vector3d &)> HArDCore3D::IntegralWeightValueType
 
typedef std::function< size_t(const Cell &)> HArDCore3D::IntegralWeightDegreeType
 

Functions

std::pair< double, double > HArDCore3D::store_times (boost::timer::cpu_timer &timer, std::string message="")
 Function to store and display wall/proc timers from boost::timer::cpu_timer. More...
 
 HArDCore3D::GlobalDOFSpace::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. More...
 
size_t HArDCore3D::GlobalDOFSpace::globalOffset (const Vertex &V) const
 Return the global offset for the unknowns on the vertex V. More...
 
size_t HArDCore3D::GlobalDOFSpace::globalOffset (const Edge &E) const
 Return the global offset for the unknowns on the edge E. More...
 
size_t HArDCore3D::GlobalDOFSpace::globalOffset (const Face &F) const
 Return the global offset for the unknowns on the face F. More...
 
size_t HArDCore3D::GlobalDOFSpace::globalOffset (const Cell &T) const
 Return the global offset for the unknowns on the cell T. More...
 
size_t HArDCore3D::GlobalDOFSpace::globalOffset (size_t d, size_t i) const
 Return the global offset for the unknows on the i-th element of dimension d. More...
 
Eigen::VectorXd HArDCore3D::GlobalDOFSpace::restrictEdge (size_t iE, const Eigen::VectorXd &vh) const
 Restrict to the edge (including its vertices) of index iE. More...
 
Eigen::VectorXd HArDCore3D::GlobalDOFSpace::restrictFace (size_t iF, const Eigen::VectorXd &vh) const
 Restrict to the face (including vertices and edges) of index iF. More...
 
Eigen::VectorXd HArDCore3D::GlobalDOFSpace::restrictCell (size_t iT, const Eigen::VectorXd &vh) const
 Restrict to the cell (including vertices, edges and faces) of index iT. More...
 
Eigen::VectorXd HArDCore3D::GlobalDOFSpace::restrict (const Edge &E, const Eigen::VectorXd vh) const
 Restrict to an edge. More...
 
Eigen::VectorXd HArDCore3D::GlobalDOFSpace::restrict (const Face &F, const Eigen::VectorXd vh) const
 Restrict to a face. More...
 
Eigen::VectorXd HArDCore3D::GlobalDOFSpace::restrict (const Cell &T, const Eigen::VectorXd vh) const
 Restrict to a cell. More...
 
Eigen::MatrixXd HArDCore3D::GlobalDOFSpace::extendOperator (const Cell &T, const Face &F, const Eigen::MatrixXd &opF) const
 
Eigen::MatrixXd HArDCore3D::GlobalDOFSpace::extendOperator (const Cell &T, const Edge &E, const Eigen::MatrixXd &opE) const
 Extend an edge operator to a cell. More...
 
Eigen::MatrixXd HArDCore3D::GlobalDOFSpace::extendOperator (const Face &F, const Edge &E, const Eigen::MatrixXd &opE) const
 Extend an edge operator to a face. More...
 
Eigen::MatrixXd HArDCore3D::GlobalDOFSpace::extendOperator (size_t d1, size_t i1, size_t d2, size_t i2, const Eigen::MatrixXd &op) const
 Generic extension operator from the i2-th d2-cell to the i1-th d1-cell. More...
 
void HArDCore3D::GlobalDOFSpace::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 the element T (distributes the contributions according to the DOFs as seen from T) More...
 
std::vector< size_t > HArDCore3D::GlobalDOFSpace::globalDOFIndices (const Cell &T) const
 Returns a vector listing the global DOFs attached to the element T: vertex DOFs, edge DOFs, face DOFs and element DOFs. More...
 
std::vector< size_t > HArDCore3D::GlobalDOFSpace::globalDOFIndices (const Face &F) const
 Returns a vector listing the global DOFs attached to the face F: vertex DOFs, edge DOFs, face DOFs. More...
 
 HArDCore3D::IntegralWeight::IntegralWeight (const IntegralWeightValueType _value, const IntegralWeightDegreeType _deg)
 Generic constructor. More...
 
 HArDCore3D::IntegralWeight::IntegralWeight (double val)
 Constructor for constant weights. More...
 
 HArDCore3D::IntegralWeight::IntegralWeight (const std::function< double(const VectorRd &)> &val, const size_t &deg)
 Constructor when the dependency on the cell T is not explicit in the value (and degree is constant) More...
 
 HArDCore3D::IntegralWeight::IntegralWeight (const std::function< double(const VectorRd &)> &val)
 Constructor when the dependency on the cell T is not explicit in the value, and degree is not provided (it is assumed to be 0) More...
 
IntegralWeight HArDCore3D::operator* (double const &r, IntegralWeight const &weight)
 Operator to multiply an IntegralWeight by a number. More...
 
IntegralWeight HArDCore3D::operator+ (IntegralWeight const &weight1, IntegralWeight const &weight2)
 Operator to add an IntegralWeight to another one. More...
 
 HArDCore3D::LocalStaticCondensation::LocalStaticCondensation (const Eigen::MatrixXd &Perm, const std::vector< size_t > &globalDOFs_sys, const std::vector< size_t > &globalDOFs_sc)
 Constructor. More...
 
std::tuple< Eigen::MatrixXd, Eigen::VectorXd, Eigen::MatrixXd, Eigen::VectorXd > HArDCore3D::LocalStaticCondensation::compute (const std::pair< Eigen::MatrixXd, Eigen::VectorXd > &lsT)
 Compute the local static condensation. More...
 
std::vector< size_t > HArDCore3D::LocalStaticCondensation::globalDOFs_sys ()
 Returns global DOFs that are not statically condensend. More...
 
size_t HArDCore3D::LocalStaticCondensation::dim_sys ()
 Returns the number of DOFs that are not statically condensed. More...
 
std::vector< size_t > HArDCore3D::LocalStaticCondensation::globalDOFs_sc ()
 Returns global DOFs that are statically condensend. More...
 
size_t HArDCore3D::LocalStaticCondensation::dim_sc ()
 Returns the number of DOFs that are statically condensed. More...
 
 HArDCore3D::LocalDOFSpace::LocalDOFSpace (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. More...
 
const MeshHArDCore3D::LocalDOFSpace::mesh () const
 Returns the mesh. More...
 
size_t HArDCore3D::LocalDOFSpace::numLocalDofsVertex () const
 Returns the number of local vertex DOFs. More...
 
size_t HArDCore3D::LocalDOFSpace::numLocalDofsEdge () const
 Returns the number of local edge DOFs. More...
 
size_t HArDCore3D::LocalDOFSpace::numLocalDofsFace () const
 Returns the number of local face DOFs. More...
 
size_t HArDCore3D::LocalDOFSpace::numLocalDofsCell () const
 Returns the number of local cell DOFs. More...
 
size_t HArDCore3D::LocalDOFSpace::numLocalDofs (size_t d) const
 Returns the number of local d-cell DOFs. More...
 
size_t HArDCore3D::LocalDOFSpace::dimension () const
 Returns the dimension of the global space (all DOFs for all geometric entities) More...
 
size_t HArDCore3D::LocalDOFSpace::dimensionVertex (const Vertex &V) const
 Returns the dimension of the local space on the vertex V. More...
 
size_t HArDCore3D::LocalDOFSpace::dimensionVertex (size_t iV) const
 Returns the dimension of the local space on the vertex of index iV. More...
 
size_t HArDCore3D::LocalDOFSpace::dimensionEdge (const Edge &E) const
 Returns the dimension of the local space on the edge E (including vertices) More...
 
size_t HArDCore3D::LocalDOFSpace::dimensionEdge (size_t iE) const
 Returns the dimension of the local space on the edge of index iE (including vertices) More...
 
size_t HArDCore3D::LocalDOFSpace::dimensionFace (const Face &F) const
 Returns the dimension of the local space on the face F (including edges and vertices) More...
 
size_t HArDCore3D::LocalDOFSpace::dimensionFace (size_t iF) const
 Returns the dimension of the local space on the face of index iF (including edges and vertices) More...
 
size_t HArDCore3D::LocalDOFSpace::dimensionCell (const Cell &T) const
 Returns the dimension of the local space on the cell T (including faces, edges and vertices) More...
 
size_t HArDCore3D::LocalDOFSpace::dimensionCell (size_t iT) const
 Returns the dimension of the local space on the cell of index iT (including faces, edges and vertices) More...
 
size_t HArDCore3D::LocalDOFSpace::dimension (size_t d, size_t i) const
 Returns the dimension of the local space on the d-cell of index i (including its boundary) More...
 
size_t HArDCore3D::LocalDOFSpace::localOffset (const Edge &E, const Vertex &V) const
 Returns the local offset of the vertex V with respect to the edge E. More...
 
size_t HArDCore3D::LocalDOFSpace::localOffset (const Edge &E) const
 Returns the local offset of the unknowns attached to the edge E. More...
 
size_t HArDCore3D::LocalDOFSpace::localOffset (const Face &F, const Vertex &V) const
 Returns the local offset of the vertex V with respect to the face F. More...
 
size_t HArDCore3D::LocalDOFSpace::localOffset (const Face &F, const Edge &E) const
 Returns the local offset of the edge E with respect to the face F. More...
 
size_t HArDCore3D::LocalDOFSpace::localOffset (const Face &F) const
 Returns the local offset of the unknowns attached to the face F. More...
 
size_t HArDCore3D::LocalDOFSpace::localOffset (const Cell &T, const Vertex &V) const
 Returns the local offset of the vertex V with respect to the cell T. More...
 
size_t HArDCore3D::LocalDOFSpace::localOffset (const Cell &T, const Edge &E) const
 Returns the local offset of the edge E with respect to the cell T. More...
 
size_t HArDCore3D::LocalDOFSpace::localOffset (const Cell &T, const Face &F) const
 Returns the local offset of the face F with respect to the cell T. More...
 
size_t HArDCore3D::LocalDOFSpace::localOffset (const Cell &T) const
 Returns the local offset of the unknowns attached to the element T. More...
 
 HArDCore3D::SystemVectors< MatrixType >::SystemVectors (std::vector< MatrixType > sys, std::vector< Eigen::VectorXd > vec)
 Constructor. More...
 
static std::pair< std::vector< int >, std::vector< int > > HArDCore3D::distributeLoad (size_t nb_elements, unsigned nb_threads)
 Function to distribute elements (considered as jobs) over threads. It returns a pair of vectors indicating the start and end element of each thread. More...
 
static void HArDCore3D::parallel_for (unsigned nb_elements, std::function< void(size_t start, size_t end)> functor, bool use_threads=true)
 Generic function to execute threaded processes. More...
 
static SystemVectors< Eigen::SparseMatrix< double > > HArDCore3D::parallel_assembly_system (size_t nb_elements, std::vector< std::pair< size_t, size_t >> size_systems, std::vector< size_t > size_vectors, std::function< void(size_t start, size_t end, std::vector< std::list< Eigen::Triplet< double >>> *triplets, std::vector< Eigen::VectorXd > *vecs)> batch_local_assembly, bool use_threads=true)
 Function to assemble global matrices from a procedure that compute local triplets. More...
 
static std::pair< Eigen::SparseMatrix< double >, Eigen::VectorXd > HArDCore3D::parallel_assembly_system (size_t nb_elements, size_t size_system, std::function< void(size_t start, size_t end, std::list< Eigen::Triplet< double >> *triplets, Eigen::VectorXd *rhs)> batch_local_assembly, bool use_threads=true)
 Function to assemble a global matrix and right-hand side from a procedure that compute local triplets and rhs contributions (a wrapper for the more general function that can assemble several matrices and vectors) More...
 
static std::tuple< Eigen::SparseMatrix< double >, Eigen::VectorXd, Eigen::SparseMatrix< double >, Eigen::VectorXd > HArDCore3D::parallel_assembly_system (size_t nb_elements, size_t size_system1, std::pair< size_t, size_t > size_Mat2, size_t size_b2, std::function< void(size_t start, size_t end, std::list< Eigen::Triplet< double >> *triplets1, Eigen::VectorXd *vec1, std::list< Eigen::Triplet< double >> *triplets2, Eigen::VectorXd *vec2)> batch_local_assembly, bool use_threads=true)
 Function to assemble two global matrices and vectors (such as: system and static condensation operator, or system and matrix for BC) from a procedure that compute local triplets and rhs contributions (a wrapper for the more general function that can assemble several matrices and vectors) More...
 
static size_t HArDCore3D::PolynomialSpaceDimension< Cell >::Poly (int k)
 Dimension of Pk(T) More...
 
static size_t HArDCore3D::PolynomialSpaceDimension< Cell >::Goly (int k)
 Dimension of Gk(T) More...
 
static size_t HArDCore3D::PolynomialSpaceDimension< Cell >::GolyCompl (int k)
 Dimension of Gck(T) More...
 
static size_t HArDCore3D::PolynomialSpaceDimension< Cell >::Roly (int k)
 Dimension of Rk(T) More...
 
static size_t HArDCore3D::PolynomialSpaceDimension< Cell >::RolyCompl (int k)
 Dimension of Rck(T) More...
 
static size_t HArDCore3D::PolynomialSpaceDimension< Face >::Poly (int k)
 Dimension of Pk(F) More...
 
static size_t HArDCore3D::PolynomialSpaceDimension< Face >::Goly (int k)
 Dimension of Gk(F) More...
 
static size_t HArDCore3D::PolynomialSpaceDimension< Face >::GolyCompl (int k)
 Dimension of Gck(F) More...
 
static size_t HArDCore3D::PolynomialSpaceDimension< Face >::Roly (int k)
 Dimension of Rk(F) More...
 
static size_t HArDCore3D::PolynomialSpaceDimension< Face >::RolyCompl (int k)
 Dimension of Rck(F) More...
 
static size_t HArDCore3D::PolynomialSpaceDimension< Edge >::Poly (int k)
 Dimension of Pk(E) More...
 
 HArDCore3D::VariableDOFSpace::VariableDOFSpace (const Mesh &mesh, const Eigen::VectorXd n_local_vertex_dofs, const Eigen::VectorXd n_local_edge_dofs, const Eigen::VectorXd n_local_face_dofs, const Eigen::VectorXd n_local_cell_dofs)
 Constructor. More...
 
 HArDCore3D::VariableDOFSpace::VariableDOFSpace (const Mesh &mesh, size_t n_local_vertex_dofs, const Eigen::VectorXd n_local_edge_dofs, const Eigen::VectorXd n_local_face_dofs, const Eigen::VectorXd n_local_cell_dofs)
 Simpler constructor if all vertices have the same number of DOFs. More...
 
 HArDCore3D::VariableDOFSpace::VariableDOFSpace (const Mesh &mesh, size_t n_local_vertex_dofs, size_t n_local_edge_dofs, const Eigen::VectorXd n_local_face_dofs, const Eigen::VectorXd n_local_cell_dofs)
 Simpler constructor if all vertices/edges have the same number of DOFs. More...
 
 HArDCore3D::VariableDOFSpace::VariableDOFSpace (const Mesh &mesh, size_t n_local_vertex_dofs, size_t n_local_edge_dofs, size_t n_local_face_dofs, const Eigen::VectorXd n_local_cell_dofs)
 Simpler constructor if all vertices/edges/faces have the same number of DOFs. More...
 
 HArDCore3D::VariableDOFSpace::VariableDOFSpace (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)
 Simpler constructor if all vertices/edges/faces/cells have the same number of DOFs. More...
 
const MeshHArDCore3D::VariableDOFSpace::mesh () const
 Returns the mesh. More...
 
size_t HArDCore3D::VariableDOFSpace::numLocalDofsVertex (const size_t iV) const
 Returns the number of local DOFs on vertex of index iV. More...
 
size_t HArDCore3D::VariableDOFSpace::numLocalDofsVertex (const Vertex &V) const
 Returns the number of local DOFs on vertex V. More...
 
size_t HArDCore3D::VariableDOFSpace::numLocalDofsEdge (const size_t iE) const
 Returns the number of local DOFs on edge of index iE. More...
 
size_t HArDCore3D::VariableDOFSpace::numLocalDofsEdge (const Edge &E) const
 Returns the number of local DOFs on edge E. More...
 
size_t HArDCore3D::VariableDOFSpace::numLocalDofsFace (const size_t iF) const
 Returns the number of local DOFs on face of index iF. More...
 
size_t HArDCore3D::VariableDOFSpace::numLocalDofsFace (const Face &F) const
 Returns the number of local DOFs on face F. More...
 
size_t HArDCore3D::VariableDOFSpace::numLocalDofsCell (const size_t iT) const
 Returns the number of local DOFs on cell of index iT. More...
 
size_t HArDCore3D::VariableDOFSpace::numLocalDofsCell (const Cell &T) const
 Returns the number of local DOFs on cell T. More...
 
size_t HArDCore3D::VariableDOFSpace::nDOFs_vertices () const
 Total number of vertices DOFs. More...
 
size_t HArDCore3D::VariableDOFSpace::nDOFs_edges () const
 Total number of edges DOFs. More...
 
size_t HArDCore3D::VariableDOFSpace::nDOFs_faces () const
 Total number of faces DOFs. More...
 
size_t HArDCore3D::VariableDOFSpace::nDOFs_cells () const
 Total number of cells DOFs. More...
 
size_t HArDCore3D::VariableDOFSpace::dimension () const
 Returns the dimension of the global space (all DOFs for all geometric entities) More...
 
size_t HArDCore3D::VariableDOFSpace::dimensionVertex (const Vertex &V) const
 Returns the dimension of the local space on the vertex V. More...
 
size_t HArDCore3D::VariableDOFSpace::dimensionVertex (size_t iV) const
 Returns the dimension of the local space on the vertex of index iV. More...
 
size_t HArDCore3D::VariableDOFSpace::dimensionEdge (const Edge &E) const
 Returns the dimension of the local space on the edge E (including vertices) More...
 
size_t HArDCore3D::VariableDOFSpace::dimensionEdge (size_t iE) const
 Returns the dimension of the local space on the edge of index iE (including vertices) More...
 
size_t HArDCore3D::VariableDOFSpace::dimensionFace (const Face &F) const
 Returns the dimension of the local space on the face F (including edges and vertices) More...
 
size_t HArDCore3D::VariableDOFSpace::dimensionFace (size_t iF) const
 Returns the dimension of the local space on the face of index iF (including edges and vertices) More...
 
size_t HArDCore3D::VariableDOFSpace::dimensionCell (const Cell &T) const
 Returns the dimension of the local space on the cell T (including faces, edges and vertices) More...
 
size_t HArDCore3D::VariableDOFSpace::dimensionCell (size_t iT) const
 Returns the dimension of the local space on the cell of index iT (including faces, edges and vertices) More...
 
size_t HArDCore3D::VariableDOFSpace::localOffset (const Edge &E, const Vertex &V) const
 Returns the local offset of the vertex V with respect to the edge E. More...
 
size_t HArDCore3D::VariableDOFSpace::localOffset (const Edge &E) const
 Returns the local offset of the unknowns attached to the edge E. More...
 
size_t HArDCore3D::VariableDOFSpace::localOffset (const Face &F, const Vertex &V) const
 Returns the local offset of the vertex V with respect to the face F. More...
 
size_t HArDCore3D::VariableDOFSpace::localOffset (const Face &F, const Edge &E) const
 Returns the local offset of the edge E with respect to the face F. More...
 
size_t HArDCore3D::VariableDOFSpace::localOffset (const Face &F) const
 Returns the local offset of the unknowns attached to the face F. More...
 
size_t HArDCore3D::VariableDOFSpace::localOffset (const Cell &T, const Vertex &V) const
 Returns the local offset of the vertex V with respect to the cell T. More...
 
size_t HArDCore3D::VariableDOFSpace::localOffset (const Cell &T, const Edge &E) const
 Returns the local offset of the edge E with respect to the cell T. More...
 
size_t HArDCore3D::VariableDOFSpace::localOffset (const Cell &T, const Face &F) const
 Returns the local offset of the face F with respect to the cell T. More...
 
size_t HArDCore3D::VariableDOFSpace::localOffset (const Cell &T) const
 Returns the local offset of the unknowns attached to the element T. More...
 
size_t HArDCore3D::VariableDOFSpace::globalOffset (const Vertex &V) const
 Return the global offset for the unknowns on the vertex V. More...
 
size_t HArDCore3D::VariableDOFSpace::globalOffset (const Edge &E) const
 Return the global offset for the unknowns on the edge E. More...
 
size_t HArDCore3D::VariableDOFSpace::globalOffset (const Face &F) const
 Return the global offset for the unknowns on the face F. More...
 
size_t HArDCore3D::VariableDOFSpace::globalOffset (const Cell &T) const
 Return the global offset for the unknowns on the cell T. More...
 
Eigen::VectorXd HArDCore3D::VariableDOFSpace::restrictEdge (size_t iE, const Eigen::VectorXd &vh) const
 Restrict to the edge (including its vertices) of index iE. More...
 
Eigen::VectorXd HArDCore3D::VariableDOFSpace::restrictFace (size_t iF, const Eigen::VectorXd &vh) const
 Restrict to the face (including vertices and edges) of index iF. More...
 
Eigen::VectorXd HArDCore3D::VariableDOFSpace::restrictCell (size_t iT, const Eigen::VectorXd &vh) const
 Restrict to the cell (including vertices, edges and faces) of index iT. More...
 
Eigen::VectorXd HArDCore3D::VariableDOFSpace::restrict (const Edge &E, const Eigen::VectorXd vh) const
 Restrict to an edge. More...
 
Eigen::VectorXd HArDCore3D::VariableDOFSpace::restrict (const Face &F, const Eigen::VectorXd vh) const
 Restrict to a face. More...
 
Eigen::VectorXd HArDCore3D::VariableDOFSpace::restrict (const Cell &T, const Eigen::VectorXd vh) const
 Restrict to a cell. More...
 
Eigen::MatrixXd HArDCore3D::VariableDOFSpace::extendOperator (const Cell &T, const Face &F, const Eigen::MatrixXd &opF) const
 
Eigen::MatrixXd HArDCore3D::VariableDOFSpace::extendOperator (const Cell &T, const Edge &E, const Eigen::MatrixXd &opE) const
 Extend an edge operator to a cell. More...
 
Eigen::MatrixXd HArDCore3D::VariableDOFSpace::extendOperator (const Face &F, const Edge &E, const Eigen::MatrixXd &opE) const
 Extend an edge operator to a face. More...
 
void HArDCore3D::VariableDOFSpace::extendOperator (const Cell &T, const Face &F, Eigen::Ref< Eigen::MatrixXd > opT, const Eigen::MatrixXd &opF) const
 Adds a face operator to a cell operator: distributes and adds the contributions from face F to the operator opT on element T (equivalent to opT + extendOperator(T, F, opF)). More...
 
void HArDCore3D::VariableDOFSpace::extendOperator (const Cell &T, const Edge &E, Eigen::MatrixXd &opT, const Eigen::MatrixXd &opE) const
 Adds an edge operator to a cell. More...
 
void HArDCore3D::VariableDOFSpace::extendOperator (const Face &F, const Edge &E, Eigen::MatrixXd &opF, const Eigen::MatrixXd &opE) const
 Adds an edge operator to a face. More...
 
void HArDCore3D::VariableDOFSpace::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 the element T (distributes the contributions according to the DOFs as seen from T) More...
 
std::vector< size_t > HArDCore3D::VariableDOFSpace::globalDOFIndices (const Cell &T) const
 Returns a vector listing the global DOFs attached to the element T: vertex DOFs, edge DOFs, face DOFs and element DOFs. More...
 
std::vector< size_t > HArDCore3D::VariableDOFSpace::globalDOFIndices (const Face &F) const
 Returns a vector listing the global DOFs attached to the face F: vertex DOFs, edge DOFs, face DOFs. More...
 

Variables

IntegralWeightValueType HArDCore3D::IntegralWeight::value
 
IntegralWeightDegreeType HArDCore3D::IntegralWeight::deg
 
Eigen::MatrixXd HArDCore3D::LocalStaticCondensation::m_Perm
 
std::vector< size_t > HArDCore3D::LocalStaticCondensation::m_globalDOFs_sys
 
std::vector< size_t > HArDCore3D::LocalStaticCondensation::m_globalDOFs_sc
 
size_t HArDCore3D::LocalStaticCondensation::m_dim_sys
 
size_t HArDCore3D::LocalStaticCondensation::m_dim_sc
 
const MeshHArDCore3D::LocalDOFSpace::m_mesh
 
size_t HArDCore3D::LocalDOFSpace::m_n_local_vertex_dofs
 
size_t HArDCore3D::LocalDOFSpace::m_n_local_edge_dofs
 
size_t HArDCore3D::LocalDOFSpace::m_n_local_face_dofs
 
size_t HArDCore3D::LocalDOFSpace::m_n_local_cell_dofs
 
std::vector< MatrixType > HArDCore3D::SystemVectors< MatrixType >::systems
 
std::vector< Eigen::VectorXd > HArDCore3D::SystemVectors< MatrixType >::vectors
 

Detailed Description

Various general functions and classes.

Typedef Documentation

◆ IntegralWeightDegreeType

typedef std::function<size_t (const Cell &)> HArDCore3D::IntegralWeightDegreeType

◆ IntegralWeightValueType

typedef std::function<double (const Cell &, const Eigen::Vector3d &)> HArDCore3D::IntegralWeightValueType

Function Documentation

◆ addInnerProductContribution() [1/2]

void GlobalDOFSpace::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 the element T (distributes the contributions according to the DOFs as seen from T)

◆ addInnerProductContribution() [2/2]

void VariableDOFSpace::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 the element T (distributes the contributions according to the DOFs as seen from T)

◆ compute()

std::tuple<Eigen::MatrixXd, Eigen::VectorXd, Eigen::MatrixXd, Eigen::VectorXd> HArDCore3D::LocalStaticCondensation::compute ( const std::pair< Eigen::MatrixXd, Eigen::VectorXd > &  lsT)
inline

Compute the local static condensation.

From a local pair of Matrix-Vector product, constructed with all the DOFs, returns a 4-tuple; the first two elements are the matrix-vector of the locally statically condensed system, the last two elements are the matrix-vector of the local recovery operator

◆ dim_sc()

size_t HArDCore3D::LocalStaticCondensation::dim_sc ( )
inline

Returns the number of DOFs that are statically condensed.

◆ dim_sys()

size_t HArDCore3D::LocalStaticCondensation::dim_sys ( )
inline

Returns the number of DOFs that are not statically condensed.

◆ dimension() [1/3]

size_t HArDCore3D::LocalDOFSpace::dimension ( ) const
inline

Returns the dimension of the global space (all DOFs for all geometric entities)

◆ dimension() [2/3]

size_t HArDCore3D::VariableDOFSpace::dimension ( ) const
inline

Returns the dimension of the global space (all DOFs for all geometric entities)

◆ dimension() [3/3]

size_t HArDCore3D::LocalDOFSpace::dimension ( size_t  d,
size_t  i 
) const
inline

Returns the dimension of the local space on the d-cell of index i (including its boundary)

◆ dimensionCell() [1/4]

size_t HArDCore3D::LocalDOFSpace::dimensionCell ( const Cell &  T) const
inline

Returns the dimension of the local space on the cell T (including faces, edges and vertices)

◆ dimensionCell() [2/4]

size_t HArDCore3D::VariableDOFSpace::dimensionCell ( const Cell &  T) const
inline

Returns the dimension of the local space on the cell T (including faces, edges and vertices)

◆ dimensionCell() [3/4]

size_t HArDCore3D::LocalDOFSpace::dimensionCell ( size_t  iT) const
inline

Returns the dimension of the local space on the cell of index iT (including faces, edges and vertices)

◆ dimensionCell() [4/4]

size_t HArDCore3D::VariableDOFSpace::dimensionCell ( size_t  iT) const
inline

Returns the dimension of the local space on the cell of index iT (including faces, edges and vertices)

◆ dimensionEdge() [1/4]

size_t HArDCore3D::LocalDOFSpace::dimensionEdge ( const Edge &  E) const
inline

Returns the dimension of the local space on the edge E (including vertices)

◆ dimensionEdge() [2/4]

size_t HArDCore3D::VariableDOFSpace::dimensionEdge ( const Edge &  E) const
inline

Returns the dimension of the local space on the edge E (including vertices)

◆ dimensionEdge() [3/4]

size_t HArDCore3D::LocalDOFSpace::dimensionEdge ( size_t  iE) const
inline

Returns the dimension of the local space on the edge of index iE (including vertices)

◆ dimensionEdge() [4/4]

size_t HArDCore3D::VariableDOFSpace::dimensionEdge ( size_t  iE) const
inline

Returns the dimension of the local space on the edge of index iE (including vertices)

◆ dimensionFace() [1/4]

size_t HArDCore3D::LocalDOFSpace::dimensionFace ( const Face &  F) const
inline

Returns the dimension of the local space on the face F (including edges and vertices)

◆ dimensionFace() [2/4]

size_t HArDCore3D::VariableDOFSpace::dimensionFace ( const Face &  F) const
inline

Returns the dimension of the local space on the face F (including edges and vertices)

◆ dimensionFace() [3/4]

size_t HArDCore3D::LocalDOFSpace::dimensionFace ( size_t  iF) const
inline

Returns the dimension of the local space on the face of index iF (including edges and vertices)

◆ dimensionFace() [4/4]

size_t HArDCore3D::VariableDOFSpace::dimensionFace ( size_t  iF) const
inline

Returns the dimension of the local space on the face of index iF (including edges and vertices)

◆ dimensionVertex() [1/4]

size_t HArDCore3D::LocalDOFSpace::dimensionVertex ( const Vertex &  V) const
inline

Returns the dimension of the local space on the vertex V.

◆ dimensionVertex() [2/4]

size_t HArDCore3D::VariableDOFSpace::dimensionVertex ( const Vertex &  V) const
inline

Returns the dimension of the local space on the vertex V.

◆ dimensionVertex() [3/4]

size_t HArDCore3D::LocalDOFSpace::dimensionVertex ( size_t  iV) const
inline

Returns the dimension of the local space on the vertex of index iV.

◆ dimensionVertex() [4/4]

size_t HArDCore3D::VariableDOFSpace::dimensionVertex ( size_t  iV) const
inline

Returns the dimension of the local space on the vertex of index iV.

◆ distributeLoad()

static std::pair<std::vector<int>, std::vector<int> > HArDCore3D::distributeLoad ( size_t  nb_elements,
unsigned  nb_threads 
)
static

Function to distribute elements (considered as jobs) over threads. It returns a pair of vectors indicating the start and end element of each thread.

◆ extendOperator() [1/10]

Eigen::MatrixXd GlobalDOFSpace::extendOperator ( const Cell &  T,
const Edge &  E,
const Eigen::MatrixXd &  opE 
) const

Extend an edge operator to a cell.

◆ extendOperator() [2/10]

Eigen::MatrixXd VariableDOFSpace::extendOperator ( const Cell &  T,
const Edge &  E,
const Eigen::MatrixXd &  opE 
) const

Extend an edge operator to a cell.

◆ extendOperator() [3/10]

void VariableDOFSpace::extendOperator ( const Cell &  T,
const Edge &  E,
Eigen::MatrixXd &  opT,
const Eigen::MatrixXd &  opE 
) const

Adds an edge operator to a cell.

◆ extendOperator() [4/10]

Eigen::MatrixXd GlobalDOFSpace::extendOperator ( const Cell &  T,
const Face &  F,
const Eigen::MatrixXd &  opF 
) const

Extend a face operator to a cell: starting from a matrix acting on the DOFs of F (and its edges and vertices), redistribute the coefficients in a matrix acting on the DOFs viewed from T.

◆ extendOperator() [5/10]

Eigen::MatrixXd VariableDOFSpace::extendOperator ( const Cell &  T,
const Face &  F,
const Eigen::MatrixXd &  opF 
) const

Extend a face operator to a cell: starting from a matrix opF acting on the DOFs of F (and its edges and vertices), redistribute the coefficients in a matrix acting on the DOFs viewed from T.

◆ extendOperator() [6/10]

void VariableDOFSpace::extendOperator ( const Cell &  T,
const Face &  F,
Eigen::Ref< Eigen::MatrixXd >  opT,
const Eigen::MatrixXd &  opF 
) const

Adds a face operator to a cell operator: distributes and adds the contributions from face F to the operator opT on element T (equivalent to opT + extendOperator(T, F, opF)).

◆ extendOperator() [7/10]

Eigen::MatrixXd GlobalDOFSpace::extendOperator ( const Face &  F,
const Edge &  E,
const Eigen::MatrixXd &  opE 
) const

Extend an edge operator to a face.

◆ extendOperator() [8/10]

Eigen::MatrixXd VariableDOFSpace::extendOperator ( const Face &  F,
const Edge &  E,
const Eigen::MatrixXd &  opE 
) const

Extend an edge operator to a face.

◆ extendOperator() [9/10]

void VariableDOFSpace::extendOperator ( const Face &  F,
const Edge &  E,
Eigen::MatrixXd &  opF,
const Eigen::MatrixXd &  opE 
) const

Adds an edge operator to a face.

◆ extendOperator() [10/10]

Eigen::MatrixXd GlobalDOFSpace::extendOperator ( size_t  d1,
size_t  i1,
size_t  d2,
size_t  i2,
const Eigen::MatrixXd &  op 
) const

Generic extension operator from the i2-th d2-cell to the i1-th d1-cell.

◆ globalDOFIndices() [1/4]

std::vector< size_t > GlobalDOFSpace::globalDOFIndices ( const Cell &  T) const

Returns a vector listing the global DOFs attached to the element T: vertex DOFs, edge DOFs, face DOFs and element DOFs.

◆ globalDOFIndices() [2/4]

std::vector< size_t > VariableDOFSpace::globalDOFIndices ( const Cell &  T) const

Returns a vector listing the global DOFs attached to the element T: vertex DOFs, edge DOFs, face DOFs and element DOFs.

◆ globalDOFIndices() [3/4]

std::vector< size_t > GlobalDOFSpace::globalDOFIndices ( const Face &  F) const

Returns a vector listing the global DOFs attached to the face F: vertex DOFs, edge DOFs, face DOFs.

◆ globalDOFIndices() [4/4]

std::vector< size_t > VariableDOFSpace::globalDOFIndices ( const Face &  F) const

Returns a vector listing the global DOFs attached to the face F: vertex DOFs, edge DOFs, face DOFs.

◆ globalDOFs_sc()

std::vector<size_t> HArDCore3D::LocalStaticCondensation::globalDOFs_sc ( )
inline

Returns global DOFs that are statically condensend.

◆ globalDOFs_sys()

std::vector<size_t> HArDCore3D::LocalStaticCondensation::globalDOFs_sys ( )
inline

Returns global DOFs that are not statically condensend.

◆ GlobalDOFSpace()

GlobalDOFSpace::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.

◆ globalOffset() [1/9]

size_t HArDCore3D::GlobalDOFSpace::globalOffset ( const Cell &  T) const
inline

Return the global offset for the unknowns on the cell T.

◆ globalOffset() [2/9]

size_t HArDCore3D::VariableDOFSpace::globalOffset ( const Cell &  T) const
inline

Return the global offset for the unknowns on the cell T.

◆ globalOffset() [3/9]

size_t HArDCore3D::GlobalDOFSpace::globalOffset ( const Edge &  E) const
inline

Return the global offset for the unknowns on the edge E.

◆ globalOffset() [4/9]

size_t HArDCore3D::VariableDOFSpace::globalOffset ( const Edge &  E) const
inline

Return the global offset for the unknowns on the edge E.

◆ globalOffset() [5/9]

size_t HArDCore3D::GlobalDOFSpace::globalOffset ( const Face &  F) const
inline

Return the global offset for the unknowns on the face F.

◆ globalOffset() [6/9]

size_t HArDCore3D::VariableDOFSpace::globalOffset ( const Face &  F) const
inline

Return the global offset for the unknowns on the face F.

◆ globalOffset() [7/9]

size_t HArDCore3D::GlobalDOFSpace::globalOffset ( const Vertex &  V) const
inline

Return the global offset for the unknowns on the vertex V.

◆ globalOffset() [8/9]

size_t HArDCore3D::VariableDOFSpace::globalOffset ( const Vertex &  V) const
inline

Return the global offset for the unknowns on the vertex V.

◆ globalOffset() [9/9]

size_t HArDCore3D::GlobalDOFSpace::globalOffset ( size_t  d,
size_t  i 
) const
inline

Return the global offset for the unknows on the i-th element of dimension d.

◆ Goly() [1/2]

static size_t HArDCore3D::PolynomialSpaceDimension< Cell >::Goly ( int  k)
inlinestatic

Dimension of Gk(T)

◆ Goly() [2/2]

static size_t HArDCore3D::PolynomialSpaceDimension< Face >::Goly ( int  k)
inlinestatic

Dimension of Gk(F)

◆ GolyCompl() [1/2]

static size_t HArDCore3D::PolynomialSpaceDimension< Cell >::GolyCompl ( int  k)
inlinestatic

Dimension of Gck(T)

◆ GolyCompl() [2/2]

static size_t HArDCore3D::PolynomialSpaceDimension< Face >::GolyCompl ( int  k)
inlinestatic

Dimension of Gck(F)

◆ IntegralWeight() [1/4]

HArDCore3D::IntegralWeight::IntegralWeight ( const IntegralWeightValueType  _value,
const IntegralWeightDegreeType  _deg 
)
inline

Generic constructor.

Parameters
_valueValue of weight
_degLocal degree of weight

◆ IntegralWeight() [2/4]

HArDCore3D::IntegralWeight::IntegralWeight ( const std::function< double(const VectorRd &)> &  val)
inline

Constructor when the dependency on the cell T is not explicit in the value, and degree is not provided (it is assumed to be 0)

◆ IntegralWeight() [3/4]

HArDCore3D::IntegralWeight::IntegralWeight ( const std::function< double(const VectorRd &)> &  val,
const size_t &  deg 
)
inline

Constructor when the dependency on the cell T is not explicit in the value (and degree is constant)

◆ IntegralWeight() [4/4]

HArDCore3D::IntegralWeight::IntegralWeight ( double  val)
inline

Constructor for constant weights.

◆ LocalDOFSpace()

LocalDOFSpace::LocalDOFSpace ( 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.

◆ localOffset() [1/18]

size_t HArDCore3D::LocalDOFSpace::localOffset ( const Cell &  T) const
inline

Returns the local offset of the unknowns attached to the element T.

◆ localOffset() [2/18]

size_t HArDCore3D::VariableDOFSpace::localOffset ( const Cell &  T) const
inline

Returns the local offset of the unknowns attached to the element T.

◆ localOffset() [3/18]

size_t HArDCore3D::LocalDOFSpace::localOffset ( const Cell &  T,
const Edge &  E 
) const
inline

Returns the local offset of the edge E with respect to the cell T.

◆ localOffset() [4/18]

size_t HArDCore3D::VariableDOFSpace::localOffset ( const Cell &  T,
const Edge &  E 
) const
inline

Returns the local offset of the edge E with respect to the cell T.

◆ localOffset() [5/18]

size_t HArDCore3D::LocalDOFSpace::localOffset ( const Cell &  T,
const Face &  F 
) const
inline

Returns the local offset of the face F with respect to the cell T.

◆ localOffset() [6/18]

size_t HArDCore3D::VariableDOFSpace::localOffset ( const Cell &  T,
const Face &  F 
) const
inline

Returns the local offset of the face F with respect to the cell T.

◆ localOffset() [7/18]

size_t HArDCore3D::LocalDOFSpace::localOffset ( const Cell &  T,
const Vertex &  V 
) const
inline

Returns the local offset of the vertex V with respect to the cell T.

◆ localOffset() [8/18]

size_t HArDCore3D::VariableDOFSpace::localOffset ( const Cell &  T,
const Vertex &  V 
) const
inline

Returns the local offset of the vertex V with respect to the cell T.

◆ localOffset() [9/18]

size_t HArDCore3D::LocalDOFSpace::localOffset ( const Edge &  E) const
inline

Returns the local offset of the unknowns attached to the edge E.

◆ localOffset() [10/18]

size_t HArDCore3D::VariableDOFSpace::localOffset ( const Edge &  E) const
inline

Returns the local offset of the unknowns attached to the edge E.

◆ localOffset() [11/18]

size_t HArDCore3D::LocalDOFSpace::localOffset ( const Edge &  E,
const Vertex &  V 
) const
inline

Returns the local offset of the vertex V with respect to the edge E.

◆ localOffset() [12/18]

size_t HArDCore3D::VariableDOFSpace::localOffset ( const Edge &  E,
const Vertex &  V 
) const
inline

Returns the local offset of the vertex V with respect to the edge E.

◆ localOffset() [13/18]

size_t HArDCore3D::LocalDOFSpace::localOffset ( const Face &  F) const
inline

Returns the local offset of the unknowns attached to the face F.

◆ localOffset() [14/18]

size_t HArDCore3D::VariableDOFSpace::localOffset ( const Face &  F) const
inline

Returns the local offset of the unknowns attached to the face F.

◆ localOffset() [15/18]

size_t HArDCore3D::LocalDOFSpace::localOffset ( const Face &  F,
const Edge &  E 
) const
inline

Returns the local offset of the edge E with respect to the face F.

◆ localOffset() [16/18]

size_t HArDCore3D::VariableDOFSpace::localOffset ( const Face &  F,
const Edge &  E 
) const
inline

Returns the local offset of the edge E with respect to the face F.

◆ localOffset() [17/18]

size_t HArDCore3D::LocalDOFSpace::localOffset ( const Face &  F,
const Vertex &  V 
) const
inline

Returns the local offset of the vertex V with respect to the face F.

◆ localOffset() [18/18]

size_t HArDCore3D::VariableDOFSpace::localOffset ( const Face &  F,
const Vertex &  V 
) const
inline

Returns the local offset of the vertex V with respect to the face F.

◆ LocalStaticCondensation()

HArDCore3D::LocalStaticCondensation::LocalStaticCondensation ( const Eigen::MatrixXd &  Perm,
const std::vector< size_t > &  globalDOFs_sys,
const std::vector< size_t > &  globalDOFs_sc 
)
inline

Constructor.

Parameters
PermPermutation that moves the DOFs to condense at the end
globalDOFs_sysList of global DOFs in the final system
globalDOFs_scList of global DOFs that are statically condensed

◆ mesh() [1/2]

const Mesh& HArDCore3D::LocalDOFSpace::mesh ( ) const
inline

Returns the mesh.

◆ mesh() [2/2]

const Mesh& HArDCore3D::VariableDOFSpace::mesh ( ) const
inline

Returns the mesh.

◆ nDOFs_cells()

size_t HArDCore3D::VariableDOFSpace::nDOFs_cells ( ) const
inline

Total number of cells DOFs.

◆ nDOFs_edges()

size_t HArDCore3D::VariableDOFSpace::nDOFs_edges ( ) const
inline

Total number of edges DOFs.

◆ nDOFs_faces()

size_t HArDCore3D::VariableDOFSpace::nDOFs_faces ( ) const
inline

Total number of faces DOFs.

◆ nDOFs_vertices()

size_t HArDCore3D::VariableDOFSpace::nDOFs_vertices ( ) const
inline

Total number of vertices DOFs.

◆ numLocalDofs()

size_t HArDCore3D::LocalDOFSpace::numLocalDofs ( size_t  d) const
inline

Returns the number of local d-cell DOFs.

◆ numLocalDofsCell() [1/3]

size_t HArDCore3D::LocalDOFSpace::numLocalDofsCell ( ) const
inline

Returns the number of local cell DOFs.

◆ numLocalDofsCell() [2/3]

size_t HArDCore3D::VariableDOFSpace::numLocalDofsCell ( const Cell &  T) const
inline

Returns the number of local DOFs on cell T.

◆ numLocalDofsCell() [3/3]

size_t HArDCore3D::VariableDOFSpace::numLocalDofsCell ( const size_t  iT) const
inline

Returns the number of local DOFs on cell of index iT.

◆ numLocalDofsEdge() [1/3]

size_t HArDCore3D::LocalDOFSpace::numLocalDofsEdge ( ) const
inline

Returns the number of local edge DOFs.

◆ numLocalDofsEdge() [2/3]

size_t HArDCore3D::VariableDOFSpace::numLocalDofsEdge ( const Edge &  E) const
inline

Returns the number of local DOFs on edge E.

◆ numLocalDofsEdge() [3/3]

size_t HArDCore3D::VariableDOFSpace::numLocalDofsEdge ( const size_t  iE) const
inline

Returns the number of local DOFs on edge of index iE.

◆ numLocalDofsFace() [1/3]

size_t HArDCore3D::LocalDOFSpace::numLocalDofsFace ( ) const
inline

Returns the number of local face DOFs.

◆ numLocalDofsFace() [2/3]

size_t HArDCore3D::VariableDOFSpace::numLocalDofsFace ( const Face &  F) const
inline

Returns the number of local DOFs on face F.

◆ numLocalDofsFace() [3/3]

size_t HArDCore3D::VariableDOFSpace::numLocalDofsFace ( const size_t  iF) const
inline

Returns the number of local DOFs on face of index iF.

◆ numLocalDofsVertex() [1/3]

size_t HArDCore3D::LocalDOFSpace::numLocalDofsVertex ( ) const
inline

Returns the number of local vertex DOFs.

◆ numLocalDofsVertex() [2/3]

size_t HArDCore3D::VariableDOFSpace::numLocalDofsVertex ( const size_t  iV) const
inline

Returns the number of local DOFs on vertex of index iV.

◆ numLocalDofsVertex() [3/3]

size_t HArDCore3D::VariableDOFSpace::numLocalDofsVertex ( const Vertex &  V) const
inline

Returns the number of local DOFs on vertex V.

◆ operator*()

IntegralWeight HArDCore3D::operator* ( double const &  r,
IntegralWeight const &  weight 
)
inline

Operator to multiply an IntegralWeight by a number.

◆ operator+()

IntegralWeight HArDCore3D::operator+ ( IntegralWeight const &  weight1,
IntegralWeight const &  weight2 
)
inline

Operator to add an IntegralWeight to another one.

◆ parallel_assembly_system() [1/3]

static std::pair<Eigen::SparseMatrix<double>, Eigen::VectorXd> HArDCore3D::parallel_assembly_system ( size_t  nb_elements,
size_t  size_system,
std::function< void(size_t start, size_t end, std::list< Eigen::Triplet< double >> *triplets, Eigen::VectorXd *rhs)>  batch_local_assembly,
bool  use_threads = true 
)
inlinestatic

Function to assemble a global matrix and right-hand side from a procedure that compute local triplets and rhs contributions (a wrapper for the more general function that can assemble several matrices and vectors)

◆ parallel_assembly_system() [2/3]

static std::tuple<Eigen::SparseMatrix<double>, Eigen::VectorXd, Eigen::SparseMatrix<double>, Eigen::VectorXd> HArDCore3D::parallel_assembly_system ( size_t  nb_elements,
size_t  size_system1,
std::pair< size_t, size_t >  size_Mat2,
size_t  size_b2,
std::function< void(size_t start, size_t end, std::list< Eigen::Triplet< double >> *triplets1, Eigen::VectorXd *vec1, std::list< Eigen::Triplet< double >> *triplets2, Eigen::VectorXd *vec2)>  batch_local_assembly,
bool  use_threads = true 
)
inlinestatic

Function to assemble two global matrices and vectors (such as: system and static condensation operator, or system and matrix for BC) from a procedure that compute local triplets and rhs contributions (a wrapper for the more general function that can assemble several matrices and vectors)

◆ parallel_assembly_system() [3/3]

static SystemVectors<Eigen::SparseMatrix<double> > HArDCore3D::parallel_assembly_system ( size_t  nb_elements,
std::vector< std::pair< size_t, size_t >>  size_systems,
std::vector< size_t >  size_vectors,
std::function< void(size_t start, size_t end, std::vector< std::list< Eigen::Triplet< double >>> *triplets, std::vector< Eigen::VectorXd > *vecs)>  batch_local_assembly,
bool  use_threads = true 
)
inlinestatic

Function to assemble global matrices from a procedure that compute local triplets.

◆ parallel_for()

static void HArDCore3D::parallel_for ( unsigned  nb_elements,
std::function< void(size_t start, size_t end)>  functor,
bool  use_threads = true 
)
inlinestatic

Generic function to execute threaded processes.

◆ Poly() [1/3]

static size_t HArDCore3D::PolynomialSpaceDimension< Cell >::Poly ( int  k)
inlinestatic

Dimension of Pk(T)

◆ Poly() [2/3]

static size_t HArDCore3D::PolynomialSpaceDimension< Face >::Poly ( int  k)
inlinestatic

Dimension of Pk(F)

◆ Poly() [3/3]

static size_t HArDCore3D::PolynomialSpaceDimension< Edge >::Poly ( int  k)
inlinestatic

Dimension of Pk(E)

◆ restrict() [1/6]

Eigen::VectorXd HArDCore3D::GlobalDOFSpace::restrict ( const Cell &  T,
const Eigen::VectorXd  vh 
) const
inline

Restrict to a cell.

◆ restrict() [2/6]

Eigen::VectorXd HArDCore3D::VariableDOFSpace::restrict ( const Cell &  T,
const Eigen::VectorXd  vh 
) const
inline

Restrict to a cell.

◆ restrict() [3/6]

Eigen::VectorXd HArDCore3D::GlobalDOFSpace::restrict ( const Edge &  E,
const Eigen::VectorXd  vh 
) const
inline

Restrict to an edge.

◆ restrict() [4/6]

Eigen::VectorXd HArDCore3D::VariableDOFSpace::restrict ( const Edge &  E,
const Eigen::VectorXd  vh 
) const
inline

Restrict to an edge.

◆ restrict() [5/6]

Eigen::VectorXd HArDCore3D::GlobalDOFSpace::restrict ( const Face &  F,
const Eigen::VectorXd  vh 
) const
inline

Restrict to a face.

◆ restrict() [6/6]

Eigen::VectorXd HArDCore3D::VariableDOFSpace::restrict ( const Face &  F,
const Eigen::VectorXd  vh 
) const
inline

Restrict to a face.

◆ restrictCell() [1/2]

Eigen::VectorXd GlobalDOFSpace::restrictCell ( size_t  iT,
const Eigen::VectorXd &  vh 
) const

Restrict to the cell (including vertices, edges and faces) of index iT.

◆ restrictCell() [2/2]

Eigen::VectorXd VariableDOFSpace::restrictCell ( size_t  iT,
const Eigen::VectorXd &  vh 
) const

Restrict to the cell (including vertices, edges and faces) of index iT.

◆ restrictEdge() [1/2]

Eigen::VectorXd GlobalDOFSpace::restrictEdge ( size_t  iE,
const Eigen::VectorXd &  vh 
) const

Restrict to the edge (including its vertices) of index iE.

◆ restrictEdge() [2/2]

Eigen::VectorXd VariableDOFSpace::restrictEdge ( size_t  iE,
const Eigen::VectorXd &  vh 
) const

Restrict to the edge (including its vertices) of index iE.

◆ restrictFace() [1/2]

Eigen::VectorXd GlobalDOFSpace::restrictFace ( size_t  iF,
const Eigen::VectorXd &  vh 
) const

Restrict to the face (including vertices and edges) of index iF.

◆ restrictFace() [2/2]

Eigen::VectorXd VariableDOFSpace::restrictFace ( size_t  iF,
const Eigen::VectorXd &  vh 
) const

Restrict to the face (including vertices and edges) of index iF.

◆ Roly() [1/2]

static size_t HArDCore3D::PolynomialSpaceDimension< Cell >::Roly ( int  k)
inlinestatic

Dimension of Rk(T)

◆ Roly() [2/2]

static size_t HArDCore3D::PolynomialSpaceDimension< Face >::Roly ( int  k)
inlinestatic

Dimension of Rk(F)

◆ RolyCompl() [1/2]

static size_t HArDCore3D::PolynomialSpaceDimension< Cell >::RolyCompl ( int  k)
inlinestatic

Dimension of Rck(T)

◆ RolyCompl() [2/2]

static size_t HArDCore3D::PolynomialSpaceDimension< Face >::RolyCompl ( int  k)
inlinestatic

Dimension of Rck(F)

◆ store_times()

std::pair<double,double> HArDCore3D::store_times ( boost::timer::cpu_timer &  timer,
std::string  message = "" 
)
inline

Function to store and display wall/proc timers from boost::timer::cpu_timer.

Wall time is in the first element of the pair, proc time in the second

Parameters
timerThe timer
messageOptional message to display with time (if not message is passed, times are not displayed)

◆ SystemVectors()

template<typename MatrixType >
HArDCore3D::SystemVectors< MatrixType >::SystemVectors ( std::vector< MatrixType >  sys,
std::vector< Eigen::VectorXd >  vec 
)
inline

Constructor.

◆ VariableDOFSpace() [1/5]

VariableDOFSpace::VariableDOFSpace ( const Mesh mesh,
const Eigen::VectorXd  n_local_vertex_dofs,
const Eigen::VectorXd  n_local_edge_dofs,
const Eigen::VectorXd  n_local_face_dofs,
const Eigen::VectorXd  n_local_cell_dofs 
)

Constructor.

◆ VariableDOFSpace() [2/5]

VariableDOFSpace::VariableDOFSpace ( const Mesh mesh,
size_t  n_local_vertex_dofs,
const Eigen::VectorXd  n_local_edge_dofs,
const Eigen::VectorXd  n_local_face_dofs,
const Eigen::VectorXd  n_local_cell_dofs 
)

Simpler constructor if all vertices have the same number of DOFs.

◆ VariableDOFSpace() [3/5]

VariableDOFSpace::VariableDOFSpace ( const Mesh mesh,
size_t  n_local_vertex_dofs,
size_t  n_local_edge_dofs,
const Eigen::VectorXd  n_local_face_dofs,
const Eigen::VectorXd  n_local_cell_dofs 
)

Simpler constructor if all vertices/edges have the same number of DOFs.

◆ VariableDOFSpace() [4/5]

VariableDOFSpace::VariableDOFSpace ( const Mesh mesh,
size_t  n_local_vertex_dofs,
size_t  n_local_edge_dofs,
size_t  n_local_face_dofs,
const Eigen::VectorXd  n_local_cell_dofs 
)

Simpler constructor if all vertices/edges/faces have the same number of DOFs.

◆ VariableDOFSpace() [5/5]

VariableDOFSpace::VariableDOFSpace ( 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 
)

Simpler constructor if all vertices/edges/faces/cells have the same number of DOFs.

Variable Documentation

◆ deg

IntegralWeightDegreeType HArDCore3D::IntegralWeight::deg

◆ m_dim_sc

size_t HArDCore3D::LocalStaticCondensation::m_dim_sc

◆ m_dim_sys

size_t HArDCore3D::LocalStaticCondensation::m_dim_sys

◆ m_globalDOFs_sc

std::vector<size_t> HArDCore3D::LocalStaticCondensation::m_globalDOFs_sc

◆ m_globalDOFs_sys

std::vector<size_t> HArDCore3D::LocalStaticCondensation::m_globalDOFs_sys

◆ m_mesh

const Mesh& HArDCore3D::LocalDOFSpace::m_mesh
protected

◆ m_n_local_cell_dofs

size_t HArDCore3D::LocalDOFSpace::m_n_local_cell_dofs
protected

◆ m_n_local_edge_dofs

size_t HArDCore3D::LocalDOFSpace::m_n_local_edge_dofs
protected

◆ m_n_local_face_dofs

size_t HArDCore3D::LocalDOFSpace::m_n_local_face_dofs
protected

◆ m_n_local_vertex_dofs

size_t HArDCore3D::LocalDOFSpace::m_n_local_vertex_dofs
protected

◆ m_Perm

Eigen::MatrixXd HArDCore3D::LocalStaticCondensation::m_Perm

◆ systems

template<typename MatrixType >
std::vector<MatrixType> HArDCore3D::SystemVectors< MatrixType >::systems

◆ value

IntegralWeightValueType HArDCore3D::IntegralWeight::value

◆ vectors

template<typename MatrixType >
std::vector<Eigen::VectorXd> HArDCore3D::SystemVectors< MatrixType >::vectors