MoReFEM
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Static Public Member Functions | Static Private Member Functions
MoReFEM::Segment2 Class Referencefinalabstract

A Segment2 geometric element read in a mesh. More...

#include <Segment2.hpp>

Inheritance diagram for MoReFEM::Segment2:
Collaboration diagram for MoReFEM::Segment2:

Public Types

using self
 Convenient alias.
 
using MeditSupport
 Object that store the information about Medit support.
 
using EnsightSupport
 Object that store the information about Ensight support.
 
using unique_ptr = std::unique_ptr<GeometricElt>
 Alias for unique pointer.
 
using shared_ptr = std::shared_ptr<GeometricElt>
 Alias for shared pointer.
 
using vector_shared_ptr = std::vector<shared_ptr>
 Alias for vector of pointers.
 

Public Member Functions

 Segment2 (MeshNS::unique_id mesh_unique_id)
 Minimal constructor: only the Mesh for which the current geometric element is created is provided.
 
 Segment2 (MeshNS::unique_id mesh_unique_id, const Coords::vector_shared_ptr &mesh_coords_list, std::istream &stream)
 Constructor from stream: The indexes related to Ncoords (as defined in enum) are read in the stream and object is built from them.
 
 Segment2 (MeshNS::unique_id mesh_unique_id, const Coords::vector_shared_ptr &mesh_coords_list, std::vector<::MoReFEM::CoordsNS::index_from_mesh_file > &&coords_index_list)
 Constructor from vector of coords index.
 
 ~Segment2 () override
 Destructor.
 
 Segment2 (const Segment2 &rhs)=delete
 The copy constructor.
 
 Segment2 (Segment2 &&rhs)=delete
 The move constructor.
 
Segment2operator= (const Segment2 &rhs)=delete
 The (copy) operator=.
 
Segment2operator= (Segment2 &&rhs)=delete
 The (move) operator=.
 
virtual const RefGeomEltGetRefGeomElt () const override final
 Reference geometric element.
 
virtual Advanced::GeometricEltEnum GetIdentifier () const override final
 Get the identifier of the geometric element.
 
virtual const Advanced::GeomEltNS::GenericNameGetName () const override final
 Get the name of the geometric element.
 
virtual std::size_t Ncoords () const override final
 Get the number of Coords object required to characterize completely a GeometricElt of this type.
 
virtual std::size_t Nvertex () const override final
 Get the number of summits.
 
virtual std::size_t Nface () const override final
 Get the number of faces.
 
virtual std::size_t Nedge () const override final
 Get the number of edges.
 
virtual std::size_t GetDimension () const override final
 Get the dimension of the geometric element.
 
void SetIndex (GeomEltNS::index_type index) noexcept
 
GeomEltNS::index_type GetIndex () const
 
MeshNS::unique_id GetMeshIdentifier () const noexcept
 Get the identifier of the mesh.
 
void SetMeshLabel (const MeshLabel::const_shared_ptr &mesh_label) noexcept
 
MeshLabel::const_shared_ptr GetMeshLabelPtr () const noexcept
 Get the label.
 
const Coords::vector_shared_ptrGetCoordsList () const noexcept
 Get the coords as a vector.
 
const CoordsGetCoord (std::size_t i) const
 
const Vertex::vector_shared_ptrGetVertexList () const noexcept
 Return the list of vertice.
 
const OrientedEdge::vector_shared_ptrGetOrientedEdgeList () const
 Return the list of edges.
 
const OrientedFace::vector_shared_ptrGetOrientedFaceList () const
 Return the list of faces.
 
Volume::shared_ptr GetVolumePtr () const
 Return the volume (as an interface).
 
void SetVertexList (Vertex::vector_shared_ptr &&vertex_list)
 Set the list of vertice.
 
void SetOrientedEdgeList (OrientedEdge::vector_shared_ptr &&edge_list)
 Set the list of edges (with their orientation).
 
void SetOrientedFaceList (OrientedFace::vector_shared_ptr &&face_list)
 Set the list of faces (with their orientation).
 
void SetVolume (const Volume::shared_ptr &volume)
 Set the volume interface.
 
