|
LehrFEM++ 1.0.0
A simple Finite Element Library for teaching
|
Space of scalar valued finite element functions on a hybrid 2D mesh More...
#include <lf/uscalfe/uscalfe.h>
Public Types | |
| using | Scalar = SCALAR |
Public Types inherited from lf::fe::ScalarFESpace< SCALAR > | |
| using | Scalar = SCALAR |
Public Member Functions | |
| UniformScalarFESpace (const UniformScalarFESpace &)=delete | |
| UniformScalarFESpace (UniformScalarFESpace &&) noexcept=default | |
| UniformScalarFESpace & | operator= (const UniformScalarFESpace &)=delete |
| UniformScalarFESpace & | operator= (UniformScalarFESpace &&) noexcept=default |
| UniformScalarFESpace (std::shared_ptr< const lf::mesh::Mesh > mesh_p, std::shared_ptr< const lf::fe::ScalarReferenceFiniteElement< SCALAR > > rfs_tria_p, std::shared_ptr< const lf::fe::ScalarReferenceFiniteElement< SCALAR > > rfs_quad_p, std::shared_ptr< const lf::fe::ScalarReferenceFiniteElement< SCALAR > > rfs_edge_p=nullptr, std::shared_ptr< const lf::fe::ScalarReferenceFiniteElement< SCALAR > > rfs_point_p=nullptr) | |
| Main constructor: sets up the local-to-global index mapping (dof handler) More... | |
| std::shared_ptr< const lf::mesh::Mesh > | Mesh () const override |
| access to underlying mesh More... | |
| const lf::assemble::DofHandler & | LocGlobMap () const override |
| access to associated local-to-global map More... | |
| lf::fe::ScalarReferenceFiniteElement< SCALAR > const * | ShapeFunctionLayout (const lf::mesh::Entity &entity) const override |
| access to shape function layout for cells More... | |
| lf::fe::ScalarReferenceFiniteElement< SCALAR > const * | ShapeFunctionLayout (lf::base::RefEl ref_el_type) const |
| access to shape function layout for cells More... | |
| size_type | NumRefShapeFunctions (const lf::mesh::Entity &entity) const override |
| number of interior shape functions associated to entities of various types More... | |
| size_type | NumRefShapeFunctions (lf::base::RefEl ref_el_type) const |
| number of interior shape functions associated to entities of various types More... | |
| ~UniformScalarFESpace () override=default | |
| No special destructor. More... | |
Public Member Functions inherited from lf::fe::ScalarFESpace< SCALAR > | |
| virtual std::shared_ptr< const lf::mesh::Mesh > | Mesh () const =0 |
| acess to underlying mesh More... | |
| virtual const lf::assemble::DofHandler & | LocGlobMap () const =0 |
| access to associated local-to-global map More... | |
| virtual ScalarReferenceFiniteElement< SCALAR > const * | ShapeFunctionLayout (const lf::mesh::Entity &entity) const =0 |
| access to shape function layout for mesh entities More... | |
| virtual size_type | NumRefShapeFunctions (const lf::mesh::Entity &entity) const =0 |
| number of interior shape functions associated to a particular mesh entity. More... | |
| virtual | ~ScalarFESpace ()=default |
| No special destructor. More... | |
Private Member Functions | |
| assemble::UniformFEDofHandler | InitDofHandler (std::shared_ptr< const lf::mesh::Mesh > mesh_p) |
| bool | check_ptr () const |
Private Attributes | |
| std::shared_ptr< const lf::fe::ScalarReferenceFiniteElement< SCALAR > > | rfs_tria_p_ |
| std::shared_ptr< const lf::fe::ScalarReferenceFiniteElement< SCALAR > > | rfs_quad_p_ |
| std::shared_ptr< const lf::fe::ScalarReferenceFiniteElement< SCALAR > > | rfs_edge_p_ |
| std::shared_ptr< const lf::fe::ScalarReferenceFiniteElement< SCALAR > > | rfs_point_p_ |
| size_type | num_rsf_node_ {0} |
| size_type | num_rsf_edge_ {0} |
| size_type | num_rsf_tria_ {0} |
| size_type | num_rsf_quad_ {0} |
| assemble::UniformFEDofHandler | dofh_ |
Related Functions | |
(Note that these are not member functions.) | |
| template<class SCALAR > | |
| void | PrintInfo (std::ostream &o, const UniformScalarFESpace< SCALAR > &fes, unsigned int ctrl=0) |
| Print information about a UniformScalarFESpace to the given stream object. More... | |
| template<typename SCALAR > | |
| std::ostream & | operator<< (std::ostream &o, const UniformScalarFESpace< SCALAR > &fes) |
| output operator for scalar parametric finite element space More... | |
Additional Inherited Members | |
Protected Member Functions inherited from lf::fe::ScalarFESpace< SCALAR > | |
| ScalarFESpace ()=default | |
| default constructor, needed by std::vector More... | |
| ScalarFESpace (const ScalarFESpace &)=default | |
| ScalarFESpace (ScalarFESpace &&) noexcept=default | |
| ScalarFESpace & | operator= (const ScalarFESpace &)=default |
| ScalarFESpace & | operator= (ScalarFESpace &&) noexcept=default |
Space of scalar valued finite element functions on a hybrid 2D mesh
| SCALAR | underlying scalar type, usually either double or complex<double> |
The abstract concept of a (parametric) finite element space involves
This class just contains (pointers to) objects representing the various building blocks of a finite element space. It does not offer elaborate methods.
This class is covered in \lref{par:fespace}.
Definition at line 50 of file uniform_scalar_fe_space.h.
| using lf::uscalfe::UniformScalarFESpace< SCALAR >::Scalar = SCALAR |
Definition at line 52 of file uniform_scalar_fe_space.h.
|
delete |
|
defaultnoexcept |
|
inline |
Main constructor: sets up the local-to-global index mapping (dof handler)
| mesh_p | shared pointer to underlying mesh (immutable) |
| rfs_tria_p | shared pointer to layout description for reference shape functions on triangular cells |
| rfs_quad_p | shared pointer to layout description for reference shape functions on quadrilateral cells |
| rfs_edge_p | shared pointer to layout description for reference shape functions on the edges |
| rfs_point_p | shared pointer to layout description for reference shape functions on the edges |
The schemes for local shape have to satisfy certain compatibility conditions:
Definition at line 82 of file uniform_scalar_fe_space.h.
|
overridedefault |
No special destructor.
|
inlineprivate |
Checks whether some pointer are not valid
Definition at line 174 of file uniform_scalar_fe_space.h.
References lf::uscalfe::UniformScalarFESpace< SCALAR >::Mesh(), and lf::uscalfe::UniformScalarFESpace< SCALAR >::rfs_quad_p_.
|
private |
Initialization of class member variables and consistency checks
Definition at line 240 of file uniform_scalar_fe_space.h.
References lf::base::RefEl::kPoint(), lf::base::RefEl::kQuad(), lf::base::RefEl::kSegment(), and lf::base::RefEl::kTria().
|
inlineoverridevirtual |
access to associated local-to-global map
Implements lf::fe::ScalarFESpace< SCALAR >.
Definition at line 109 of file uniform_scalar_fe_space.h.
References lf::uscalfe::UniformScalarFESpace< SCALAR >::dofh_, and lf::uscalfe::UniformScalarFESpace< SCALAR >::Mesh().
Referenced by lf::uscalfe::PrintInfo().
|
inlineoverridevirtual |
access to underlying mesh
Implements lf::fe::ScalarFESpace< SCALAR >.
Definition at line 102 of file uniform_scalar_fe_space.h.
References lf::uscalfe::UniformScalarFESpace< SCALAR >::dofh_, and lf::assemble::UniformFEDofHandler::Mesh().
Referenced by lf::uscalfe::UniformScalarFESpace< SCALAR >::check_ptr(), lf::uscalfe::UniformScalarFESpace< SCALAR >::LocGlobMap(), and lf::uscalfe::PrintInfo().
|
overridevirtual |
number of interior shape functions associated to entities of various types
Implements lf::fe::ScalarFESpace< SCALAR >.
Definition at line 383 of file uniform_scalar_fe_space.h.
References lf::mesh::Entity::RefEl().
Referenced by lf::uscalfe::PrintInfo().
| size_type lf::uscalfe::UniformScalarFESpace< SCALAR >::NumRefShapeFunctions | ( | lf::base::RefEl | ref_el_type | ) | const |
number of interior shape functions associated to entities of various types
Definition at line 391 of file uniform_scalar_fe_space.h.
References lf::base::RefEl::kPoint(), lf::base::RefEl::kQuad(), lf::base::RefEl::kSegment(), and lf::base::RefEl::kTria().
|
delete |
|
defaultnoexcept |
|
overridevirtual |
access to shape function layout for cells
access to shape function layout for mesh entities
| entity | The entity to get the reference element for |
Implements lf::fe::ScalarFESpace< SCALAR >.
Definition at line 343 of file uniform_scalar_fe_space.h.
References lf::mesh::Entity::RefEl().
| lf::fe::ScalarReferenceFiniteElement< SCALAR > const * lf::uscalfe::UniformScalarFESpace< SCALAR >::ShapeFunctionLayout | ( | lf::base::RefEl | ref_el_type | ) | const |
access to shape function layout for cells
| ref_el_type | type of entit, can be anything except for lf::base::RefEl::kPoint() |
Definition at line 350 of file uniform_scalar_fe_space.h.
References lf::base::RefEl::kPoint(), lf::base::RefEl::kQuad(), lf::base::RefEl::kSegment(), and lf::base::RefEl::kTria().
|
related |
output operator for scalar parametric finite element space
Definition at line 442 of file uniform_scalar_fe_space.h.
References lf::uscalfe::UniformScalarFESpace< SCALAR >::PrintInfo().
|
related |
Print information about a UniformScalarFESpace to the given stream object.
| o | The stream to which we should print |
| fes | The UniformScalarFESpace that should be printed. |
| ctrl | Controls the level of output: |
ctrl & kUniformScalarFESpaceOutMesh, mesh information will be printed.ctrl & kUniformScalarFESpaceOutDofh, information about the dof handler will be printed.ctrl & kUniformScalarFESpaceOutRsfs, information about the reference shape functions will be printed. Referenced by lf::uscalfe::UniformScalarFESpace< SCALAR >::operator<<().
|
private |
Local-to-global index map for the finite element space
Definition at line 168 of file uniform_scalar_fe_space.h.
Referenced by lf::uscalfe::UniformScalarFESpace< SCALAR >::LocGlobMap(), and lf::uscalfe::UniformScalarFESpace< SCALAR >::Mesh().
|
private |
Definition at line 164 of file uniform_scalar_fe_space.h.
|
private |
Numbers of local shape functions for different types of entities
Definition at line 164 of file uniform_scalar_fe_space.h.
|
private |
Definition at line 165 of file uniform_scalar_fe_space.h.
|
private |
Definition at line 164 of file uniform_scalar_fe_space.h.
|
private |
Description of reference shape functions on an edge
Definition at line 159 of file uniform_scalar_fe_space.h.
|
private |
Description of refererence shape functions on a point
Definition at line 162 of file uniform_scalar_fe_space.h.
|
private |
Description of reference shape functions on quadrilateral cells
Definition at line 156 of file uniform_scalar_fe_space.h.
Referenced by lf::uscalfe::UniformScalarFESpace< SCALAR >::check_ptr().
|
private |
Description of reference shape functions on triangular cells
Definition at line 153 of file uniform_scalar_fe_space.h.