|
PolyFEM
|
A finite-element space for one scalar- or vector-valued field. More...
#include <FESpace.hpp>
Public Member Functions | |
| int | ndof () const |
| bool | has_bases () const |
| bool | is_iso_parametric () const |
| const std::vector< basis::ElementBases > & | basis_list () const |
| const std::vector< basis::ElementBases > & | geometry_basis_list () const |
| void | reset () |
Public Attributes | |
| int | value_dim = 1 |
| Number of field components per scalar basis function. | |
| int | n_bases = 0 |
| Number of globally indexed scalar basis functions in the space. | |
| std::shared_ptr< std::vector< basis::ElementBases > > | bases |
| Per-element basis data. | |
| Eigen::VectorXi | disc_orders |
| Primary polynomial degree for each mesh element. | |
| Eigen::VectorXi | disc_ordersq |
| Secondary polynomial degree for anisotropic bases, e.g. prisms. | |
| std::map< int, basis::InterfaceData > | poly_edge_to_data |
| Polygonal-basis construction data, indexed by element ID. | |
| std::map< int, Eigen::MatrixXd > | polys |
| Physical boundary samples for 2D polygonal elements. | |
| std::map< int, std::pair< Eigen::MatrixXd, Eigen::MatrixXi > > | polys_3d |
| Physical vertices and face connectivity for 3D polyhedral elements. | |
| std::shared_ptr< mesh::MeshNodes > | mesh_nodes |
| Optional primitive-to-node mapping for this FE space. | |
| std::shared_ptr< GeometryMapping > | geometry |
| Geometric mapping used to integrate this FE space. | |
| Eigen::VectorXi | space_in_node_to_node |
| Eigen::VectorXi | space_in_primitive_to_primitive |
A finite-element space for one scalar- or vector-valued field.
Definition at line 58 of file FESpace.hpp.
|
inline |
Definition at line 109 of file FESpace.hpp.
References bases.
Referenced by polyfem::varform::BilaplacianVarForm::assemble_mass_mat(), polyfem::varform::ElasticVarForm::assemble_mass_mat(), polyfem::varform::FluidVarForm::assemble_mass_mat(), polyfem::varform::IncompressibleElasticVarForm::assemble_mass_mat(), polyfem::varform::ScalarVarForm::assemble_mass_mat(), polyfem::varform::BilaplacianVarForm::assemble_rhs(), polyfem::varform::BilaplacianVarForm::build_basis(), polyfem::varform::ElasticVarForm::build_basis(), polyfem::varform::FluidVarForm::build_basis(), polyfem::varform::IncompressibleElasticVarForm::build_basis(), polyfem::varform::ScalarVarForm::build_basis(), polyfem::varform::BilaplacianVarForm::build_rhs_assembler(), polyfem::varform::ElasticVarForm::build_rhs_assembler(), polyfem::varform::FluidVarForm::build_rhs_assembler(), polyfem::varform::IncompressibleElasticVarForm::build_rhs_assembler(), polyfem::varform::ScalarVarForm::build_rhs_assembler(), polyfem::varform::BilaplacianVarForm::build_stiffness_mat(), polyfem::varform::FluidVarForm::build_stiffness_mat(), polyfem::varform::IncompressibleElasticVarForm::build_stiffness_mat(), polyfem::varform::LinearElasticVarForm::build_stiffness_mat(), polyfem::varform::BilaplacianVarForm::compute_errors(), polyfem::varform::FluidVarForm::compute_errors(), polyfem::varform::IncompressibleElasticVarForm::compute_errors(), polyfem::varform::ScalarVarForm::compute_errors(), polyfem::varform::ElasticVarForm::elastic_output_fields(), polyfem::varform::BilaplacianVarForm::export_data(), polyfem::varform::FluidVarForm::export_data(), polyfem::varform::ScalarVarForm::export_data(), polyfem::varform::BilaplacianVarForm::output_fields(), polyfem::varform::FluidVarForm::output_fields(), polyfem::varform::IncompressibleElasticVarForm::output_fields(), and polyfem::varform::ScalarVarForm::output_fields().
|
inline |
Definition at line 115 of file FESpace.hpp.
References geometry.
Referenced by polyfem::varform::BilaplacianVarForm::assemble_mass_mat(), polyfem::varform::ElasticVarForm::assemble_mass_mat(), polyfem::varform::FluidVarForm::assemble_mass_mat(), polyfem::varform::IncompressibleElasticVarForm::assemble_mass_mat(), polyfem::varform::ScalarVarForm::assemble_mass_mat(), polyfem::varform::BilaplacianVarForm::build_basis(), polyfem::varform::ElasticVarForm::build_basis(), polyfem::varform::FluidVarForm::build_basis(), polyfem::varform::IncompressibleElasticVarForm::build_basis(), polyfem::varform::ScalarVarForm::build_basis(), polyfem::varform::ElasticVarForm::build_rhs_assembler(), polyfem::varform::FluidVarForm::build_rhs_assembler(), polyfem::varform::IncompressibleElasticVarForm::build_rhs_assembler(), polyfem::varform::ScalarVarForm::build_rhs_assembler(), polyfem::varform::BilaplacianVarForm::build_rhs_assembler(), polyfem::varform::BilaplacianVarForm::build_stiffness_mat(), polyfem::varform::FluidVarForm::build_stiffness_mat(), polyfem::varform::IncompressibleElasticVarForm::build_stiffness_mat(), polyfem::varform::LinearElasticVarForm::build_stiffness_mat(), polyfem::varform::BilaplacianVarForm::compute_errors(), polyfem::varform::FluidVarForm::compute_errors(), polyfem::varform::IncompressibleElasticVarForm::compute_errors(), polyfem::varform::ScalarVarForm::compute_errors(), polyfem::varform::ElasticVarForm::elastic_output_fields(), polyfem::varform::BilaplacianVarForm::export_data(), polyfem::varform::FluidVarForm::export_data(), polyfem::varform::ScalarVarForm::export_data(), polyfem::varform::LinearElasticVarForm::init_linear_solve(), polyfem::varform::BilaplacianVarForm::output_fields(), polyfem::varform::FluidVarForm::output_fields(), polyfem::varform::IncompressibleElasticVarForm::output_fields(), polyfem::varform::ScalarVarForm::output_fields(), polyfem::varform::BilaplacianVarForm::output_space(), polyfem::varform::FluidVarForm::output_space(), and polyfem::varform::ScalarVarForm::output_space().
|
inline |
Definition at line 99 of file FESpace.hpp.
References bases.
|
inline |
Definition at line 104 of file FESpace.hpp.
References bases, and geometry.
Referenced by polyfem::varform::VarForm::build_fe_space(), polyfem::varform::ElasticVarForm::elastic_primitive_to_node(), polyfem::varform::BilaplacianVarForm::save_json(), polyfem::varform::FluidVarForm::save_json(), polyfem::varform::IncompressibleElasticVarForm::save_json(), and polyfem::varform::ScalarVarForm::save_json().
|
inline |
Definition at line 94 of file FESpace.hpp.
|
inline |
Definition at line 122 of file FESpace.hpp.
References bases, disc_orders, disc_ordersq, geometry, mesh_nodes, n_bases, poly_edge_to_data, polys, polys_3d, space_in_node_to_node, space_in_primitive_to_primitive, and value_dim.
Referenced by polyfem::varform::VarForm::build_fe_space(), polyfem::varform::BilaplacianVarForm::reset(), polyfem::varform::ElasticVarForm::reset(), polyfem::varform::FluidVarForm::reset(), polyfem::varform::IncompressibleElasticVarForm::reset(), and polyfem::varform::ScalarVarForm::reset().
| std::shared_ptr<std::vector<basis::ElementBases> > polyfem::varform::FESpace::bases |
Per-element basis data.
Definition at line 68 of file FESpace.hpp.
Referenced by basis_list(), polyfem::varform::BilaplacianVarForm::build_basis(), polyfem::varform::FluidVarForm::build_basis(), polyfem::varform::IncompressibleElasticVarForm::build_basis(), polyfem::varform::VarForm::build_fe_space(), polyfem::varform::VarForm::build_polygonal_basis(), has_bases(), polyfem::varform::GeometryMapping::init_from_fe_space(), polyfem::varform::LinearElasticVarForm::init_linear_solve(), is_iso_parametric(), and reset().
| Eigen::VectorXi polyfem::varform::FESpace::disc_orders |
Primary polynomial degree for each mesh element.
Definition at line 71 of file FESpace.hpp.
Referenced by polyfem::varform::BilaplacianVarForm::assemble_rhs(), polyfem::varform::BilaplacianVarForm::build_basis(), polyfem::varform::FluidVarForm::build_basis(), polyfem::varform::IncompressibleElasticVarForm::build_basis(), polyfem::varform::VarForm::build_fe_space(), polyfem::varform::VarForm::build_node_mapping(), polyfem::varform::ElasticVarForm::elastic_boundary_samples(), polyfem::varform::BilaplacianVarForm::export_data(), polyfem::varform::FluidVarForm::export_data(), polyfem::varform::ScalarVarForm::export_data(), polyfem::varform::GeometryMapping::init_from_fe_space(), polyfem::varform::BilaplacianVarForm::output_space(), polyfem::varform::FluidVarForm::output_space(), polyfem::varform::ScalarVarForm::output_space(), reset(), polyfem::varform::BilaplacianVarForm::save_json(), polyfem::varform::FluidVarForm::save_json(), polyfem::varform::IncompressibleElasticVarForm::save_json(), polyfem::varform::ScalarVarForm::save_json(), polyfem::varform::BilaplacianVarForm::solve_static_linear(), and polyfem::varform::BilaplacianVarForm::solve_transient_linear().
| Eigen::VectorXi polyfem::varform::FESpace::disc_ordersq |
Secondary polynomial degree for anisotropic bases, e.g. prisms.
Definition at line 74 of file FESpace.hpp.
Referenced by polyfem::varform::VarForm::build_fe_space(), polyfem::varform::BilaplacianVarForm::export_data(), polyfem::varform::FluidVarForm::export_data(), polyfem::varform::ScalarVarForm::export_data(), polyfem::varform::BilaplacianVarForm::output_space(), polyfem::varform::FluidVarForm::output_space(), polyfem::varform::ScalarVarForm::output_space(), reset(), polyfem::varform::BilaplacianVarForm::save_json(), polyfem::varform::FluidVarForm::save_json(), polyfem::varform::IncompressibleElasticVarForm::save_json(), and polyfem::varform::ScalarVarForm::save_json().
| std::shared_ptr<GeometryMapping> polyfem::varform::FESpace::geometry |
Geometric mapping used to integrate this FE space.
Definition at line 89 of file FESpace.hpp.
Referenced by polyfem::varform::BilaplacianVarForm::build_basis(), polyfem::varform::FluidVarForm::build_basis(), polyfem::varform::IncompressibleElasticVarForm::build_basis(), polyfem::varform::VarForm::build_fe_space(), polyfem::varform::VarForm::build_polygonal_basis(), polyfem::varform::ElasticVarForm::elastic_node_to_primitive(), polyfem::varform::ElasticVarForm::elastic_primitive_to_node(), geometry_basis_list(), is_iso_parametric(), and reset().
| std::shared_ptr<mesh::MeshNodes> polyfem::varform::FESpace::mesh_nodes |
Optional primitive-to-node mapping for this FE space.
Definition at line 86 of file FESpace.hpp.
Referenced by polyfem::varform::VarForm::build_fe_space(), polyfem::varform::VarForm::build_node_mapping(), polyfem::varform::ElasticVarForm::elastic_primitive_to_node(), polyfem::varform::GeometryMapping::init_from_fe_space(), and reset().
| int polyfem::varform::FESpace::n_bases = 0 |
Number of globally indexed scalar basis functions in the space.
Definition at line 65 of file FESpace.hpp.
Referenced by polyfem::varform::BilaplacianVarForm::assemble_mass_mat(), polyfem::varform::ElasticVarForm::assemble_mass_mat(), polyfem::varform::FluidVarForm::assemble_mass_mat(), polyfem::varform::IncompressibleElasticVarForm::assemble_mass_mat(), polyfem::varform::ScalarVarForm::assemble_mass_mat(), polyfem::varform::BilaplacianVarForm::assemble_rhs(), polyfem::varform::IncompressibleElasticVarForm::assemble_rhs(), polyfem::varform::BilaplacianVarForm::build_basis(), polyfem::varform::ElasticVarForm::build_basis(), polyfem::varform::FluidVarForm::build_basis(), polyfem::varform::IncompressibleElasticVarForm::build_basis(), polyfem::varform::ScalarVarForm::build_basis(), polyfem::varform::VarForm::build_fe_space(), polyfem::varform::VarForm::build_polygonal_basis(), polyfem::varform::BilaplacianVarForm::build_rhs_assembler(), polyfem::varform::ElasticVarForm::build_rhs_assembler(), polyfem::varform::FluidVarForm::build_rhs_assembler(), polyfem::varform::IncompressibleElasticVarForm::build_rhs_assembler(), polyfem::varform::ScalarVarForm::build_rhs_assembler(), polyfem::varform::BilaplacianVarForm::build_stiffness_mat(), polyfem::varform::FluidVarForm::build_stiffness_mat(), polyfem::varform::IncompressibleElasticVarForm::build_stiffness_mat(), polyfem::varform::LinearElasticVarForm::build_stiffness_mat(), polyfem::varform::BilaplacianVarForm::compute_errors(), polyfem::varform::FluidVarForm::compute_errors(), polyfem::varform::IncompressibleElasticVarForm::compute_errors(), polyfem::varform::ScalarVarForm::compute_errors(), polyfem::varform::BilaplacianVarForm::export_data(), polyfem::varform::FluidVarForm::export_data(), polyfem::varform::ScalarVarForm::export_data(), polyfem::varform::GeometryMapping::init_from_fe_space(), polyfem::varform::LinearElasticVarForm::init_linear_solve(), ndof(), polyfem::varform::BilaplacianVarForm::output_fields(), polyfem::varform::ScalarVarForm::output_fields(), polyfem::varform::BilaplacianVarForm::prepare_initial_solution(), polyfem::varform::IncompressibleElasticVarForm::prepare_initial_solution(), polyfem::varform::FluidVarForm::pressure_block_size(), polyfem::varform::FluidVarForm::primary_ndof(), polyfem::varform::IncompressibleElasticVarForm::primary_ndof(), reset(), polyfem::varform::BilaplacianVarForm::save_json(), polyfem::varform::FluidVarForm::save_json(), polyfem::varform::IncompressibleElasticVarForm::save_json(), polyfem::varform::ScalarVarForm::save_json(), polyfem::varform::BilaplacianVarForm::solve_linear_system(), polyfem::varform::LinearElasticVarForm::solve_linear_system(), polyfem::varform::BilaplacianVarForm::solve_transient_linear(), polyfem::varform::IncompressibleElasticVarForm::solve_transient_linear(), polyfem::varform::BilaplacianVarForm::split_solution(), polyfem::varform::FluidVarForm::split_solution(), polyfem::varform::IncompressibleElasticVarForm::split_solution(), polyfem::varform::BilaplacianVarForm::stacked_ndof(), and polyfem::varform::IncompressibleElasticVarForm::stacked_ndof().
| std::map<int, basis::InterfaceData> polyfem::varform::FESpace::poly_edge_to_data |
Polygonal-basis construction data, indexed by element ID.
Definition at line 77 of file FESpace.hpp.
Referenced by polyfem::varform::BilaplacianVarForm::build_basis(), polyfem::varform::FluidVarForm::build_basis(), polyfem::varform::IncompressibleElasticVarForm::build_basis(), polyfem::varform::VarForm::build_fe_space(), polyfem::varform::VarForm::build_polygonal_basis(), and reset().
| std::map<int, Eigen::MatrixXd> polyfem::varform::FESpace::polys |
Physical boundary samples for 2D polygonal elements.
Definition at line 80 of file FESpace.hpp.
Referenced by polyfem::varform::VarForm::build_polygonal_basis(), polyfem::varform::GeometryMapping::init_from_fe_space(), polyfem::varform::BilaplacianVarForm::output_space(), polyfem::varform::FluidVarForm::output_space(), polyfem::varform::ScalarVarForm::output_space(), and reset().
| std::map<int, std::pair<Eigen::MatrixXd, Eigen::MatrixXi> > polyfem::varform::FESpace::polys_3d |
Physical vertices and face connectivity for 3D polyhedral elements.
Definition at line 83 of file FESpace.hpp.
Referenced by polyfem::varform::VarForm::build_polygonal_basis(), polyfem::varform::GeometryMapping::init_from_fe_space(), polyfem::varform::BilaplacianVarForm::output_space(), polyfem::varform::FluidVarForm::output_space(), polyfem::varform::ScalarVarForm::output_space(), and reset().
| Eigen::VectorXi polyfem::varform::FESpace::space_in_node_to_node |
Definition at line 91 of file FESpace.hpp.
Referenced by polyfem::varform::BilaplacianVarForm::build_basis(), polyfem::varform::ElasticVarForm::build_basis(), polyfem::varform::FluidVarForm::build_basis(), polyfem::varform::ScalarVarForm::build_basis(), polyfem::varform::VarForm::build_fe_space(), polyfem::varform::BilaplacianVarForm::export_data(), polyfem::varform::FluidVarForm::export_data(), polyfem::varform::ScalarVarForm::export_data(), polyfem::varform::ElasticVarForm::initial_acceleration(), polyfem::varform::ElasticVarForm::initial_elastic_solution(), polyfem::varform::ElasticVarForm::initial_velocity(), polyfem::varform::BilaplacianVarForm::prepare_initial_solution(), polyfem::varform::FluidVarForm::prepare_initial_solution(), polyfem::varform::ScalarVarForm::prepare_initial_solution(), and reset().
| Eigen::VectorXi polyfem::varform::FESpace::space_in_primitive_to_primitive |
Definition at line 92 of file FESpace.hpp.
Referenced by polyfem::varform::VarForm::build_fe_space(), and reset().
| int polyfem::varform::FESpace::value_dim = 1 |
Number of field components per scalar basis function.
Definition at line 62 of file FESpace.hpp.
Referenced by polyfem::varform::VarForm::build_fe_space(), ndof(), and reset().