template<class InterfaceT >
void BuildInterface (const GeometricElt *geom_elt_ptr, typename InterfaceT::InterfaceMap &interface_list)
 Build a new interface, regardless of the orientation.
 
Ensight-related methods.
virtual void WriteEnsightFormat (std::ostream &stream, bool do_print_index) const override final
 Write the geometric element in Ensight format.
 

Static Public Member Functions

static constexpr Advanced::GeometricEltEnum Identifier ()
 Returns the identifier of the geometric reference element (for instance 'Tria3')
 

Static Private Member Functions

static const RefGeomEltNS::Segment2StaticRefGeomElt ()
 Reference geometric element.
 

Shape function methods.

virtual double ShapeFunction (LocalNodeNS::index_type local_node_index, const LocalCoords &local_coords) const override final
 Shape function call.
 
virtual double FirstDerivateShapeFunction (LocalNodeNS::index_type local_node_index, Advanced::ComponentNS::index_type component, const LocalCoords &local_coords) const override final
 First derivate of the shape function call.
 
virtual double SecondDerivateShapeFunction (LocalNodeNS::index_type local_node_index, Advanced::ComponentNS::index_type component1, Advanced::ComponentNS::index_type component2, const LocalCoords &local_coords) const override final
 Second derivate of the shape function call.
 
virtual void BuildVertexList (const GeometricElt *geom_elt_ptr, Vertex::InterfaceMap &existing_list) override final
 Build the list of all vertices that belongs to the geometric element.
 
virtual void BuildEdgeList (const GeometricElt *geom_elt_ptr, Edge::InterfaceMap &existing_list) override final
 Build the list of all edges that belongs to the geometric element.
 
virtual void BuildFaceList (const GeometricElt *geom_elt_ptr, Face::InterfaceMap &existing_list) override final
 Build the list of all faces that belongs to the geometric element.
 
virtual void BuildVolumeList (const GeometricElt *geom_elt_ptr, Volume::InterfaceMap &existing_list) override final
 Build the pointer to the volume if there is one to consider as interface.
 

Medit-related methods.

virtual void WriteMeditFormat (libmeshb_int mesh_index, const std::unordered_map< ::MoReFEM::CoordsNS::index_from_mesh_file, int > &processor_wise_reindexing) const override final
 Write the geometric element in Medit format.
 
virtual void ReadMeditFormat (const ::MoReFEM::FilesystemNS::File &medit_file, const Coords::vector_shared_ptr &mesh_coords_list, libmeshb_int libmesh_mesh_index, std::size_t Ncoord_in_mesh, int &reference_index) override final
 Read the geometric element in Medit format.
 
void StaticAssertBuiltInConsistency ()
 Assert at compile time that the number of coordinates in shape functions is consistent with the topological dimension.
 

Shape function methods.

virtual void ReadMeditFormat (const FilesystemNS::File &medit_file, const Coords::vector_shared_ptr &mesh_coords_list, libmeshb_int libmesh_mesh_index, std::size_t Ncoord_in_mesh, int &reference_index)=0
 Read the geometric element in Medit format.
 
const Advanced::GeomEltNS::EnsightNameGetEnsightName () const
 Ensight-related methods.
 
GmfKwdCod GetMeditIdentifier () const
 Medit-related methods.
 
const MeshNS::unique_id mesh_identifier_
 Identifier of the mesh.
 
GeomEltNS::index_type index_ = NumericNS::UninitializedIndex<decltype(index_)>()
 Index associated to the current geometric element.
 
MeshLabel::const_shared_ptr mesh_label_ = nullptr
 Surface reference to which the geometric element belongs to.
 
Coords::vector_shared_ptr coords_list_
 Coords that belong to the geometric element.
 
Vertex::vector_shared_ptr vertex_list_
 List of vertice.
 
OrientedEdge::vector_shared_ptr oriented_edge_list_
 List of edges.
 
OrientedFace::vector_shared_ptr oriented_face_list_
 List of faces.
 
Volume::shared_ptr volume_ = nullptr
 Volume (as an interface).
 
InterfaceNS::Nature higher_interface_type_built_ = InterfaceNS::Nature::undefined
 Knows whether a given type of interface has been built or not.
 
