LehrFEM++ 1.0.0
A simple Finite Element Library for teaching
Loading...
Searching...
No Matches
Public Types | Public Member Functions | List of all members
lf::uscalfe::FeSpaceLagrangeO1< SCALAR > Class Template Reference

(Bi)Linear Lagrangian Finite Element space More...

#include <lf/uscalfe/uscalfe.h>

Inheritance diagram for lf::uscalfe::FeSpaceLagrangeO1< SCALAR >:
lf::uscalfe::UniformScalarFESpace< SCALAR > lf::fe::ScalarFESpace< SCALAR >

Public Types

using Scalar = SCALAR
 
- Public Types inherited from lf::uscalfe::UniformScalarFESpace< SCALAR >
using Scalar = SCALAR
 
- Public Types inherited from lf::fe::ScalarFESpace< SCALAR >
using Scalar = SCALAR
 

Public Member Functions

 FeSpaceLagrangeO1 ()=delete
 no default constructors
 
 FeSpaceLagrangeO1 (const FeSpaceLagrangeO1 &)=delete
 
 FeSpaceLagrangeO1 (FeSpaceLagrangeO1 &&) noexcept=default
 
FeSpaceLagrangeO1operator= (const FeSpaceLagrangeO1 &)=delete
 
FeSpaceLagrangeO1operator= (FeSpaceLagrangeO1 &&) noexcept=default
 
 FeSpaceLagrangeO1 (const std::shared_ptr< const lf::mesh::Mesh > &mesh_p)
 Main constructor: sets up the local-to-global index mapping (dof handler)
 
 ~FeSpaceLagrangeO1 () override=default
 
- Public Member Functions inherited from lf::uscalfe::UniformScalarFESpace< SCALAR >
 UniformScalarFESpace (const UniformScalarFESpace &)=delete
 
 UniformScalarFESpace (UniformScalarFESpace &&) noexcept=default
 
UniformScalarFESpaceoperator= (const UniformScalarFESpace &)=delete
 
UniformScalarFESpaceoperator= (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::MeshMesh () const override
 access to underlying mesh
 
const lf::assemble::DofHandlerLocGlobMap () 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.
 
- Public Member Functions inherited from lf::fe::ScalarFESpace< SCALAR >
virtual ~ScalarFESpace ()=default
 No special destructor.
 

Additional Inherited Members

- Protected Member Functions inherited from lf::fe::ScalarFESpace< SCALAR >
 ScalarFESpace ()=default
 default constructor, needed by std::vector
 
 ScalarFESpace (const ScalarFESpace &)=default
 
 ScalarFESpace (ScalarFESpace &&) noexcept=default
 
ScalarFESpaceoperator= (const ScalarFESpace &)=default
 
ScalarFESpaceoperator= (ScalarFESpace &&) noexcept=default
 

Detailed Description

template<typename SCALAR>
class lf::uscalfe::FeSpaceLagrangeO1< SCALAR >

(Bi)Linear Lagrangian Finite Element space

Just a specialization of UniformScalarFESpace based on FeLagrangeO1Tria, FeLagrangeO1Quad, FeLagrangeO1Segment and FeLagrangePoint.

Example

auto mesh_factory = std::make_unique<mesh::hybrid2d::MeshFactory>(2);
auto gmsh_reader = io::GmshReader(std::move(mesh_factory), "mesh.msh");
auto fe_space =
std::make_shared<FeSpaceLagrangeO1<double>>(gmsh_reader.mesh());
// #dofs = #points in mesh:
assert(fe_space->LocGlobMap().NumDofs() ==
gmsh_reader.mesh()->NumEntities(2));

Definition at line 29 of file fe_space_lagrange_o1.h.

Member Typedef Documentation

◆ Scalar

template<typename SCALAR >
using lf::uscalfe::FeSpaceLagrangeO1< SCALAR >::Scalar = SCALAR

Definition at line 31 of file fe_space_lagrange_o1.h.

Constructor & Destructor Documentation

◆ FeSpaceLagrangeO1() [1/4]

template<typename SCALAR >
lf::uscalfe::FeSpaceLagrangeO1< SCALAR >::FeSpaceLagrangeO1 ( )
delete

no default constructors

◆ FeSpaceLagrangeO1() [2/4]

template<typename SCALAR >
lf::uscalfe::FeSpaceLagrangeO1< SCALAR >::FeSpaceLagrangeO1 ( const FeSpaceLagrangeO1< SCALAR > & )
delete

◆ FeSpaceLagrangeO1() [3/4]

template<typename SCALAR >
lf::uscalfe::FeSpaceLagrangeO1< SCALAR >::FeSpaceLagrangeO1 ( FeSpaceLagrangeO1< SCALAR > && )
defaultnoexcept

◆ FeSpaceLagrangeO1() [4/4]

template<typename SCALAR >
lf::uscalfe::FeSpaceLagrangeO1< SCALAR >::FeSpaceLagrangeO1 ( const std::shared_ptr< const lf::mesh::Mesh > & mesh_p)
inlineexplicit

Main constructor: sets up the local-to-global index mapping (dof handler)

Parameters
mesh_pshared pointer to underlying mesh (immutable)

Definition at line 45 of file fe_space_lagrange_o1.h.

◆ ~FeSpaceLagrangeO1()

template<typename SCALAR >
lf::uscalfe::FeSpaceLagrangeO1< SCALAR >::~FeSpaceLagrangeO1 ( )
overridedefault

Member Function Documentation

◆ operator=() [1/2]

template<typename SCALAR >
FeSpaceLagrangeO1 & lf::uscalfe::FeSpaceLagrangeO1< SCALAR >::operator= ( const FeSpaceLagrangeO1< SCALAR > & )
delete

◆ operator=() [2/2]

template<typename SCALAR >
FeSpaceLagrangeO1 & lf::uscalfe::FeSpaceLagrangeO1< SCALAR >::operator= ( FeSpaceLagrangeO1< SCALAR > && )
defaultnoexcept

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