PolyFEM
Loading...
Searching...
No Matches
polyfem::varform::FESpace Class Reference

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::InterfaceDatapoly_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::MeshNodesmesh_nodes
 Optional primitive-to-node mapping for this FE space.
 
std::shared_ptr< GeometryMappinggeometry
 Geometric mapping used to integrate this FE space.
 
Eigen::VectorXi space_in_node_to_node
 
Eigen::VectorXi space_in_primitive_to_primitive
 

Detailed Description

A finite-element space for one scalar- or vector-valued field.

Definition at line 58 of file FESpace.hpp.

Member Function Documentation

◆ basis_list()

const std::vector< basis::ElementBases > & polyfem::varform::FESpace::basis_list ( ) const
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().

Here is the caller graph for this function:

◆ geometry_basis_list()

const std::vector< basis::ElementBases > & polyfem::varform::FESpace::geometry_basis_list ( ) const
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().

Here is the caller graph for this function:

◆ has_bases()

bool polyfem::varform::FESpace::has_bases ( ) const
inline

Definition at line 99 of file FESpace.hpp.

References bases.

◆ is_iso_parametric()

bool polyfem::varform::FESpace::is_iso_parametric ( ) const
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().

Here is the caller graph for this function:

◆ ndof()

int polyfem::varform::FESpace::ndof ( ) const
inline

Definition at line 94 of file FESpace.hpp.

References n_bases, and value_dim.

◆ reset()

void polyfem::varform::FESpace::reset ( )
inline

Member Data Documentation

◆ bases

◆ disc_orders

◆ disc_ordersq

◆ geometry

◆ mesh_nodes

std::shared_ptr<mesh::MeshNodes> polyfem::varform::FESpace::mesh_nodes

◆ n_bases

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().

◆ poly_edge_to_data

◆ polys

◆ polys_3d

std::map<int, std::pair<Eigen::MatrixXd, Eigen::MatrixXi> > polyfem::varform::FESpace::polys_3d

◆ space_in_node_to_node

◆ space_in_primitive_to_primitive

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().

◆ value_dim

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().


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