void SetCoordsList (const Coords::vector_shared_ptr &mesh_coords_list, std::vector< CoordsNS::index_from_mesh_file > &&coords_indexes)
 Set the coord list from the vector given in input.
 
template<InterfaceNS::Nature InterfaceT>
void SetInterfaceListBuilt ()
 Tells the object edges or faces have been built.
 

Detailed Description

A Segment2 geometric element read in a mesh.

We are not considering here a generic Segment2 object (that's the role of MoReFEM::RefGeomEltNS::Segment2), but rather a specific geometric element of the mesh, with for instance the coordinates of its coord, the list of its interfaces and so forth.

Member Typedef Documentation

◆ MeditSupport

Object that store the information about Medit support.

This object inherits from std::true_type if Medit is supported, std::false_type otherwise.

◆ EnsightSupport

Object that store the information about Ensight support.

This object inherits from std::true_type if Ensight is supported, std::false_type otherwise.

Constructor & Destructor Documentation

◆ Segment2() [1/5]

MoReFEM::Segment2::Segment2 ( MeshNS::unique_id mesh_unique_id)
explicit

Minimal constructor: only the Mesh for which the current geometric element is created is provided.

Parameters
[in]mesh_unique_idUnique identifier of the mesh (which is what is returned by Mesh::GetUniqueId() method).

◆ Segment2() [2/5]

MoReFEM::Segment2::Segment2 ( MeshNS::unique_id mesh_unique_id,
const Coords::vector_shared_ptr & mesh_coords_list,
std::istream & stream )
explicit

Constructor from stream: The indexes related to Ncoords (as defined in enum) are read in the stream and object is built from them.

This constructor expected integers from stream: it is to be used in formats in which Coords are read first and then their indexes are used to define all the GeometricElt.

Parameters
[in]mesh_unique_idUnique identifier of the mesh (which is what is returned by Mesh::GetUniqueId() method).
Parameters
[in]mesh_coords_listList of ALL Coords list built from the mesh.
[in,out]streamStream from which the coordinates of the GeometricElt are read.

◆ Segment2() [3/5]

MoReFEM::Segment2::Segment2 ( MeshNS::unique_id mesh_unique_id,
const Coords::vector_shared_ptr & mesh_coords_list,
std::vector<::MoReFEM::CoordsNS::index_from_mesh_file > && coords_index_list )
explicit

Constructor from vector of coords index.

Parameters
[in]mesh_unique_idUnique identifier of the mesh (which is what is returned by Mesh::GetUniqueId() method).
Parameters
[in]mesh_coords_listList of ALL Coords list built from the mesh.
[in]coords_index_listThe list of Coords index that delimit the geometric element; they should all exist in the mesh_coords_list.

◆ Segment2() [4/5]

MoReFEM::Segment2::Segment2 ( const Segment2 & rhs)
delete

The copy constructor.

Parameters
[in]rhsThe object from which the construction occurs.

◆ Segment2() [5/5]

MoReFEM::Segment2::Segment2 ( Segment2 && rhs)
delete

The move constructor.

Parameters
[in]rhsThe object from which the construction occurs.

Member Function Documentation

◆ operator=() [1/2]

Segment2 & MoReFEM::Segment2::operator= ( const Segment2 & rhs)
delete

The (copy) operator=.

Parameters
[in]rhsThe object from which the affectation occurs.
Returns
Reference to the object (to enable chained affectation).

◆ operator=() [2/2]

Segment2 & MoReFEM::Segment2::operator= ( Segment2 && rhs)
delete

The (move) operator=.

Parameters
[in]rhsThe object from which the affectation occurs.
Returns
Reference to the object (to enable chained affectation).

◆ GetRefGeomElt()

virtual const RefGeomElt & MoReFEM::Segment2::GetRefGeomElt ( ) const
finaloverridevirtual

◆ GetIdentifier()

virtual Advanced::GeometricEltEnum MoReFEM::Internal::GeomEltNS::TGeometricElt< RefGeomEltNS::Traits::Segment2 >::GetIdentifier ( ) const
finaloverridevirtualinherited

Get the identifier of the geometric element.

Implements MoReFEM::GeometricElt.

◆ GetName()

virtual const Advanced::GeomEltNS::GenericName & MoReFEM::Internal::GeomEltNS::TGeometricElt< RefGeomEltNS::Traits::Segment2 >::GetName ( ) const
finaloverridevirtualinherited

Get the name of the geometric element.

Implements MoReFEM::GeometricElt.

◆ Ncoords()

virtual std::size_t MoReFEM::Internal::GeomEltNS::TGeometricElt< RefGeomEltNS::Traits::Segment2 >::Ncoords ( ) const
finaloverridevirtualinherited

Get the number of Coords object required to characterize completely a GeometricElt of this type.

For instance 27 for an Hexahedron27.

Returns
Number of Coords object required to characterize completely a GeometricElt of this type.

Implements MoReFEM::GeometricElt.

◆ Nvertex()

virtual std::size_t MoReFEM::Internal::GeomEltNS::TGeometricElt< RefGeomEltNS::Traits::Segment2 >::Nvertex ( ) const
finaloverridevirtualinherited

Get the number of summits.

Implements MoReFEM::GeometricElt.

◆ Nface()

virtual std::size_t MoReFEM::Internal::GeomEltNS::TGeometricElt< RefGeomEltNS::Traits::Segment2 >::Nface ( ) const
finaloverridevirtualinherited

Get the number of faces.

Implements MoReFEM::GeometricElt.

◆ Nedge()

virtual std::size_t MoReFEM::Internal::GeomEltNS::TGeometricElt< RefGeomEltNS::Traits::Segment2 >::Nedge ( ) const
finaloverridevirtualinherited

Get the number of edges.

Implements MoReFEM::GeometricElt.

◆ GetDimension()

virtual std::size_t MoReFEM::Internal::GeomEltNS::TGeometricElt< RefGeomEltNS::Traits::Segment2 >::GetDimension ( ) const
finaloverridevirtualinherited

Get the dimension of the geometric element.

Implements MoReFEM::GeometricElt.

◆ ShapeFunction()

virtual double MoReFEM::Internal::GeomEltNS::TGeometricElt< RefGeomEltNS::Traits::Segment2 >::ShapeFunction ( LocalNodeNS::index_type local_node_index,
const LocalCoords & local_coords ) const
finaloverridevirtualinherited

Shape function call.

Parameters
[in]local_node_indexIndex of the local node considered.
[in]local_coordsLocal coordinates at which the shape function is applied.
Returns
Shape function value at the local node considered.

Implements MoReFEM::GeometricElt.

◆ FirstDerivateShapeFunction()

virtual double MoReFEM::Internal::GeomEltNS::TGeometricElt< RefGeomEltNS::Traits::Segment2 >::FirstDerivateShapeFunction ( LocalNodeNS::index_type local_node_index,
Advanced::ComponentNS::index_type component,
const LocalCoords & local_coords ) const
finaloverridevirtualinherited

First derivate of the shape function call.

Parameters
[in]local_node_indexIndex of the local node considered.
[in]local_coordsLocal coordinates at which the shape function is applied.
[in]componentComponent of the derivate considered.
Returns
Derivate of the shape function wrt to component at the local node considered.

Implements MoReFEM::GeometricElt.

◆ SecondDerivateShapeFunction()

virtual double MoReFEM::Internal::GeomEltNS::TGeometricElt< RefGeomEltNS::Traits::Segment2 >::SecondDerivateShapeFunction ( LocalNodeNS::index_type local_node_index,
Advanced::ComponentNS::index_type component1,
Advanced::ComponentNS::index_type component2,
const LocalCoords & local_coords ) const
finaloverridevirtualinherited

Second derivate of the shape function call.

Parameters
[in]local_node_indexIndex of the local node considered.
[in]local_coordsLocal coordinates at which the shape function is applied.
[in]component1Component of the first derivate considered.
[in]component2Component of the second derivate considered.
Returns
Derivate of the shape function wrt to component1 and component2 at the local node considered.

Implements MoReFEM::GeometricElt.

◆ BuildVertexList()

virtual void MoReFEM::Internal::GeomEltNS::TGeometricElt< RefGeomEltNS::Traits::Segment2 >::BuildVertexList ( const GeometricElt * geom_elt_ptr,
Vertex::InterfaceMap & existing_list )
finaloverrideprivatevirtualinherited

Build the list of all vertices that belongs to the geometric element.

Parameters
[in,out]existing_listList of all vertice that have been built so far for the enclosing geometric mesh. If a vertex already exists, point to the already existing object instead of recreating one. If not, create a new object from scratch and add it in the existing_list.
Parameters
[in]geom_elt_ptrPointer to current GeometricElt; must point to same object as this. This is rather clumsy, but I lack the time currently to fix something that is clumsy but ultimately not broken.

Implements MoReFEM::GeometricElt.

◆ BuildEdgeList()

virtual void MoReFEM::Internal::GeomEltNS::TGeometricElt< RefGeomEltNS::Traits::Segment2 >::BuildEdgeList ( const GeometricElt * geom_elt_ptr,
Edge::InterfaceMap & existing_list )
finaloverrideprivatevirtualinherited

Build the list of all edges that belongs to the geometric element.

Parameters
[in,out]existing_listList of all edges that have been built so far for the enclosing geometric mesh. If an edge already exists, point to the already existing object instead of recreating one. If not, create a new object from scratch and add it in the existing_list.
Parameters
[in]geom_elt_ptrPointer to current GeometricElt; must point to same object as this. This is rather clumsy, but I lack the time currently to fix something that is clumsy but ultimately not broken.

Implements MoReFEM::GeometricElt.

◆ BuildFaceList()

virtual void MoReFEM::Internal::GeomEltNS::TGeometricElt< RefGeomEltNS::Traits::Segment2 >::BuildFaceList ( const GeometricElt * geom_elt_ptr,
Face::InterfaceMap & existing_list )
finaloverrideprivatevirtualinherited

Build the list of all faces that belongs to the geometric element.

Parameters
[in,out]existing_listList of all faces that have been built so far for the enclosing geometric mesh. If a face already exists, point to the already existing object instead of recreating one. If not, create a new object from scratch and add it in the existing_list.
Parameters
[in]geom_elt_ptrPointer to current GeometricElt; must point to same object as this. This is rather clumsy, but I lack the time currently to fix something that is clumsy but ultimately not broken.

Implements MoReFEM::GeometricElt.

◆ BuildVolumeList()

virtual void MoReFEM::Internal::GeomEltNS::TGeometricElt< RefGeomEltNS::Traits::Segment2 >::BuildVolumeList ( const GeometricElt * geom_elt_ptr,
Volume::InterfaceMap & existing_list )
finaloverrideprivatevirtualinherited

Build the pointer to the volume if there is one to consider as interface.

Parameters
[in]geom_elt_ptrPointer to current GeometricElt; must point to same object as this. This is rather clumsy, but I lack the time currently to fix something that is clumsy but ultimately not broken.
[in,out]existing_listThis list is mostly there for genericity, so that same C++ interface might be used for all 4 kind of interfaces. It is not used however as a searching way to see if the interface already exist or not: by nature a Volume interface can appear only once for its related GeometricElt.

Implements MoReFEM::GeometricElt.

◆ WriteEnsightFormat()

virtual void MoReFEM::Internal::GeomEltNS::TGeometricElt< RefGeomEltNS::Traits::Segment2 >::WriteEnsightFormat ( std::ostream & stream,
bool do_print_index ) const
finaloverridevirtualinherited

Write the geometric element in Ensight format.

Parameters
[in,out]streamStream upon which object information are written.
do_print_indexTrue if the geometric elementis preceded by its internal index.

Implements MoReFEM::GeometricElt.

◆ WriteMeditFormat()

virtual void MoReFEM::Internal::GeomEltNS::TGeometricElt< RefGeomEltNS::Traits::Segment2 >::WriteMeditFormat ( libmeshb_int mesh_index,
const std::unordered_map< ::MoReFEM::CoordsNS::index_from_mesh_file, int > & processor_wise_reindexing ) const
finaloverridevirtualinherited

Write the geometric element in Medit format.

Parameters
[in]mesh_indexIndex that was returned by Medit when the output file was opened.
[in]processor_wise_reindexingMedit requires the indexes run from 1 to Ncoord on each processor; this container maps the Coords index to the processor-wise one to write in the Medit file.

The method is indeed an underlying call to the Medit API.

Implements MoReFEM::GeometricElt.

◆ ReadMeditFormat() [1/2]

virtual void MoReFEM::Internal::GeomEltNS::TGeometricElt< RefGeomEltNS::Traits::Segment2 >::ReadMeditFormat ( const ::MoReFEM::FilesystemNS::File & medit_file,
const Coords::vector_shared_ptr & mesh_coords_list,
libmeshb_int libmesh_mesh_index,
std::size_t Ncoord_in_mesh,
int & reference_index )
finaloverridevirtualinherited

Read the geometric element in Medit format.

Parameters
[in]libmesh_mesh_indexIndex that was returned by Medit when the input file was opened.
[in]Ncoord_in_meshTotal number of coord in the mesh. Used for a check upon file validity.
[out]reference_indexReference of the label, as libmesh int index. The calling function has the responsibility to use (or not) this value and Set the label pointer in GeometricElt object.
Parameters
[in]mesh_coords_listList of ALL Coords list built from the mesh.
[in]medit_fileFile being read.

The method is indeed an underlying call to the Medit API.

◆ ReadMeditFormat() [2/2]

virtual void MoReFEM::GeometricElt::ReadMeditFormat ( const FilesystemNS::File & medit_file,
const Coords::vector_shared_ptr & mesh_coords_list,
libmeshb_int libmesh_mesh_index,
std::size_t Ncoord_in_mesh,
int & reference_index )
pure virtualinherited

Read the geometric element in Medit format.

Parameters
[in]libmesh_mesh_indexIndex that was returned by Medit when the input file was opened.
[in]Ncoord_in_meshTotal number of coord in the mesh. Used for a check upon file validity.
[out]reference_indexReference of the label, as libmesh int index. The calling function has the responsibility to use (or not) this value and Set the label pointer in GeometricElt object.
Parameters
[in]mesh_coords_listList of ALL Coords list built from the mesh.
[in]medit_fileFile being read.

The method is indeed an underlying call to the Medit API.

◆ SetIndex()

void MoReFEM::GeometricElt::SetIndex ( GeomEltNS::index_type index)
noexceptinherited

Mutator to the GeometricElt index.

Parameters
[in]indexNew index to set.

◆ GetIndex()

GeomEltNS::index_type MoReFEM::GeometricElt::GetIndex ( ) const
inlineinherited

Accessor to the GeometricElt index.

This index is assumed to be unique for a given Mesh: no other geometric element should bear the same index (Mesh enforces that when the mesh is read).

This uniqueness is important: indexes are used to compare elements, and also to define a hash function when GeometricElt are put in an unordered_map.

However, a check upon the mesh is also required: same index might be used by two different meshes for two unrelated geometric elements.

◆ GetMeshIdentifier()

MeshNS::unique_id MoReFEM::GeometricElt::GetMeshIdentifier ( ) const
noexceptinherited

Get the identifier of the mesh.

You shouldn't have to use this: it is used mostly to implement the comparison operators.

Returns
Index that tags the mesh.

◆ SetMeshLabel()

void MoReFEM::GeometricElt::SetMeshLabel ( const MeshLabel::const_shared_ptr & mesh_label)
noexceptinherited

Set the label.

Parameters
[in]mesh_labelMeshLabel associated to the current GeometricElt.

◆ GetCoord()

const Coords & MoReFEM::GeometricElt::GetCoord ( std::size_t i) const
inherited

Get the ith coords index.

Parameters
iIndex of the sought Coords object used to define the geometric element.

◆ GetVertexList()

const Vertex::vector_shared_ptr & MoReFEM::GeometricElt::GetVertexList ( ) const
noexceptinherited

Return the list of vertice.

Returns
The list of vertice (as smart pointers).

◆ GetOrientedEdgeList()

const OrientedEdge::vector_shared_ptr & MoReFEM::GeometricElt::GetOrientedEdgeList ( ) const
inherited

Return the list of edges.

This method assumes the edges were already built by the mesh; if not an exception is thrown.

Returns
The list of edges (as smart pointers).

◆ GetOrientedFaceList()

const OrientedFace::vector_shared_ptr & MoReFEM::GeometricElt::GetOrientedFaceList ( ) const
inherited

Return the list of faces.

This method assumes the faces were already built by the mesh; if not an exception is thrown.

Returns
The list of faces (as smart pointers).

◆ GetVolumePtr()

Volume::shared_ptr MoReFEM::GeometricElt::GetVolumePtr ( ) const
inherited

Return the volume (as an interface).

This method assumes the volume were already built by the mesh; if not an exception is thrown.

Returns
The volume interface. Might be nullptr!

◆ SetVertexList()

void MoReFEM::GeometricElt::SetVertexList ( Vertex::vector_shared_ptr && vertex_list)
inherited

Set the list of vertice.

Parameters
[in]vertex_listList of Vertex related to the geometric element.

◆ SetOrientedEdgeList()

void MoReFEM::GeometricElt::SetOrientedEdgeList ( OrientedEdge::vector_shared_ptr && edge_list)
inherited

Set the list of edges (with their orientation).

Parameters
[in]edge_listList of OrientedEdge related to the geometric element.

◆ SetOrientedFaceList()

void MoReFEM::GeometricElt::SetOrientedFaceList ( OrientedFace::vector_shared_ptr && face_list)
inherited

Set the list of faces (with their orientation).

Parameters
[in]face_listList of OrientedFace related to the geometric element.

◆ SetVolume()

void MoReFEM::GeometricElt::SetVolume ( const Volume::shared_ptr & volume)
inherited

Set the volume interface.

Parameters
[in]volumeNew value to set.

◆ BuildInterface()

template<class InterfaceT >
void MoReFEM::GeometricElt::BuildInterface ( const GeometricElt * geom_elt_ptr,
typename InterfaceT::InterfaceMap & interface_list )
inherited

Build a new interface, regardless of the orientation.

Template Parameters
InterfaceTInterface type, which derives from Interface base class. Choices are among { Vertex, Edge, Face, Volume }.
Parameters
[in]geom_elt_ptrPointer to current GeometricElt; must point to same object as this. This is rather clumsy, but I lack the time currently to fix something that is clumsy but ultimately not broken.
[in,out]interface_listList of InterfaceT under construction when current method is called. If interface is not yet there it is added at the end of the method call.

◆ GetEnsightName()

const Advanced::GeomEltNS::EnsightName & MoReFEM::GeometricElt::GetEnsightName ( ) const
inherited

Ensight-related methods.

Get the ensight name of the geometric element (e.g. 'tria3', 'bar2', etc...)

An exception is thrown if Medit format is not supported.

Returns
Ensight name (acts as an identifier for Ensight).

◆ GetMeditIdentifier()

GmfKwdCod MoReFEM::GeometricElt::GetMeditIdentifier ( ) const
inherited

Medit-related methods.

Get the identifier Medit use to tag the geometric element.

An exception is thrown if Medit format is not supported.

Returns
Identifier.

◆ SetCoordsList()

void MoReFEM::GeometricElt::SetCoordsList ( const Coords::vector_shared_ptr & mesh_coords_list,
std::vector< CoordsNS::index_from_mesh_file > && coords_indexes )
protectedinherited

Set the coord list from the vector given in input.

Parameters
[in]coords_indexesIndexes of the Coords to pick from mesh_coords_list.
Parameters
[in]mesh_coords_listList of ALL Coords list built from the mesh.

Beware: an error will be raised if the input vector size is not what is expected !

◆ SetInterfaceListBuilt()

template<InterfaceNS::Nature InterfaceT>
void MoReFEM::GeometricElt::SetInterfaceListBuilt ( )
protectedinherited

Tells the object edges or faces have been built.

Template Parameters
InterfaceTInterface type, which derives from Interface base class. Choices are among { Vertex, Edge, Face, Volume }.

Field Documentation

◆ index_

GeomEltNS::index_type MoReFEM::GeometricElt::index_ = NumericNS::UninitializedIndex<decltype(index_)>()
privateinherited

Index associated to the current geometric element.

This index is assumed to be unique for a given Mesh: no other geometric element should bear the same index (Mesh enforces that when the mesh is read).

This uniqueness is important: indexes are used to compare elements, and also to define a hash function when GeometricElt are put in an unordered_map.

However, a check upon the mesh is also required: same index might be used by two different meshes for two unrelated geometric elements.


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