8#ifndef INCG5ac8f981f27e45d3b9d15fc9d52f7136
9#define INCG5ac8f981f27e45d3b9d15fc9d52f7136
11#include <lf/base/base.h>
12#include <lf/geometry/geometry.h>
14#include "mesh_interface.h"
73 std::unique_ptr<geometry::Geometry>&& geometry) = 0;
118 base::RefEl ref_el,
const std::span<const size_type>& nodes,
119 std::unique_ptr<geometry::Geometry>&& geometry) = 0;
129 [[nodiscard]]
virtual std::shared_ptr<Mesh>
Build() = 0;
Represents a reference element with all its properties.
Interface class for initialization of a mesh object.
Eigen::VectorXd coord_t
Coordinate type of a point.
virtual size_type AddPoint(coord_t coord)=0
Add a point to the mesh.
virtual dim_t DimWorld() const =0
Return the Mesh::DimWorld() of the mesh that will be returned.
MeshFactory & operator=(const MeshFactory &)=default
MeshFactory(MeshFactory &&)=default
virtual ~MeshFactory()=default
Virtual destructor.
MeshFactory(const MeshFactory &)=default
virtual size_type AddPoint(std::unique_ptr< geometry::Geometry > &&geometry)=0
Add a point to the mesh.
virtual dim_t DimMesh() const =0
Return the Mesh::DimMesh() of the mesh that will be returned.
MeshFactory & operator=(MeshFactory &&)=default
virtual size_type AddEntity(base::RefEl ref_el, const std::span< const size_type > &nodes, std::unique_ptr< geometry::Geometry > &&geometry)=0
Add an an entity (codim>0) to the mesh.
virtual std::shared_ptr< Mesh > Build()=0
Construct a mesh out of the specified nodes and elements.
unsigned int dim_t
type for dimensions and co-dimensions and numbers derived from them
Defines a set of interface classes that define a mesh manager and provides mesh-related tools that bu...