PolyFEM
Loading...
Searching...
No Matches
PolygonalBasis2d.hpp
Go to the documentation of this file.
1#pragma once
2
9
10#include <Eigen/Dense>
11#include <vector>
12#include <map>
13
14namespace polyfem
15{
16 namespace basis
17 {
19 {
20 public:
21 // Compute the integral constraints for each basis of the mesh. This step is PDE-dependent.
22 //
23 // @param[in] mesh Input surface mesh
24 // @param[in] n_bases Number of bases/nodes in the mesh
25 // @param[in] values Shape functions for the PDE field evaluated over each
26 // elements
27 // @param[in] gvalues Shape functions for the geometric mapping evaluated over
28 // each elements
29 // @param[out] basis_integrals Integral constraints over polygon that each basis of the
30 // mesh must verify
31 //
33 const assembler::LinearAssembler &assembler,
34 const mesh::Mesh2D &mesh,
35 const int n_bases,
36 const std::vector<ElementBases> &bases,
37 const std::vector<ElementBases> &gbases,
38 Eigen::MatrixXd &basis_integrals);
39
57 static int build_bases(
58 const assembler::LinearAssembler &assembler,
59 const int n_samples_per_edge,
60 const mesh::Mesh2D &mesh,
61 const int n_bases,
62 const int quadrature_order,
63 const int mass_quadrature_order,
64 const int integral_constraints,
65 std::vector<ElementBases> &bases,
66 const std::vector<ElementBases> &gbases,
67 const std::map<int, InterfaceData> &poly_edge_to_data,
68 std::map<int, Eigen::MatrixXd> &mapped_boundary);
69 };
70 } // namespace basis
71} // namespace polyfem
assemble matrix based on the local assembler local assembler is eg Laplace, LinearElasticity etc
static void compute_integral_constraints(const assembler::LinearAssembler &assembler, const mesh::Mesh2D &mesh, const int n_bases, const std::vector< ElementBases > &bases, const std::vector< ElementBases > &gbases, Eigen::MatrixXd &basis_integrals)
static int build_bases(const assembler::LinearAssembler &assembler, const int n_samples_per_edge, const mesh::Mesh2D &mesh, const int n_bases, const int quadrature_order, const int mass_quadrature_order, const int integral_constraints, std::vector< ElementBases > &bases, const std::vector< ElementBases > &gbases, const std::map< int, InterfaceData > &poly_edge_to_data, std::map< int, Eigen::MatrixXd > &mapped_boundary)
Build bases over the remaining polygons of a mesh.