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 |
![]() | |
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) | |
std::shared_ptr< const lf::mesh::Mesh > | Mesh () const override |
access to underlying mesh | |
const lf::assemble::DofHandler & | LocGlobMap () const override |
access to associated local-to-global map | |
lf::fe::ScalarReferenceFiniteElement< SCALAR > const * | ShapeFunctionLayout (const lf::mesh::Entity &entity) const override |
access to shape function layout for cells | |
lf::fe::ScalarReferenceFiniteElement< SCALAR > const * | ShapeFunctionLayout (lf::base::RefEl ref_el_type) const |
access to shape function layout for cells | |
size_type | NumRefShapeFunctions (const lf::mesh::Entity &entity) const override |
number of interior shape functions associated to entities of various types | |
size_type | NumRefShapeFunctions (lf::base::RefEl ref_el_type) const |
number of interior shape functions associated to entities of various types | |
~UniformScalarFESpace () override=default | |
No special destructor. | |
![]() | |
virtual | ~ScalarFESpace ()=default |
No special destructor. | |
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 Symbols | |
(Note that these are not member symbols.) | |
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. | |
template<typename SCALAR > | |
std::ostream & | operator<< (std::ostream &o, const UniformScalarFESpace< SCALAR > &fes) |
output operator for scalar parametric finite element space | |
Additional Inherited Members | |
![]() | |
ScalarFESpace ()=default | |
default constructor, needed by std::vector | |
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 241 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 386 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 394 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 346 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 353 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 445 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.