PolyFEM
Loading...
Searching...
No Matches
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:
44 static int build_bases(
45 const mesh::Mesh2D &mesh,
46 const std::string &assembler,
47 const int quadrature_order,
48 const int mass_quadrature_order,
49 const int discr_order,
50 const bool serendipity,
51 const bool has_polys,
52 const bool is_geom_bases,
53 std::vector<ElementBases> &bases,
54 std::vector<mesh::LocalBoundary> &local_boundary,
55 std::map<int, InterfaceData> &poly_edge_to_data,
56 std::shared_ptr<mesh::MeshNodes> &mesh_nodes);
57
80 static int build_bases(
81 const mesh::Mesh2D &mesh,
82 const std::string &assembler,
83 const int quadrature_order,
84 const int mass_quadrature_order,
85 const Eigen::VectorXi &discr_order,
86 const bool serendipity,
87 const bool has_polys,
88 const bool is_geom_bases,
89 std::vector<ElementBases> &bases,
90 std::vector<mesh::LocalBoundary> &local_boundary,
91 std::map<int, InterfaceData> &poly_edge_to_data,
92 std::shared_ptr<mesh::MeshNodes> &mesh_nodes);
93
94 // return the local edge nodes for a tri or a quad of order p, index points to the edge
95 static Eigen::VectorXi tri_edge_local_nodes(const int p, const mesh::Mesh2D &mesh, mesh::Navigation::Index index);
96 static Eigen::VectorXi quad_edge_local_nodes(const int q, const mesh::Mesh2D &mesh, mesh::Navigation::Index index);
97 };
98 } // namespace basis
99} // namespace polyfem
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 serendipity, const bool has_polys, const bool is_geom_bases, 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 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 serendipity, const bool has_polys, const bool is_geom_bases, 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)