9#ifndef INCG62731052ee4a4a2d9f256c2caac43835
10#define INCG62731052ee4a4a2d9f256c2caac43835
12#include <lf/mesh/mesh.h>
13#include <spdlog/logger.h>
15#include "lf/base/base.h"
16#include "lf/mesh/utils/print_info.h"
37 [[nodiscard]]
unsigned DimMesh()
const override {
return 2; }
40 [[nodiscard]] std::span<const Entity* const>
Entities(
41 unsigned codim)
const override;
57 std::vector<hybrid2d::Triangle>
trias_;
59 std::vector<hybrid2d::Quadrilateral>
quads_;
73 std::vector<std::pair<std::array<size_type, 2>,
GeometryPtr>>;
75 std::vector<std::pair<std::array<size_type, 4>,
GeometryPtr>>;
129 bool check_completeness);
135 static std::shared_ptr<spdlog::logger>&
Logger() {
Represents a reference element with all its properties.
Interface class representing a topological entity in a cellular complex
Abstract interface for objects representing a single mesh.
Implements mesh::MeshFactory interface and can be used to construct a hybrid mesh with dimMesh=2.
Basis 2D mesh type compliant with abstract mesh interface.
std::vector< std::pair< std::array< size_type, 4 >, GeometryPtr > > CellList
std::vector< hybrid2d::Point > points_
array of 0-dimensional entity object of co-dimension 2
std::unique_ptr< geometry::Geometry > GeometryPtr
Data types for passing information about mesh intities.
size_type NumEntities(unsigned codim) const override
The number of Entities that have the given codimension.
std::vector< std::pair< std::array< size_type, 2 >, GeometryPtr > > EdgeList
std::vector< hybrid2d::Segment > segments_
array of 1-dimensional entity object of co-dimension 1
unsigned DimMesh() const override
The dimension of the manifold described by the mesh, or equivalently the maximum dimension of the ref...
std::vector< hybrid2d::Triangle > trias_
array of triangular cell objects, oo-dimension 0
const mesh::Entity * EntityByIndex(dim_t codim, glb_idx_t index) const override
Method for accessing an entity through its index.
std::vector< GeometryPtr > NodeCoordList
std::array< std::vector< const mesh::Entity * >, 3 > entity_pointers_
Auxliary array of cell (co-dim ==0 entities) pointers.
unsigned DimWorld() const override
The dimension of the Euclidean space in which the mesh is embedded.
size_type Index(const Entity &e) const override
Acess to the index of a mesh entity of any co-dimension.
std::span< const Entity *const > Entities(unsigned codim) const override
All entities of a given codimension.
bool Contains(const mesh::Entity &e) const override
Check if the given entity is a part of this mesh.
static std::shared_ptr< spdlog::logger > & Logger()
logger, used by methods of Mesh to log additional information.
std::vector< hybrid2d::Quadrilateral > quads_
array of quadrilateral cell objects, oo-dimension 0
const unsigned int kIdxNil
Index flagged as invalid.
unsigned int size_type
general type for variables related to size of arrays
unsigned int sub_idx_t
type for local indices of sub-entities
unsigned int dim_t
type for dimensions and co-dimensions and numbers derived from them
unsigned int glb_idx_t
type for global index of mesh entities (nodes, edges, cells)
std::shared_ptr< spdlog::logger > InitLogger(const std::string &name)
Create a spdlog logger, register it in the spdlog registry and initialize it with LehrFEM++ specific ...
An alternative implementation of a hybrid2d mesh manager that uses Pointers to store sub-entity relat...
const unsigned int idx_nil
lf::base::glb_idx_t glb_idx_t
lf::base::size_type size_type
lf::base::sub_idx_t sub_idx_t