1#ifndef LF_USCALFE_SCALAR_FE_SPACE_H_
2#define LF_USCALFE_SCALAR_FE_SPACE_H_
17#include <lf/assemble/assemble.h>
19#include "scalar_reference_finite_element.h"
64template <
typename SCALAR>
82 [[nodiscard]] virtual std::shared_ptr<const
lf::mesh::
Mesh>
Mesh() const = 0;
87 [[nodiscard]] virtual const
lf::assemble::DofHandler &
LocGlobMap() const = 0;
112 const
lf::mesh::Entity &entity) const = 0;
119template <typename SCALAR>
120std::ostream &operator<<(std::ostream &o, const
ScalarFESpace<SCALAR> &fes) {
132template <
class SCALAR>
133struct fmt::formatter<
lf::fe::ScalarFESpace<SCALAR>> : ostream_formatter {};
Space of scalar valued finite element functions on a Mesh.
ScalarFESpace(const ScalarFESpace &)=default
virtual ScalarReferenceFiniteElement< SCALAR > const * ShapeFunctionLayout(const lf::mesh::Entity &entity) const =0
access to shape function layout for mesh entities
ScalarFESpace()=default
default constructor, needed by std::vector
virtual std::shared_ptr< const lf::mesh::Mesh > Mesh() const =0
acess to underlying mesh
virtual size_type NumRefShapeFunctions(const lf::mesh::Entity &entity) const =0
number of interior shape functions associated to a particular mesh entity.
virtual const lf::assemble::DofHandler & LocGlobMap() const =0
access to associated local-to-global map
ScalarFESpace(ScalarFESpace &&) noexcept=default
Interface class for parametric scalar valued finite elements.
Collects data structures and algorithms designed for scalar finite element methods primarily meant fo...
lf::assemble::size_type size_type