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

#include <PolygonalBasis3d.hpp>

Static Public Member Functions

static void compute_integral_constraints (const assembler::Assembler &assembler, const mesh::Mesh3D &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::Mesh3D &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_face_to_data, std::map< int, std::pair< Eigen::MatrixXd, Eigen::MatrixXi > > &mapped_boundary)
 Build bases over the remaining polygons of a mesh.
 

Detailed Description

Definition at line 17 of file PolygonalBasis3d.hpp.

Member Function Documentation

◆ build_bases()

int polyfem::basis::PolygonalBasis3d::build_bases ( const assembler::LinearAssembler assembler,
const int  n_samples_per_edge,
const mesh::Mesh3D 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_face_to_data,
std::map< int, std::pair< Eigen::MatrixXd, Eigen::MatrixXi > > &  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 volume mesh
[in]n_basesTotal number of bases functions in the mesh
[in]quadrature_orderQuadrature order for the polyhedra
[in]mass_quadrature_orderQuadrature order for the polyhedra 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_face_to_dataAdditional data computed for faces at the interface with a polygon
mapped_boundaryMap element id > (V, E) triangle mesh surface formed by the image of the collocation points trough the geometric mapping of the boundary faces
[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 575 of file PolygonalBasis3d.cpp.

References polyfem::basis::ElementBases::bases, polyfem::basis::compute_epsilon(), compute_integral_constraints(), polyfem::basis::ElementBases::has_parameterization, polyfem::mesh::Mesh::is_polytope(), polyfem::mesh::Mesh3D::is_volume(), polyfem::mesh::Mesh::n_elements(), polyfem::assembler::Assembler::name(), polyfem::mesh::orient_closed_surface(), polyfem::assembler::AssemblerUtils::quadrature_order(), 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::PolygonalBasis3d::compute_integral_constraints ( const assembler::Assembler assembler,
const mesh::Mesh3D mesh,
const int  n_bases,
const std::vector< ElementBases > &  bases,
const std::vector< ElementBases > &  gbases,
Eigen::MatrixXd &  basis_integrals 
)
static

Definition at line 401 of file PolygonalBasis3d.cpp.

References polyfem::assembler::ElementAssemblyValues::compute(), polyfem::assembler::AssemblyValues::global, polyfem::assembler::AssemblyValues::grad_t_m, polyfem::mesh::Mesh::is_polytope(), polyfem::mesh::Mesh3D::is_volume(), polyfem::mesh::Mesh::n_elements(), 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: