Loading [MathJax]/extensions/tex2jax.js
PolyFEM
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
LagrangeBasis2d.hpp
Go to the documentation of this file.
1#pragma once
2
9
11
12#include <Eigen/Dense>
13#include <vector>
14
15namespace polyfem
16{
17 namespace basis
18 {
20 {
21 public:
45 static int build_bases(
46 const mesh::Mesh2D &mesh,
47 const std::string &assembler,
48 const int quadrature_order,
49 const int mass_quadrature_order,
50 const int discr_order,
51 const bool bernstein,
52 const bool serendipity,
53 const bool has_polys,
54 const bool is_geom_bases,
55 const bool use_corner_quadrature,
56 std::vector<ElementBases> &bases,
57 std::vector<mesh::LocalBoundary> &local_boundary,
58 std::map<int, InterfaceData> &poly_edge_to_data,
59 std::shared_ptr<mesh::MeshNodes> &mesh_nodes);
60
84 static int build_bases(
85 const mesh::Mesh2D &mesh,
86 const std::string &assembler,
87 const int quadrature_order,
88 const int mass_quadrature_order,
89 const Eigen::VectorXi &discr_order,
90 const bool bernstein,
91 const bool serendipity,
92 const bool has_polys,
93 const bool is_geom_bases,
94 const bool use_corner_quadrature,
95 std::vector<ElementBases> &bases,
96 std::vector<mesh::LocalBoundary> &local_boundary,
97 std::map<int, InterfaceData> &poly_edge_to_data,
98 std::shared_ptr<mesh::MeshNodes> &mesh_nodes);
99
100 // return the local edge nodes for a tri or a quad of order p, index points to the edge
101 static Eigen::VectorXi tri_edge_local_nodes(const int p, const mesh::Mesh2D &mesh, mesh::Navigation::Index index);
102 static Eigen::VectorXi quad_edge_local_nodes(const int q, const mesh::Mesh2D &mesh, mesh::Navigation::Index index);
103 };
104 } // namespace basis
105} // namespace polyfem
static int build_bases(const mesh::Mesh2D &mesh, const std::string &assembler, const int quadrature_order, const int mass_quadrature_order, const Eigen::VectorXi &discr_order, const bool bernstein, const bool serendipity, const bool has_polys, const bool is_geom_bases, const bool use_corner_quadrature, std::vector< ElementBases > &bases, std::vector< mesh::LocalBoundary > &local_boundary, std::map< int, InterfaceData > &poly_edge_to_data, std::shared_ptr< mesh::MeshNodes > &mesh_nodes)
Builds FE basis functions over the entire mesh (P1, P2 over triangles, Q1, Q2 over quads).
static Eigen::VectorXi tri_edge_local_nodes(const int p, const mesh::Mesh2D &mesh, mesh::Navigation::Index index)
static Eigen::VectorXi quad_edge_local_nodes(const int q, const mesh::Mesh2D &mesh, mesh::Navigation::Index index)
static int build_bases(const mesh::Mesh2D &mesh, const std::string &assembler, const int quadrature_order, const int mass_quadrature_order, const int discr_order, const bool bernstein, const bool serendipity, const bool has_polys, const bool is_geom_bases, const bool use_corner_quadrature, std::vector< ElementBases > &bases, std::vector< mesh::LocalBoundary > &local_boundary, std::map< int, InterfaceData > &poly_edge_to_data, std::shared_ptr< mesh::MeshNodes > &mesh_nodes)
Builds FE basis functions over the entire mesh (P1, P2 over triangles, Q1, Q2 over quads).