DOLFIN-X
DOLFIN-X C++ interface
Public Member Functions | List of all members
dolfinx::fem::FunctionSpace Class Reference

This class represents a finite element function space defined by a mesh, a finite element, and a local-to-global map of the degrees of freedom (dofmap). More...

#include <FunctionSpace.h>

Public Member Functions

 FunctionSpace (std::shared_ptr< const mesh::Mesh > mesh, std::shared_ptr< const fem::FiniteElement > element, std::shared_ptr< const fem::DofMap > dofmap)
 Create function space for given mesh, element and dofmap. More...
 
 FunctionSpace (const FunctionSpace &V)=delete
 
 FunctionSpace (FunctionSpace &&V)=default
 Move constructor.
 
virtual ~FunctionSpace ()=default
 Destructor.
 
FunctionSpaceoperator= (const FunctionSpace &V)=delete
 
FunctionSpaceoperator= (FunctionSpace &&V)=default
 Move assignment operator.
 
bool operator== (const FunctionSpace &V) const
 Equality operator. More...
 
bool operator!= (const FunctionSpace &V) const
 Inequality operator. More...
 
std::shared_ptr< FunctionSpacesub (const std::vector< int > &component) const
 Extract subspace for component. More...
 
bool contains (const FunctionSpace &V) const
 Check whether V is subspace of this, or this itself. More...
 
std::pair< std::shared_ptr< FunctionSpace >, std::vector< std::int32_t > > collapse () const
 Collapse a subspace and return a new function space and a map from new to old dofs. More...
 
std::vector< int > component () const
 Get the component with respect to the root superspace. More...
 
Eigen::Array< double, Eigen::Dynamic, 3, Eigen::RowMajor > tabulate_dof_coordinates () const
 Tabulate the physical coordinates of all dofs on this process. More...
 
Eigen::Array< double, Eigen::Dynamic, 3, Eigen::RowMajor > tabulate_scalar_subspace_dof_coordinates () const
 Tabulate the physical coordinates of all dofs of scalar subspace on this process. For a VectorFunctionSpace or TensorFunctionSpace, the scalar subspace is the space used for each componenet. Otherwise the scalar subspace is the space itself. More...
 
std::size_t id () const
 Unique identifier.
 
std::shared_ptr< const mesh::Meshmesh () const
 The mesh.
 
std::shared_ptr< const fem::FiniteElementelement () const
 The finite element.
 
std::shared_ptr< const fem::DofMapdofmap () const
 The dofmap.
 

Detailed Description

This class represents a finite element function space defined by a mesh, a finite element, and a local-to-global map of the degrees of freedom (dofmap).

Constructor & Destructor Documentation

◆ FunctionSpace()

FunctionSpace::FunctionSpace ( std::shared_ptr< const mesh::Mesh mesh,
std::shared_ptr< const fem::FiniteElement element,
std::shared_ptr< const fem::DofMap dofmap 
)

Create function space for given mesh, element and dofmap.

Parameters
[in]meshThe mesh
[in]elementThe element
[in]dofmapThe dofmap

Member Function Documentation

◆ collapse()

std::pair< std::shared_ptr< FunctionSpace >, std::vector< std::int32_t > > FunctionSpace::collapse ( ) const

Collapse a subspace and return a new function space and a map from new to old dofs.

Returns
The new function space and a map rom new to old dofs

◆ component()

std::vector< int > FunctionSpace::component ( ) const

Get the component with respect to the root superspace.

Returns
The component with respect to the root superspace , i.e. W.sub(1).sub(0) == [1, 0]

◆ contains()

bool FunctionSpace::contains ( const FunctionSpace V) const

Check whether V is subspace of this, or this itself.

Parameters
[in]VThe space to be tested for inclusion
Returns
True if V is contained in or equal to this FunctionSpace

◆ operator!=()

bool FunctionSpace::operator!= ( const FunctionSpace V) const

Inequality operator.

Parameters
[in]VAnother function space.

◆ operator==()

bool FunctionSpace::operator== ( const FunctionSpace V) const

Equality operator.

Parameters
[in]VAnother function space

◆ sub()

std::shared_ptr< FunctionSpace > FunctionSpace::sub ( const std::vector< int > &  component) const

Extract subspace for component.

Parameters
[in]componentThe subspace component
Returns
The subspace

◆ tabulate_dof_coordinates()

Eigen::Array< double, Eigen::Dynamic, 3, Eigen::RowMajor > FunctionSpace::tabulate_dof_coordinates ( ) const

Tabulate the physical coordinates of all dofs on this process.

Returns
The dof coordinates [([x0, y0, z0], [x1, y1, z1], ...)

◆ tabulate_scalar_subspace_dof_coordinates()

Eigen::Array< double, Eigen::Dynamic, 3, Eigen::RowMajor > FunctionSpace::tabulate_scalar_subspace_dof_coordinates ( ) const

Tabulate the physical coordinates of all dofs of scalar subspace on this process. For a VectorFunctionSpace or TensorFunctionSpace, the scalar subspace is the space used for each componenet. Otherwise the scalar subspace is the space itself.

Returns
The dof coordinates [([x0, y0, z0], [x1, y1, z1], ...)

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