|
PolyFEM
|
#include <LagrangeBasis3d.hpp>
Static Public Member Functions | |
| static int | build_bases (const mesh::Mesh3D &mesh, const std::string &assembler, const int quadrature_order, const int mass_quadrature_order, const int discr_orderp, const int discr_orderq, 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_face_to_data, std::shared_ptr< mesh::MeshNodes > &mesh_nodes) |
| Builds FE basis functions over the entire mesh (P1, P2 over tets, Q1, Q2 over hes). | |
| static int | build_bases (const mesh::Mesh3D &mesh, const std::string &assembler, const int quadrature_order, const int mass_quadrature_order, const Eigen::VectorXi &discr_orderp, const Eigen::VectorXi &discr_orderq, 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_face_to_data, std::shared_ptr< mesh::MeshNodes > &mesh_nodes) |
| Builds FE basis functions over the entire mesh (P1, P2 over tets, Q1, Q2 over hex). | |
| static Eigen::VectorXi | tet_face_local_nodes (const int p, const mesh::Mesh3D &mesh, mesh::Navigation3D::Index index) |
| static Eigen::VectorXi | hex_face_local_nodes (const bool serendipity, const int q, const mesh::Mesh3D &mesh, mesh::Navigation3D::Index index) |
| static Eigen::VectorXi | prism_face_local_nodes (const int p, const int q, const mesh::Mesh3D &mesh, mesh::Navigation3D::Index index) |
| static Eigen::VectorXi | pyramid_face_local_nodes (const int p, const mesh::Mesh3D &mesh, mesh::Navigation3D::Index index) |
Static Private Member Functions | |
| static Eigen::MatrixXd | linear_hex_face_local_nodes_coordinates (const mesh::Mesh3D &mesh, mesh::Navigation3D::Index index) |
| static Eigen::RowVector3d | quadr_hex_local_node_coordinates (int local_index) |
Definition at line 18 of file LagrangeBasis3d.hpp.
|
static |
Builds FE basis functions over the entire mesh (P1, P2 over tets, Q1, Q2 over hex).
Polygonal facets with > 4 vertices are dealt later on by the PolygonalBasis3d class.
| [in] | mesh | The input volumetric mesh |
| [in] | assembler | The pde to solve |
| [in] | quadrature_order | The quadrature order |
| [in] | mass_quadrature_order | The quadrature order for mass |
| [in] | discr_orderp | The order for each element |
| [in] | discr_orderq | The order for each tensor element |
| [in] | bernstein | Uses bernstein bases or not (only for tets) |
| [in] | serendipity | Uses serendipity bases or not (only for hex) |
| [in] | has_polys | Does the mesh has polygons, if not the interface mapping is not necessary |
| [in] | is_geom_bases | Flag to decide if build geometric mapping or normal bases, used to decide if the nodes are important |
| [out] | bases | List of basis functions per element |
| [out] | local_boundary | List of descriptor per element, indicating which edge of the canonical elements lie on the boundary of the mesh |
| [out] | poly_edge_to_data | Data for edges at the interface with a polygon (used to build the harmonics inside polygons) |
|
static |
Builds FE basis functions over the entire mesh (P1, P2 over tets, Q1, Q2 over hes).
Polygonal facets with > 4 vertices are dealt later on by the PolygonalBasis3d class.
| [in] | mesh | The input volumetric mesh |
| [in] | assembler | The pde to solve |
| [in] | quadrature_order | The quadrature order |
| [in] | mass_quadrature_order | The quadrature order for mass |
| [in] | discr_orderp | The order of the elements (1-4) |
| [in] | discr_orderq | The order of the second tensor (1-4) |
| [in] | bernstein | Uses bernstein bases or not (only for tets) |
| [in] | serendipity | Uses serendipity bases or not (only for hex) |
| [in] | has_polys | Does the mesh has polygons, if not the interface mapping is not necessary |
| [in] | is_geom_bases | Flag to decide if build geometric mapping or normal bases, used to decide if the nodes are important |
| [out] | bases | List of basis functions per element |
| [out] | local_boundary | List of descriptor per element, indicating which edge of the canonical elements lie on the boundary of the mesh |
| [out] | poly_edge_to_data | Data for edges at the interface with a polygon (used to build the harmonics inside polygons) |
Referenced by polyfem::varform::VarForm::build_fe_space().
|
static |
Definition at line 1655 of file LagrangeBasis3d.cpp.
References polyfem::mesh::Navigation3D::Index::element, polyfem::mesh::Navigation3D::Index::face, polyfem::mesh::Mesh3D::get_index_from_element_edge(), polyfem::mesh::Mesh::is_cube(), polyfem::mesh::Mesh3D::next_around_face(), polyfem::autogen::q_nodes_3d(), polyfem::mesh::Mesh3D::switch_vertex(), and polyfem::mesh::Navigation3D::Index::vertex.
Referenced by polyfem::basis::SplineBasis3d::build_bases().
|
staticprivate |
|
static |
Definition at line 1837 of file LagrangeBasis3d.cpp.
References polyfem::mesh::Navigation3D::Index::element, polyfem::mesh::Navigation3D::Index::face, polyfem::mesh::Mesh3D::get_index_from_element_edge(), polyfem::mesh::Mesh3D::get_index_from_element_face(), polyfem::mesh::Mesh::is_prism(), polyfem::mesh::Mesh::n_face_vertices(), polyfem::mesh::Mesh3D::next_around_face(), polyfem::autogen::prism_nodes_3d(), polyfem::mesh::Mesh3D::switch_vertex(), and polyfem::mesh::Navigation3D::Index::vertex.
|
static |
Definition at line 2412 of file LagrangeBasis3d.cpp.
References polyfem::mesh::Navigation3D::Index::element, polyfem::mesh::Navigation3D::Index::face, polyfem::mesh::Mesh3D::get_index_from_element_edge(), polyfem::mesh::Mesh::is_pyramid(), polyfem::mesh::Mesh::n_face_vertices(), polyfem::mesh::Mesh3D::next_around_face(), and polyfem::mesh::Navigation3D::Index::vertex.
|
staticprivate |
|
static |
Definition at line 1344 of file LagrangeBasis3d.cpp.
References polyfem::mesh::Navigation3D::Index::element, polyfem::mesh::Navigation3D::Index::face, polyfem::mesh::Mesh3D::get_index_from_element_edge(), polyfem::mesh::Mesh3D::get_index_from_element_face(), polyfem::mesh::Mesh::is_simplex(), polyfem::mesh::Mesh3D::next_around_face(), polyfem::autogen::p_nodes_3d(), polyfem::mesh::Mesh3D::switch_vertex(), and polyfem::mesh::Navigation3D::Index::vertex.