1#ifndef INCG37e385afbd3b4b1dba8611fb71787822
2#define INCG37e385afbd3b4b1dba8611fb71787822
4#include <fmt/ostream.h>
5#include <lf/base/base.h>
6#include <lf/geometry/geometry.h>
55 [[nodiscard]]
virtual unsigned Codim()
const = 0;
89 [[nodiscard]]
virtual std::span<const Entity* const>
SubEntities(
90 unsigned rel_codim)
const = 0;
Represents a reference element with all its properties.
Interface class for shape information on a mesh cell in the spirit of parametric finite element metho...
Interface class representing a topological entity in a cellular complex
virtual ~Entity()=default
Virtual Destructor.
virtual std::span< const Entity *const > SubEntities(unsigned rel_codim) const =0
Return all sub entities of this entity that have the given codimension (w.r.t. this entity!...
virtual bool operator==(const Entity &rhs) const =0
Check if two entities are the same.
virtual std::span< const Orientation > RelativeOrientations() const =0
return span of relative orientations of sub-entities of the next higher co-dimension.
virtual unsigned Codim() const =0
The codimension of this entity w.r.t. the Mesh.dimMesh() of the owning mesh manager.
Entity(Entity &&)=default
Entity(const Entity &)=default
virtual const geometry::Geometry * Geometry() const =0
Describes the geometry of this entity.
Entity & operator=(const Entity &)=default
bool operator!=(const Entity &rhs) const
Check if two entities are different.
virtual base::RefEl RefEl() const =0
Describes the reference element type of this entity.
Entity & operator=(Entity &&)=default
Defines a set of interface classes that define a mesh manager and provides mesh-related tools that bu...
char to_char(Orientation o)
std::ostream & operator<<(std::ostream &stream, const lf::mesh::Entity &entity)
Operator overload to print the reference element of Entity to a stream, such as std::cout.
int to_sign(Orientation o)
Orientation
Relative orientation of a sub-entity.