PolyFEM
Loading...
Searching...
No Matches
polyfem::basis::PolygonalBasis2d Class Reference

#include <PolygonalBasis2d.hpp>

Static Public Member Functions

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.
 

Detailed Description

Definition at line 18 of file PolygonalBasis2d.hpp.

Member Function Documentation

◆ build_bases()

int polyfem::basis::PolygonalBasis2d::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 
)
static

Build bases over the remaining polygons of a mesh.

Parameters
[in]n_samples_per_edgeNumber of collocation samples per polygon edge (including endpoints)
[in]meshInput surface mesh
[in]n_basesTotal number of bases functions in the mesh
[in]quadrature_orderQuadrature order for the polygons
[in]mass_quadrature_orderQuadrature order for the polygons for mass
[in]integral_constraintsOrder of the integral constraints (0 = no constraints, 1 = linear, 2 = quadratic)
[in,out]basesList of the different basis (shape functions) used to discretize the PDE
[in]gbasesList of the different basis used to discretize the geometry of the mesh
[in]poly_edge_to_dataAdditional data computed for edges at the interface with a polygon
[out]mapped_boundaryMap element id -> #S x dim polyline formed by the collocation points on the boundary of the polygon. The collocation points are mapped through the geometric mapping of the element across the edge, so this polyline may differ from the original polygon.
[in]element_typesPer-element tag indicating the type of each element (see Mesh.hpp)
[in]valuesPer-element shape functions for the PDE, evaluated over the element, used for the system matrix assembly (used for linear reproduction)
[in]gvaluesPer-element shape functions for the geometric mapping, evaluated over the element (get boundary of the polygon)

Definition at line 348 of file PolygonalBasis2d.cpp.

References polyfem::basis::ElementBases::bases, polyfem::basis::compute_epsilon(), compute_integral_constraints(), polyfem::quadrature::PolygonQuadrature::get_quadrature(), polyfem::basis::ElementBases::has_parameterization, polyfem::mesh::Mesh::is_polytope(), polyfem::assembler::Assembler::is_tensor(), polyfem::mesh::Mesh2D::is_volume(), polyfem::mesh::Mesh::n_elements(), polyfem::assembler::Assembler::name(), polyfem::assembler::AssemblerUtils::quadrature_order(), polyfem::mesh::sample_polygon(), polyfem::basis::ElementBases::set_bases_func(), polyfem::basis::ElementBases::set_grads_func(), polyfem::basis::ElementBases::set_mass_quadrature(), polyfem::basis::ElementBases::set_quadrature(), and val.

Referenced by polyfem::State::build_polygonal_basis().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ compute_integral_constraints()

void polyfem::basis::PolygonalBasis2d::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

Definition at line 176 of file PolygonalBasis2d.cpp.

References polyfem::assembler::LinearAssembler::assemble(), polyfem::assembler::ElementAssemblyValues::compute(), da, polyfem::assembler::AssemblyValues::global, polyfem::basis::RBFWithQuadratic::index_mapping(), polyfem::mesh::Mesh::is_polytope(), polyfem::assembler::Assembler::is_tensor(), polyfem::mesh::Mesh2D::is_volume(), polyfem::mesh::Mesh::n_elements(), polyfem::basis::RBFWithQuadratic::setup_monomials_strong_2d(), polyfem::basis::RBFWithQuadratic::setup_monomials_vals_2d(), polyfem::assembler::AssemblyValues::val, and vals.

Referenced by build_bases().

Here is the call graph for this function:
Here is the caller graph for this function:

The documentation for this class was generated from the following files: